libre-webui 0.12.1 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend/package.json +1 -1
- package/frontend/dist/assets/index-6X4Fay3z.js +5 -0
- package/frontend/dist/assets/index-j-Q57B_D.css +1 -0
- package/frontend/dist/index.html +8 -7
- package/frontend/dist/js/{ArtifactContainer-DK1FCylP.js → ArtifactContainer-lBT2Cf0m.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-CMy7LH8t.js → ArtifactDemoPage-622qBoTt.js} +1 -1
- package/frontend/dist/js/{ArtifactSlideOutPanel-DS1K3sQL.js → ArtifactSlideOutPanel-CfbbHcaI.js} +1 -1
- package/frontend/dist/js/Button-Cgmt_2gR.js +1 -0
- package/frontend/dist/js/ChatPage-DGqHo1eh.js +16 -0
- package/frontend/dist/js/FirstTimeSetup-BDCojgfX.js +1 -0
- package/frontend/dist/js/GalleryPage-DWjvQFPR.js +1 -0
- package/frontend/dist/js/LibreClawPage-BQ5dN-0J.js +1 -0
- package/frontend/dist/js/{ModelManagerModals-m5uCO3SS.js → ModelManagerModals-BECfRnGl.js} +1 -1
- package/frontend/dist/js/ModelsPage-Ccmog6B5.js +2 -0
- package/frontend/dist/js/PersonasPage-DvTDH2Fy.js +13 -0
- package/frontend/dist/js/{RichMessageContent-BOQDgLTR.js → RichMessageContent-CBR2ML5W.js} +1 -1
- package/frontend/dist/js/SettingsModal-CV9iz6Lk.js +1 -0
- package/frontend/dist/js/UserManagementPage-k1mBGCDH.js +1 -0
- package/frontend/dist/js/{api-BaWiKZy-.js → api-Ddawdcbi.js} +2 -2
- package/frontend/dist/js/{ar-BAOdgn6O.js → ar-CQheG5xK.js} +1 -1
- package/frontend/dist/js/{bn-Bp2KS5mx.js → bn-BVXljlpH.js} +1 -1
- package/frontend/dist/js/{cs-DOgJ0c5p.js → cs-BgyyXudt.js} +1 -1
- package/frontend/dist/js/{da-BCKTkC35.js → da-Dk83-zzY.js} +1 -1
- package/frontend/dist/js/{de-BXyECph5.js → de-B9SDOxyQ.js} +1 -1
- package/frontend/dist/js/{es-Db4bDYIF.js → es-DMlNf0tc.js} +1 -1
- package/frontend/dist/js/{fr-BPIkf6zH.js → fr-DtOoKP26.js} +1 -1
- package/frontend/dist/js/{hi-Bm8D_Aux.js → hi-wuG6Draz.js} +1 -1
- package/frontend/dist/js/{id-DiWaH74_.js → id-CT2rnPXt.js} +1 -1
- package/frontend/dist/js/{is-DLgJywtZ.js → is-Cfy2VWp5.js} +1 -1
- package/frontend/dist/js/{it-lldrM8pE.js → it-vgQmoI8w.js} +1 -1
- package/frontend/dist/js/{ja-Cfe9uZmQ.js → ja-B8pVsr1R.js} +1 -1
- package/frontend/dist/js/{ko-BhChO3MQ.js → ko-CTERnuAH.js} +1 -1
- package/frontend/dist/js/{ms-SWtmetXo.js → ms-BGmwAKcP.js} +1 -1
- package/frontend/dist/js/{nl-CUO6I3nO.js → nl-CKLRry0w.js} +1 -1
- package/frontend/dist/js/{pl-BUAu96P6.js → pl-DRWZS4lz.js} +1 -1
- package/frontend/dist/js/{pt-DCHwoWiE.js → pt-Dua6AStw.js} +1 -1
- package/frontend/dist/js/{ru-Ciz053N7.js → ru-B6MEHobb.js} +1 -1
- package/frontend/dist/js/{sv-D38ZHjv-.js → sv-Bg1rkqPN.js} +1 -1
- package/frontend/dist/js/{th-D2cAucvn.js → th-Nz5BELCH.js} +1 -1
- package/frontend/dist/js/{tr-Go355oDu.js → tr-7Nyg2UmX.js} +1 -1
- package/frontend/dist/js/{uk-cdzjhgya.js → uk-DUAnc6NJ.js} +1 -1
- package/frontend/dist/js/useBaseQuery-5VtX6QMw.js +1 -0
- package/frontend/dist/js/useQuery-CXwvr2_e.js +1 -0
- package/frontend/dist/js/{vi-BSOpE423.js → vi-BOpghAsX.js} +1 -1
- package/frontend/dist/js/{zh-BFh6sHZG.js → zh-lCo3TiLV.js} +1 -1
- package/package.json +5 -4
- package/scripts/postinstall.js +54 -0
- package/frontend/dist/assets/index-CdGZAiI5.js +0 -5
- package/frontend/dist/assets/index-Dc8Q4dJZ.css +0 -1
- package/frontend/dist/js/Button-BUjLpHmR.js +0 -1
- package/frontend/dist/js/ChatPage-RYQ8mcOC.js +0 -16
- package/frontend/dist/js/FirstTimeSetup-Ckdm_Hpv.js +0 -1
- package/frontend/dist/js/GalleryPage-sQc_lBme.js +0 -1
- package/frontend/dist/js/LibreClawPage-DsGFex9f.js +0 -1
- package/frontend/dist/js/ModelsPage-CgtfQ2np.js +0 -2
- package/frontend/dist/js/PersonasPage-D1Twd9rI.js +0 -13
- package/frontend/dist/js/SettingsModal-RU_GFjMK.js +0 -1
- package/frontend/dist/js/UserManagementPage-BAEOziZX.js +0 -1
- package/frontend/dist/js/useBaseQuery-C03a5oZt.js +0 -1
- package/frontend/dist/js/useQuery-iKrQD3gp.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap";*,: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:#3b82f680;--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:#3b82f680;--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:0 solid #e2e8f0}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,Fira Code,SF Mono,Monaco,Inconsolata,Roboto Mono,source-code-pro,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button{-webkit-appearance:button;background-color:#0000;background-image:none}input:where([type=button]){-webkit-appearance:button;background-color:#0000;background-image:none}input:where([type=reset]){-webkit-appearance:button;background-color:#0000;background-image:none}input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}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{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:475px){.\!container{max-width:475px!important}.container{max-width:475px}}@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{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;bottom:0;left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-bottom-1{bottom:-.25rem}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-top-0\.5{top:-.125rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-full{bottom:100%}.left-0{left:0}.left-0\.5{left:.125rem}.left-1\/2{left:50%}.left-16{left:4rem}.left-2{left:.5rem}.left-3{left:.75rem}.right-0{right:0}.right-0\.5{right:.125rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-6{top:1.5rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[2147483647\]{z-index:2147483647}.z-\[55\]{z-index:55}.z-\[56\]{z-index:56}.z-\[60\]{z-index:60}.z-\[9998\]{z-index:9998}.z-\[999999\]{z-index:999999}.z-\[99999\]{z-index:99999}.z-\[9999\]{z-index:9999}.\!m-0{margin:0!important}.m-auto{margin:auto}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-2{margin-left:-.5rem}.-mt-6{margin-top:-1.5rem}.-mt-8{margin-top:-2rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-10{margin-left:2.5rem}.ml-2{margin-left:.5rem}.ml-20{margin-left:5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-80{margin-left:20rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.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}.mt-8{margin-top:2rem}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.\!h-full{height:100%!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[44px\]{height:44px}.h-\[85vh\]{height:85vh}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-36{max-height:9rem}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-\[120px\]{max-height:120px}.max-h-\[25vh\]{max-height:25vh}.max-h-\[400px\]{max-height:400px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[95vh\]{max-height:95vh}.max-h-\[calc\(85vh-60px\)\]{max-height:calc(85vh - 60px)}.min-h-0{min-height:0}.min-h-24{min-height:6rem}.min-h-32{min-height:8rem}.min-h-\[100px\]{min-height:100px}.min-h-\[32px\]{min-height:32px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[65px\]{min-height:65px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-18{width:4.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-32{min-width:8rem}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[85\%\]{max-width:85%}.max-w-\[90vw\]{max-width:90vw}.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-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.basis-0{flex-basis:0}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x:1.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y:.125rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce{animation:1s infinite bounce}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:.2s ease-out fadeIn}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:.15s ease-out scaleIn}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:.2s ease-out slideUp}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;appearance:none}.columns-1{-moz-columns:1;columns:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.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))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.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\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.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-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-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-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(241 245 249/var(--tw-divide-opacity,1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(226 232 240/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-lg{border-radius:.5rem!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.\!border-0{border-width:0!important}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.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-none{border-style:none!important}.border-accent-200{--tw-border-opacity:1;border-color:rgb(var(--color-accent-200) / var(--tw-border-opacity,1))}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-emerald-100{--tw-border-opacity:1;border-color:rgb(209 250 229/var(--tw-border-opacity,1))}.border-emerald-200\/50{border-color:#a7f3d080}.border-error-500{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.border-gray-100\/50{border-color:#f1f5f980}.border-gray-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-gray-200\/30{border-color:#e2e8f04d}.border-gray-200\/50{border-color:#e2e8f080}.border-gray-200\/60{border-color:#e2e8f099}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity,1))}.border-primary-100{--tw-border-opacity:1;border-color:rgb(var(--color-primary-100) / var(--tw-border-opacity,1))}.border-primary-200{--tw-border-opacity:1;border-color:rgb(var(--color-primary-200) / var(--tw-border-opacity,1))}.border-primary-200\/50{border-color:rgb(var(--color-primary-200) / .5)}.border-primary-300{--tw-border-opacity:1;border-color:rgb(var(--color-primary-300) / var(--tw-border-opacity,1))}.border-primary-400{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.border-primary-500{--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.border-primary-600{--tw-border-opacity:1;border-color:rgb(var(--color-primary-600) / var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-white\/10{border-color:#ffffff1a}.border-white\/30{border-color:#ffffff4d}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.border-yellow-300{--tw-border-opacity:1;border-color:rgb(253 224 71/var(--tw-border-opacity,1))}.border-t-primary-500{--tw-border-opacity:1;border-top-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:#0000}.\!bg-transparent{background-color:#0000!important}.bg-accent-50\/40{background-color:rgb(var(--color-accent-50) / .4)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-500\/80{background-color:#f59e0bcc}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/10{background-color:#0000001a}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/80{background-color:#000c}.bg-black\/90{background-color:#000000e6}.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-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-current{background-color:currentColor}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-error-500{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-gray-100\/80{background-color:#f1f5f9cc}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/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-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-gray-50\/30{background-color:#f8fafc4d}.bg-gray-50\/70{background-color:#f8fafcb3}.bg-gray-50\/80{background-color:#f8fafccc}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-gray-950{--tw-bg-opacity:1;background-color:rgb(11 16 32/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-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-50\/50{background-color:#f0fdf480}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-100) / var(--tw-bg-opacity,1))}.bg-primary-300{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-300) / var(--tw-bg-opacity,1))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400) / var(--tw-bg-opacity,1))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-50) / var(--tw-bg-opacity,1))}.bg-primary-50\/50{background-color:rgb(var(--color-primary-50) / .5)}.bg-primary-50\/60{background-color:rgb(var(--color-primary-50) / .6)}.bg-primary-50\/80{background-color:rgb(var(--color-primary-50) / .8)}.bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.bg-primary-500\/10{background-color:rgb(var(--color-primary-500) / .1)}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.bg-primary-600\/90{background-color:rgb(var(--color-primary-600) / .9)}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/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-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-transparent{background-color:#0000}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/20{background-color:#fff3}.bg-white\/30{background-color:#ffffff4d}.bg-white\/40{background-color:#fff6}.bg-white\/50{background-color:#ffffff80}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-50{--tw-bg-opacity:.5}.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))}.bg-gradient-to-t{background-image:linear-gradient(to top, var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:#fffbeb var(--tw-gradient-from-position);--tw-gradient-to:#fffbeb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/80{--tw-gradient-from:#000c var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from:#10b981 var(--tw-gradient-from-position);--tw-gradient-to:#10b98100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-100{--tw-gradient-from:rgb(var(--color-primary-100) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-100) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-400{--tw-gradient-from:rgb(var(--color-primary-400) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-400) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-50{--tw-gradient-from:rgb(var(--color-primary-50) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-50) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-500{--tw-gradient-from:rgb(var(--color-primary-500) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-500) / 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:#a855f700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.via-black\/20{--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #0003 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary-500{--tw-gradient-to:rgb(var(--color-primary-500) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-primary-500) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-orange-50{--tw-gradient-to:#fff7ed var(--tw-gradient-to-position)}.to-primary-100\/50{--tw-gradient-to:rgb(var(--color-primary-100) / .5) var(--tw-gradient-to-position)}.to-primary-200{--tw-gradient-to:rgb(var(--color-primary-200) / 1) var(--tw-gradient-to-position)}.to-primary-500{--tw-gradient-to:rgb(var(--color-primary-500) / 1) var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to:rgb(var(--color-primary-600) / 1) var(--tw-gradient-to-position)}.to-purple-50{--tw-gradient-to:#faf5ff var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-teal-500{--tw-gradient-to:#14b8a6 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-amber-500{fill:#f59e0b}.fill-white{fill:#fff}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.\!p-3{padding:.75rem!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.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-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.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-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-20{padding-top:5rem;padding-bottom:5rem}.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-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pl-9{padding-left:2.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.font-mono{font-family:JetBrains Mono,Fira Code,SF Mono,Monaco,Inconsolata,Roboto Mono,source-code-pro,monospace}.\!text-sm{font-size:.8125rem!important;line-height:1.25rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[9px\]{font-size:9px}.text-base{font-size:.9375rem;line-height:1.625}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.8125rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.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-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent-500{--tw-text-opacity:1;color:rgb(var(--color-accent-500) / var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/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-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-error-600{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-gray-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/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-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-gray-950{--tw-text-opacity:1;color:rgb(11 16 32/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-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-orange-900{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity,1))}.text-primary-300{--tw-text-opacity:1;color:rgb(var(--color-primary-300) / var(--tw-text-opacity,1))}.text-primary-400{--tw-text-opacity:1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity,1))}.text-primary-500{--tw-text-opacity:1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity,1))}.text-primary-600{--tw-text-opacity:1;color:rgb(var(--color-primary-600) / var(--tw-text-opacity,1))}.text-primary-600\/70{color:rgb(var(--color-primary-600) / .7)}.text-primary-700{--tw-text-opacity:1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity,1))}.text-primary-800{--tw-text-opacity:1;color:rgb(var(--color-primary-800) / var(--tw-text-opacity,1))}.text-primary-900{--tw-text-opacity:1;color:rgb(var(--color-primary-900) / var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-success-600{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--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 #00000040;--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-card{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px 0 #0000000f;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 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-glow{--tw-shadow:0 0 20px -12px rgb(var(--color-primary-600) / .25);--tw-shadow-colored:0 0 20px -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-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 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-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--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 #0000001a, 0 2px 4px -2px #0000001a;--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-sm,.shadow-subtle{--tw-shadow:0 1px 2px 0 #0000000d;--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 #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-primary-100{--tw-shadow-color:rgb(var(--color-primary-100) / 1);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-1{--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)}.ring-2{--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)}.ring-4{--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(4px + 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-primary-200{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-200) / var(--tw-ring-opacity,1))}.ring-primary-500{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500) / var(--tw-ring-opacity,1))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.blur{--tw-blur:blur(8px);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)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[margin\,background-color\]{transition-property:margin,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-property:box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;accent-color:rgb(var(--color-primary-600));background:#e2e8f0;border-radius:9999px;outline:none}.dark .range-slider{background:#27272a}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:rgb(var(--color-primary-600));cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 3px #0003}.dark .range-slider::-webkit-slider-thumb{background:rgb(var(--color-primary-500));border-color:#111113}.range-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.range-slider::-moz-range-thumb{background:rgb(var(--color-primary-600));cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 3px #0003}.dark .range-slider::-moz-range-thumb{background:rgb(var(--color-primary-500));border-color:#111113}.range-slider::-moz-range-thumb:hover{transform:scale(1.15)}.range-slider:focus-visible{box-shadow:0 0 0 3px rgb(var(--color-primary-500) / .25)}.slider{-webkit-appearance:none;appearance:none;cursor:pointer;background:#e2e8f0;position:relative}.dark .slider{background:#4b5563}.slider::-webkit-slider-track{cursor:pointer;background:#e2e8f0;border-radius:4px;width:100%;height:8px;transition:background-color .2s}.dark .slider::-webkit-slider-track{background:#4b5563}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:rgb(var(--color-primary-500));cursor:pointer;border:2px solid #fff;border-radius:50%;width:20px;height:20px;transition:all .2s;box-shadow:0 2px 4px #0003}.dark .slider::-webkit-slider-thumb{background:rgb(var(--color-primary-400));border-color:#111113;box-shadow:0 2px 8px #0000004d}.slider::-webkit-slider-thumb:hover{background:rgb(var(--color-primary-600));transform:scale(1.1)}.dark .slider::-webkit-slider-thumb:hover{background:rgb(var(--color-primary-300))}.slider::-moz-range-track{cursor:pointer;background:#e2e8f0;border:none;border-radius:4px;width:100%;height:8px}.dark .slider::-moz-range-track{background:#4b5563}.slider::-moz-range-thumb{background:rgb(var(--color-primary-500));cursor:pointer;border:2px solid #fff;border-radius:50%;width:20px;height:20px;transition:all .2s;box-shadow:0 2px 4px #0003}.dark .slider::-moz-range-thumb{background:rgb(var(--color-primary-400));border-color:#111113;box-shadow:0 2px 8px #0000004d}.slider::-moz-range-thumb:hover{background:rgb(var(--color-primary-600));transform:scale(1.1)}.dark .slider::-moz-range-thumb:hover{background:rgb(var(--color-primary-300))}.slider:before{content:"";height:100%;width:var(--progress,50%);background:rgb(var(--color-primary-500));pointer-events:none;border-radius:4px;transition:width .2s;position:absolute;top:0;left:0}.dark .slider:before{background:rgb(var(--color-primary-400))}.\[-webkit-overflow-scrolling\:touch\]{-webkit-overflow-scrolling:touch}.libre-brand{letter-spacing:0;font-weight:600;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary-50:239 246 255;--color-primary-100:219 234 254;--color-primary-200:191 219 254;--color-primary-300:147 197 253;--color-primary-400:96 165 250;--color-primary-500:37 99 235;--color-primary-600:29 78 216;--color-primary-700:30 64 175;--color-primary-800:30 58 138;--color-primary-900:23 37 84;--color-primary-950:15 23 42;--color-accent-50:var(--color-primary-50);--color-accent-100:var(--color-primary-100);--color-accent-200:var(--color-primary-200);--color-accent-300:var(--color-primary-300);--color-accent-400:var(--color-primary-400);--color-accent-500:var(--color-primary-500);--color-accent-600:var(--color-primary-600);--color-accent-700:var(--color-primary-700);--color-accent-800:var(--color-primary-800);--color-accent-900:var(--color-primary-900);--color-accent-950:var(--color-primary-950);--toast-bg:#fff;--toast-color:#111827;--toast-border:#e2e8f0;--scrollbar-width:6px;--scrollbar-track:#f1f5f9;--scrollbar-thumb:#d1d5db;--scrollbar-thumb-hover:#9ca3af;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-weight:400;line-height:1.5}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--toast-bg:#111113;--toast-color:#e4e4e7;--toast-border:#27272a;--scrollbar-track:#1f2937;--scrollbar-thumb:#4b5563;--scrollbar-thumb-hover:#6b7280}[data-hot-toast]{z-index:9999!important}[data-hot-toast] [data-toast]{cursor:pointer;transition:all .2s ease-in-out}[data-hot-toast] [data-toast]:hover{transform:translateY(-2px);box-shadow:0 12px 20px -3px #00000026,0 6px 8px -2px #00000014!important}[data-hot-toast] [data-toast]:after{content:"×";color:#9ca3af;opacity:0;pointer-events:none;font-size:16px;font-weight:700;transition:opacity .2s ease-in-out;position:absolute;top:8px;right:12px}[data-hot-toast] [data-toast]:hover:after{opacity:1}.dark [data-hot-toast] [data-toast]:after{color:#6b7280}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.scrollbar-thin::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:10px}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:1px solid var(--scrollbar-track);border-radius:10px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scrollbar-hidden{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hidden::-webkit-scrollbar{display:none}a,button{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.text-primary-500{color:rgb(var(--color-primary-500))!important}.text-primary-400{color:rgb(var(--color-primary-400))!important}.text-primary-600,.hover\:text-primary-600:hover{color:rgb(var(--color-primary-600))!important}.hover\:text-primary-300:hover{color:rgb(var(--color-primary-300))!important}.dark .text-primary-500{color:rgb(var(--color-primary-400))!important}.dark .text-primary-400,.dark .dark\:text-primary-400{color:rgb(var(--color-primary-300))!important}.dark .dark\:hover\:text-primary-300:hover{color:rgb(var(--color-primary-200))!important}.text-accent-500{color:rgb(var(--color-accent-500))!important}.text-accent-400{color:rgb(var(--color-accent-400))!important}.text-accent-600,.hover\:text-accent-600:hover{color:rgb(var(--color-accent-600))!important}.hover\:text-accent-300:hover{color:rgb(var(--color-accent-300))!important}.dark .text-accent-500{color:rgb(var(--color-accent-400))!important}.dark .text-accent-400,.dark .dark\:text-accent-400{color:rgb(var(--color-accent-300))!important}.dark .dark\:hover\:text-accent-300:hover{color:rgb(var(--color-accent-200))!important}.focus-ring:focus{box-shadow:0 0 0 2px rgb(var(--color-primary-500)), 0 0 0 4px rgb(var(--color-primary-500) / .2);outline:none}::selection{background-color:rgb(var(--color-primary-100));color:rgb(var(--color-primary-900))}.dark ::selection{background-color:rgb(var(--color-primary-800));color:rgb(var(--color-primary-100))}.scrollbar-thumb-gray-600::-webkit-scrollbar-thumb{background-color:#4b5563;border-radius:9999px}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{border:1px solid #0000;border-radius:9999px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:#9ca3af}.dark .scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:#6b7280}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:focus-visible{outline:2px solid rgb(var(--color-primary-500));outline-offset:2px}.touch-manipulation{touch-action:manipulation}body{-webkit-app-region:no-drag}button,a,input,textarea,select,[role=button],.cursor-pointer{-webkit-app-region:no-drag;-webkit-user-drag:none}input[type=text],input[type=email],input[type=password],input[type=search],textarea,select{font-size:16px}@media (max-width:768px){button,.touch-target{min-width:44px;min-height:44px}}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:rgb(var(--color-primary-600));--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e2e8f0;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e2e8f0;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e2e8f0;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e2e8f0}.dark .prose{--tw-prose-body:#d1d5db;--tw-prose-headings:#f1f5f9;--tw-prose-lead:#9ca3af;--tw-prose-links:rgb(var(--color-primary-300));--tw-prose-bold:#f1f5f9;--tw-prose-counters:#9ca3af;--tw-prose-bullets:#4b5563;--tw-prose-hr:#374151;--tw-prose-quotes:#f1f5f9;--tw-prose-quote-borders:#374151;--tw-prose-captions:#9ca3af;--tw-prose-code:#f1f5f9;--tw-prose-pre-code:#d1d5db;--tw-prose-pre-bg:#111827;--tw-prose-th-borders:#4b5563;--tw-prose-td-borders:#374151}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:2s linear infinite spin-slow}.file\:mr-4::-webkit-file-upload-button{margin-right:1rem}.file\:mr-4::file-selector-button{margin-right:1rem}.file\:rounded-md::-webkit-file-upload-button{border-radius:.375rem}.file\:rounded-md::file-selector-button{border-radius:.375rem}.file\:border-0::-webkit-file-upload-button{border-width:0}.file\:border-0::file-selector-button{border-width:0}.file\:bg-gray-100::-webkit-file-upload-button{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.file\:bg-gray-100::file-selector-button{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.file\:px-4::-webkit-file-upload-button{padding-left:1rem;padding-right:1rem}.file\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\:py-2::-webkit-file-upload-button{padding-top:.5rem;padding-bottom:.5rem}.file\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.file\:text-sm::-webkit-file-upload-button{font-size:.8125rem;line-height:1.25rem}.file\:text-sm::file-selector-button{font-size:.8125rem;line-height:1.25rem}.file\:font-medium::-webkit-file-upload-button{font-weight:500}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-gray-700::-webkit-file-upload-button{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.file\:text-gray-700::file-selector-button{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.placeholder\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.last\:border-b-0:last-child{border-bottom-width:0}.focus-within\:border-primary-400:focus-within{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.focus-within\:border-primary-400\/70:focus-within{border-color:rgb(var(--color-primary-400) / .7)}.focus-within\:bg-white:focus-within{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus-within\:shadow-lg:focus-within{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--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-within\:shadow-xl:focus-within{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--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)}.focus-within\:outline-none:focus-within{outline-offset:2px;outline:2px solid #0000}.focus-within\:ring-2:focus-within{--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-within\:ring-primary-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500) / var(--tw-ring-opacity,1))}.focus-within\:ring-offset-2:focus-within{--tw-ring-offset-width:2px}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:border-gray-300\/70:hover{border-color:#d1d5dbb3}.hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.hover\:border-primary-400:hover{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.hover\:border-red-300:hover{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.hover\:bg-amber-500:hover{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.hover\:bg-black\/80:hover{background-color:#000c}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-error-600:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-gray-200\/80:hover{background-color:#e2e8f0cc}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.hover\:bg-orange-100:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.hover\:bg-orange-50:hover{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.hover\:bg-orange-700:hover{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-100) / var(--tw-bg-opacity,1))}.hover\:bg-primary-200:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-200) / var(--tw-bg-opacity,1))}.hover\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-700) / var(--tw-bg-opacity,1))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-500\/80:hover{background-color:#ef4444cc}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:bg-white\/40:hover{background-color:#fff6}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:bg-yellow-50:hover{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.hover\:bg-opacity-80:hover{--tw-bg-opacity:.8}.hover\:text-amber-900:hover{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-600) / var(--tw-text-opacity,1))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity,1))}.hover\:text-primary-900:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-900) / var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-card-hover:hover{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -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)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--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)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 2px 0 #0000000d;--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)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--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)}.hover\:file\:bg-gray-200::-webkit-file-upload-button:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:file\:bg-gray-200::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.focus\:border-accent-500:focus{--tw-border-opacity:1;border-color:rgb(var(--color-accent-500) / var(--tw-border-opacity,1))}.focus\:border-error-500:focus{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.focus\:border-primary-400:focus{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.focus\:border-primary-500:focus{--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:#0000}.focus\:shadow-md:focus{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--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)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-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-accent-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-accent-500) / var(--tw-ring-opacity,1))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-500\/20:focus{--tw-ring-color:#3b82f633}.focus\:ring-error-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.focus\:ring-error-500\/20:focus{--tw-ring-color:#f8717133}.focus\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\:ring-orange-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(249 115 22/var(--tw-ring-opacity,1))}.focus\:ring-primary-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-100) / var(--tw-ring-opacity,1))}.focus\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500) / var(--tw-ring-opacity,1))}.focus\:ring-primary-500\/20:focus{--tw-ring-color:rgb(var(--color-primary-500) / .2)}.focus\:ring-offset-1:focus{--tw-ring-offset-width:1px}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.98\]:active{--tw-scale-x:.98;--tw-scale-y:.98;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-gray-100:active{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.active\:bg-gray-200:active{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.active\:bg-gray-300:active{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.active\:bg-primary-800:active{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-800) / var(--tw-bg-opacity,1))}.active\:bg-red-100:active{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.active\:shadow-lg:active{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--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)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.disabled\:text-gray-400:disabled{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.disabled\:text-gray-500:disabled{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:#0000}.group:hover .group-hover\:h-24{height:6rem}.group:hover .group-hover\:bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-opacity-50{--tw-bg-opacity:.5}.group:hover .group-hover\:text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:bg-primary-600{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline-offset:2px;outline:2px solid #0000}.peer:focus~.peer-focus\:ring-4{--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(4px + 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)}.peer:focus~.peer-focus\:ring-primary-300{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-300) / var(--tw-ring-opacity,1))}.dark\:divide-dark-200:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(24 24 27/var(--tw-divide-opacity,1))}.dark\:divide-dark-300:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(39 39 42/var(--tw-divide-opacity,1))}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity,1))}.dark\:border-accent-800\/70:is(.dark *){border-color:rgb(var(--color-accent-800) / .7)}.dark\:border-amber-700\/50:is(.dark *){border-color:#b4530980}.dark\:border-amber-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(146 64 14/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-dark-200:is(.dark *){--tw-border-opacity:1;border-color:rgb(24 24 27/var(--tw-border-opacity,1))}.dark\:border-dark-200\/50:is(.dark *){border-color:#18181b80}.dark\:border-dark-200\/60:is(.dark *){border-color:#18181b99}.dark\:border-dark-300:is(.dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\:border-dark-300\/30:is(.dark *){border-color:#27272a4d}.dark\:border-dark-300\/50:is(.dark *){border-color:#27272a80}.dark\:border-dark-300\/60:is(.dark *){border-color:#27272a99}.dark\:border-dark-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity,1))}.dark\:border-emerald-700\/30:is(.dark *){border-color:#0478574d}.dark\:border-emerald-800\/30:is(.dark *){border-color:#065f464d}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-green-800\/50:is(.dark *){border-color:#16653480}.dark\:border-orange-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.dark\:border-primary-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.dark\:border-primary-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:border-primary-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-600) / var(--tw-border-opacity,1))}.dark\:border-primary-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-700) / var(--tw-border-opacity,1))}.dark\:border-primary-700\/30:is(.dark *){border-color:rgb(var(--color-primary-700) / .3)}.dark\:border-primary-700\/50:is(.dark *){border-color:rgb(var(--color-primary-700) / .5)}.dark\:border-primary-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-800) / var(--tw-border-opacity,1))}.dark\:border-primary-800\/30:is(.dark *){border-color:rgb(var(--color-primary-800) / .3)}.dark\:border-primary-800\/50:is(.dark *){border-color:rgb(var(--color-primary-800) / .5)}.dark\:border-primary-900\/60:is(.dark *){border-color:rgb(var(--color-primary-900) / .6)}.dark\:border-red-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-red-800\/30:is(.dark *){border-color:#991b1b4d}.dark\:border-red-900\/50:is(.dark *){border-color:#7f1d1d80}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:border-yellow-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(202 138 4/var(--tw-border-opacity,1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:border-t-primary-400:is(.dark *){--tw-border-opacity:1;border-top-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.dark\:bg-accent-950\/20:is(.dark *){background-color:rgb(var(--color-accent-950) / .2)}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-900\/40:is(.dark *){background-color:#78350f66}.dark\:bg-black\/20:is(.dark *){background-color:#0003}.dark\:bg-black\/40:is(.dark *){background-color:#0006}.dark\:bg-black\/50:is(.dark *){background-color:#00000080}.dark\:bg-black\/80:is(.dark *){background-color:#000c}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-dark-100:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 17 19/var(--tw-bg-opacity,1))}.dark\:bg-dark-100\/50:is(.dark *){background-color:#11111380}.dark\:bg-dark-100\/80:is(.dark *){background-color:#111113cc}.dark\:bg-dark-100\/90:is(.dark *){background-color:#111113e6}.dark\:bg-dark-100\/95:is(.dark *){background-color:#111113f2}.dark\:bg-dark-200:is(.dark *){--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.dark\:bg-dark-200\/50:is(.dark *){background-color:#18181b80}.dark\:bg-dark-200\/80:is(.dark *){background-color:#18181bcc}.dark\:bg-dark-25:is(.dark *){--tw-bg-opacity:1;background-color:rgb(32 32 35/var(--tw-bg-opacity,1))}.dark\:bg-dark-25\/70:is(.dark *){background-color:#202023b3}.dark\:bg-dark-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\:bg-dark-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.dark\:bg-dark-50:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 11/var(--tw-bg-opacity,1))}.dark\:bg-dark-50\/20:is(.dark *){background-color:#0a0a0b33}.dark\:bg-dark-50\/30:is(.dark *){background-color:#0a0a0b4d}.dark\:bg-dark-50\/40:is(.dark *){background-color:#0a0a0b66}.dark\:bg-dark-50\/60:is(.dark *){background-color:#0a0a0b99}.dark\:bg-dark-50\/70:is(.dark *){background-color:#0a0a0bb3}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-error-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.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\/50:is(.dark *){background-color:#11182780}.dark\:bg-green-900\/10:is(.dark *){background-color:#14532d1a}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-900\/20:is(.dark *){background-color:#7c2d1233}.dark\:bg-primary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400) / var(--tw-bg-opacity,1))}.dark\:bg-primary-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.dark\:bg-primary-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.dark\:bg-primary-700\/90:is(.dark *){background-color:rgb(var(--color-primary-700) / .9)}.dark\:bg-primary-900\/10:is(.dark *){background-color:rgb(var(--color-primary-900) / .1)}.dark\:bg-primary-900\/20:is(.dark *){background-color:rgb(var(--color-primary-900) / .2)}.dark\:bg-primary-900\/30:is(.dark *){background-color:rgb(var(--color-primary-900) / .3)}.dark\:bg-primary-900\/35:is(.dark *){background-color:rgb(var(--color-primary-900) / .35)}.dark\:bg-primary-950\/25:is(.dark *){background-color:rgb(var(--color-primary-950) / .25)}.dark\:bg-primary-950\/30:is(.dark *){background-color:rgb(var(--color-primary-950) / .3)}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-yellow-900\/20:is(.dark *){background-color:#713f1233}.dark\:bg-yellow-900\/30:is(.dark *){background-color:#713f124d}.dark\:from-amber-900\/20:is(.dark *){--tw-gradient-from:#78350f33 var(--tw-gradient-from-position);--tw-gradient-to:#78350f00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-emerald-600:is(.dark *){--tw-gradient-from:#059669 var(--tw-gradient-from-position);--tw-gradient-to:#05966900 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-400:is(.dark *){--tw-gradient-from:rgb(var(--color-primary-400) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-400) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-600:is(.dark *){--tw-gradient-from:rgb(var(--color-primary-600) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-600) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-900\/20:is(.dark *){--tw-gradient-from:rgb(var(--color-primary-900) / .2) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-900) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-900\/30:is(.dark *){--tw-gradient-from:rgb(var(--color-primary-900) / .3) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-900) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-primary-700:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-700) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-primary-700) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-orange-900\/20:is(.dark *){--tw-gradient-to:#7c2d1233 var(--tw-gradient-to-position)}.dark\:to-primary-500:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-500) / 1) var(--tw-gradient-to-position)}.dark\:to-primary-800\/20:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-800) / .2) var(--tw-gradient-to-position)}.dark\:to-primary-800\/30:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-800) / .3) var(--tw-gradient-to-position)}.dark\:to-purple-800:is(.dark *){--tw-gradient-to:#6b21a8 var(--tw-gradient-to-position)}.dark\:to-purple-900\/20:is(.dark *){--tw-gradient-to:#581c8733 var(--tw-gradient-to-position)}.dark\:to-teal-600:is(.dark *){--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.dark\:text-accent-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-accent-400) / var(--tw-text-opacity,1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/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-300:is(.dark *){--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity,1))}.dark\:text-dark-400:is(.dark *){--tw-text-opacity:1;color:rgb(63 63 70/var(--tw-text-opacity,1))}.dark\:text-dark-500:is(.dark *){--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\:text-dark-600:is(.dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\:text-dark-700:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.dark\:text-dark-800:is(.dark *){--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.dark\:text-dark-900:is(.dark *){--tw-text-opacity:1;color:rgb(244 244 245/var(--tw-text-opacity,1))}.dark\:text-dark-950:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-error-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-error-500:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/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-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/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-200:is(.dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/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-green-500:is(.dark *){--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-primary-100:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-100) / var(--tw-text-opacity,1))}.dark\:text-primary-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-200) / var(--tw-text-opacity,1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-300) / var(--tw-text-opacity,1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity,1))}.dark\:text-primary-400\/70:is(.dark *){color:rgb(var(--color-primary-400) / .7)}.dark\:text-primary-500:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity,1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/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-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:text-success-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-success-500:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/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-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:placeholder-dark-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(113 113 122/var(--tw-placeholder-opacity,1))}.dark\:placeholder-dark-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(113 113 122/var(--tw-placeholder-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:shadow-none:is(.dark *){--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)}.dark\:shadow-primary-900\/20:is(.dark *){--tw-shadow-color:rgb(var(--color-primary-900) / .2);--tw-shadow:var(--tw-shadow-colored)}.dark\:ring-dark-100:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(17 17 19/var(--tw-ring-opacity,1))}.dark\:ring-dark-50:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(10 10 11/var(--tw-ring-opacity,1))}.dark\:ring-primary-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400) / var(--tw-ring-opacity,1))}.dark\:ring-primary-800\/60:is(.dark *){--tw-ring-color:rgb(var(--color-primary-800) / .6)}.dark\:file\:bg-dark-200:-webkit-any(.dark *)::-webkit-file-upload-button{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.dark\:file\:bg-dark-200:is(.dark *)::file-selector-button{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.dark\:file\:text-dark-700:-webkit-any(.dark *)::-webkit-file-upload-button{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.dark\:file\:text-dark-700:is(.dark *)::file-selector-button{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.dark\:placeholder\:text-dark-500:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\:placeholder\:text-dark-500:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-500:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-500:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:focus-within\:border-primary-500:focus-within:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:focus-within\:border-primary-500\/70:focus-within:is(.dark *){border-color:rgb(var(--color-primary-500) / .7)}.dark\:focus-within\:bg-dark-50:focus-within:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 11/var(--tw-bg-opacity,1))}.dark\:focus-within\:ring-offset-dark-50:focus-within:is(.dark *){--tw-ring-offset-color:#0a0a0b}.dark\:hover\:border-dark-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity,1))}.dark\:hover\:border-dark-400\/70:hover:is(.dark *){border-color:#3f3f46b3}.dark\:hover\:border-gray-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.dark\:hover\:border-primary-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:hover\:border-red-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-900\/20:hover:is(.dark *){background-color:#1e3a8a33}.dark\:hover\:bg-blue-900\/50:hover:is(.dark *){background-color:#1e3a8a80}.dark\:hover\:bg-dark-100:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 17 19/var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-200:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-200\/50:hover:is(.dark *){background-color:#18181b80}.dark\:hover\:bg-dark-200\/60:hover:is(.dark *){background-color:#18181b99}.dark\:hover\:bg-dark-200\/70:hover:is(.dark *){background-color:#18181bb3}.dark\:hover\:bg-dark-200\/80:hover:is(.dark *){background-color:#18181bcc}.dark\:hover\:bg-dark-300:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-50:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 11/var(--tw-bg-opacity,1))}.dark\:hover\:bg-error-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-900\/50:hover:is(.dark *){background-color:#11182780}.dark\:hover\:bg-green-900\/50:hover:is(.dark *){background-color:#14532d80}.dark\:hover\:bg-orange-900\/20:hover:is(.dark *){background-color:#7c2d1233}.dark\:hover\:bg-orange-900\/30:hover:is(.dark *){background-color:#7c2d124d}.dark\:hover\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-700) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-900\/30:hover:is(.dark *){background-color:rgb(var(--color-primary-900) / .3)}.dark\:hover\:bg-primary-900\/40:hover:is(.dark *){background-color:rgb(var(--color-primary-900) / .4)}.dark\:hover\:bg-primary-900\/50:hover:is(.dark *){background-color:rgb(var(--color-primary-900) / .5)}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-900\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\:hover\:bg-yellow-900\/20:hover:is(.dark *){background-color:#713f1233}.dark\:hover\:text-amber-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.dark\:hover\:text-dark-600:hover:is(.dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\:hover\:text-dark-700:hover:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.dark\:hover\:text-dark-800:hover:is(.dark *){--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:hover\:text-primary-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-100) / var(--tw-text-opacity,1))}.dark\:hover\:text-primary-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-300) / var(--tw-text-opacity,1))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity,1))}.dark\:hover\:text-red-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:hover\:shadow-dark-400\/20:hover:is(.dark *){--tw-shadow-color:#3f3f4633;--tw-shadow:var(--tw-shadow-colored)}.dark\:hover\:file\:bg-dark-300:-webkit-any(.dark *)::-webkit-file-upload-button:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\:hover\:file\:bg-dark-300:is(.dark *)::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\:focus\:border-primary-400:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.dark\:focus\:border-primary-500:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:focus\:ring-primary-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400) / var(--tw-ring-opacity,1))}.dark\:focus\:ring-primary-400\/20:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400) / .2)}.dark\:focus\:ring-primary-900\/30:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-900) / .3)}.dark\:focus\:ring-offset-dark-100:focus:is(.dark *){--tw-ring-offset-color:#111113}.dark\:focus\:ring-offset-dark-50:focus:is(.dark *){--tw-ring-offset-color:#0a0a0b}.dark\:active\:bg-dark-100:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 17 19/var(--tw-bg-opacity,1))}.dark\:active\:bg-dark-200:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.dark\:active\:bg-dark-400:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.dark\:active\:bg-gray-600:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:active\:bg-red-900\/30:active:is(.dark *){background-color:#7f1d1d4d}.dark\:disabled\:bg-dark-300:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\:disabled\:text-dark-500:disabled:is(.dark *){--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.group:hover .dark\:group-hover\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.peer:focus~.dark\:peer-focus\:ring-primary-800:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-800) / var(--tw-ring-opacity,1))}@media not all and (min-width:1024px){.max-lg\:ml-0{margin-left:0}.max-lg\:ml-18{margin-left:4.5rem}}@media not all and (min-width:640px){.max-sm\:ml-64{margin-left:16rem}.max-sm\:w-64{width:16rem}}@media (min-width:475px){.xs\:w-48{width:12rem}.xs\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:p-3{padding:.75rem}.xs\:p-4{padding:1rem}}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-12{margin-left:3rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-4{height:1rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:h-80{height:20rem}.sm\:h-9{height:2.25rem}.sm\:h-\[52px\]{height:52px}.sm\:h-\[600px\]{height:600px}.sm\:max-h-80{max-height:20rem}.sm\:min-h-\[36px\]{min-height:36px}.sm\:w-4{width:1rem}.sm\:w-52{width:13rem}.sm\:w-6{width:1.5rem}.sm\:w-64{width:16rem}.sm\:w-8{width:2rem}.sm\:w-9{width:2.25rem}.sm\:w-\[480px\]{width:480px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-48{max-width:12rem}.sm\:max-w-\[75\%\]{max-width:75%}.sm\:max-w-\[90vw\]{max-width:90vw}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:columns-2{-moz-columns:2;columns:2}.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-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:rounded-3xl{border-radius:1.5rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-7xl{font-size:4.5rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.8125rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:opacity-0{opacity:0}.group:hover .sm\:group-hover\:opacity-100{opacity:1}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:mt-6{margin-top:1.5rem}.md\:h-6{height:1.5rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.lg\:-right-12{right:-3rem}.lg\:left-1\/2{left:50%}.lg\:top-0{top:0}.lg\:top-1\/2{top:50%}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mx-4{margin-left:1rem;margin-right:1rem}.lg\:block{display:block}.lg\:h-96{height:24rem}.lg\:h-\[85vh\]{height:85vh}.lg\:max-h-96{max-height:24rem}.lg\:max-h-\[90vh\]{max-height:90vh}.lg\:w-80{width:20rem}.lg\:max-w-4xl{max-width:56rem}.lg\:-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:columns-3{-moz-columns:3;columns:3}.lg\:grid-cols-1{grid-template-columns:repeat(1,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\:grid-cols-\[minmax\(0\,1fr\)_360px\]{grid-template-columns:minmax(0,1fr) 360px}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\: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)}}@media (min-width:1280px){.xl\:columns-4{-moz-columns:4;columns:4}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-\[360px_minmax\(0\,1fr\)\]{grid-template-columns:360px minmax(0,1fr)}}.\[\&_\.katex-display\]\:overflow-x-auto .katex-display{overflow-x:auto}.\[\&_\.katex-display\]\:overflow-y-hidden .katex-display{overflow-y:hidden}.\[\&_\.katex-display\]\:py-2 .katex-display{padding-top:.5rem;padding-bottom:.5rem}.\[\&_\.katex\]\:text-inherit .katex{color:inherit}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{d as e,f as t}from"./markdown-core-fkbHPd-g.js";import{t as n}from"./utils-BaPYjs_z.js";t();var r=e(),i=({variant:e=`primary`,size:t=`md`,loading:i=!1,disabled:a,children:o,className:s,...c})=>(0,r.jsxs)(`button`,{className:n(`inline-flex items-center justify-center rounded-xl font-medium transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed active:scale-[0.98] relative overflow-hidden`,{primary:`bg-primary-600 text-white shadow-sm hover:bg-primary-700 hover:shadow-md focus:ring-primary-500 dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-400`,secondary:`bg-gray-50 text-gray-700 border border-gray-200 shadow-sm hover:bg-gray-100 hover:border-gray-300 hover:shadow-md focus:ring-gray-500 dark:bg-dark-200 dark:text-dark-700 dark:border-dark-300 dark:hover:bg-dark-300 dark:hover:border-dark-400`,outline:`border border-gray-300 text-gray-700 bg-white shadow-sm hover:bg-gray-50 hover:border-gray-400 focus:ring-gray-500 dark:border-dark-300 dark:text-dark-700 dark:bg-dark-50 dark:hover:bg-dark-100 dark:hover:border-dark-400`,ghost:`text-gray-600 hover:bg-gray-100 hover:text-gray-900 focus:ring-gray-500 dark:text-dark-500 dark:hover:bg-dark-200 dark:hover:text-dark-800`,danger:`bg-error-500 text-white shadow-sm hover:bg-error-600 hover:shadow-md focus:ring-error-500 dark:bg-error-600 dark:hover:bg-error-700`}[e],{sm:`px-3 py-1.5 text-sm gap-1.5`,md:`px-4 py-2.5 text-sm gap-2`,lg:`px-6 py-3 text-base gap-2.5`}[t],s),disabled:a||i,...c,children:[i&&(0,r.jsxs)(`svg`,{className:`mr-2 h-4 w-4 animate-spin`,fill:`none`,viewBox:`0 0 24 24`,children:[(0,r.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,r.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z`})]}),o]});export{i as t};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{d as t,f as n}from"./markdown-core-fkbHPd-g.js";import{n as r}from"./react-vendor-Co1u1rWb.js";import{t as i}from"./useQuery-iKrQD3gp.js";import{t as a}from"./logger-BmpKNkls.js";import{A as o,At as s,Bt as c,C as l,Ct as u,D as d,G as f,H as p,Mt as m,N as h,Nt as g,P as _,Q as v,Rt as y,S as b,St as x,T as S,Tt as C,U as w,Vt as T,Y as E,Z as D,_t as O,a as k,c as A,ct as j,d as M,dt as N,et as ee,ft as P,h as te,ht as F,i as I,lt as L,mt as ne,n as R,o as re,ot as ie,q as ae,r as oe,st as se,t as ce,tt as z,ut as B,v as le,vt as V,x as ue,xt as de,y as H,z as fe}from"./ui-vendor-njo77ljx.js";import{n as pe}from"./demoMode-BhEpMVh5.js";import{a as U,c as me,d as he,f as ge,m as _e,n as ve,o as ye,s as be,u as xe}from"./api-BaWiKZy-.js";import{i as Se,n as Ce,r as we,t as W}from"./utils-BaPYjs_z.js";import{t as G}from"./Button-BUjLpHmR.js";import{B as Te,T as K,V as Ee,_ as q,f as De,g as Oe,k as J,p as ke,u as Ae,y as je,z as Me}from"../assets/index-CdGZAiI5.js";import{a as Ne,i as Pe}from"./artifactHtml-B7Oy2e__.js";import{t as Fe}from"./ArtifactContainer-DK1FCylP.js";var Ie=r(),Y=e(n(),1),X=t(),Le=({statistics:e,className:t=``})=>{let[n,r]=(0,Y.useState)(!1),{t:i}=J(),a=e=>{if(e==null)return`N/A`;let t=e/1e6;return t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(2)}s`},o=e=>e?`${e.toFixed(1)} t/s`:`N/A`,s=e.prompt_eval_count||0,c=e.eval_count||0,l=s+c,u=a(e.total_duration),d=o(e.tokens_per_second);return(0,X.jsxs)(`div`,{className:`text-xs text-gray-500 dark:text-dark-500 mt-2 ${t}`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-4 mb-1`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-1 text-gray-600 dark:text-dark-600`,children:[(0,X.jsx)(p,{size:12,className:`text-primary-500`}),c,` tokens`]}),(0,X.jsx)(`span`,{className:`text-gray-500 dark:text-dark-500`,children:d}),(0,X.jsx)(`span`,{className:`text-gray-500 dark:text-dark-500`,children:u}),e.model&&(0,X.jsx)(`span`,{className:`text-gray-400 dark:text-dark-400 bg-gray-100 dark:bg-dark-200 px-2 py-0.5 rounded-full truncate max-w-32 sm:max-w-48`,title:e.model,children:e.model})]}),(0,X.jsxs)(`button`,{onClick:()=>r(!n),className:`flex items-center gap-1 text-gray-400 dark:text-dark-400 hover:text-gray-600 dark:hover:text-dark-600 transition-colors`,children:[n?(0,X.jsx)(O,{size:12}):(0,X.jsx)(F,{size:12}),(0,X.jsx)(`span`,{children:i(`generationStats.details`)})]}),n&&(0,X.jsxs)(`div`,{className:`mt-2 p-3 bg-gray-50 dark:bg-dark-100 border border-gray-200 dark:border-dark-300 rounded-lg text-xs space-y-2`,children:[(0,X.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-4 gap-y-2`,children:[(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.promptTokens`)}),` `,s]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.generatedTokens`)}),` `,c]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.totalTokens`)}),` `,l]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.speed`)}),` `,d]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.promptEval`)}),` `,a(e.prompt_eval_duration)]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.generation`)}),` `,a(e.eval_duration)]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.modelLoad`)}),` `,a(e.load_duration)]}),(0,X.jsxs)(`div`,{className:`text-gray-700 dark:text-dark-700`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.totalTime`)}),` `,u]})]}),e.created_at&&(0,X.jsxs)(`div`,{className:`pt-2 border-t border-gray-200 dark:border-dark-300 text-gray-600 dark:text-dark-600`,children:[(0,X.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-dark-800`,children:i(`generationStats.generatedAt`)}),` `,new Date(e.created_at).toLocaleTimeString()]})]})]})},Re=a(`components:ttsbutton`),ze=null,Be=null,Ve=0,He=300*1e3;async function Ue(){let e=Date.now();return ze!==null&&e-Ve<He?ze:Be||(Be=(async()=>{try{let t=await ve.getModels();return t.success&&t.data&&t.data.length>0?(ze=t.data,Ve=e,t.data):(ze=[],Ve=e,[])}catch{return ze=[],Ve=e,[]}finally{Be=null}})(),Be)}function We(e){return e.split(/(?<=[.!?]["']?\s)|(?<=[.!?]["']?$)/).map(e=>e.trim()).filter(e=>e.length>0)}var Ge=({text:e,className:t,size:n=`sm`})=>{let{t:r}=J(),{preferences:i}=je(),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)([]),[p,m]=(0,Y.useState)(null),h=(0,Y.useRef)(null),_=(0,Y.useRef)(!1),v=(0,Y.useRef)([]),y=(0,Y.useRef)(0);(0,Y.useEffect)(()=>{let e=!0;return Ue().then(t=>{e&&(f(t),m(t.length>0))}),()=>{e=!1}},[]);let b=(0,Y.useCallback)(async(e,t,n,i)=>{let a=await ve.generateBase64({model:t,input:e,voice:n,speed:i,response_format:`mp3`});if(!a.success||!a.data?.audio)throw Error(a.message||r(`ttsButton.generateFailed`));let o=`data:${a.data.mimeType};base64,${a.data.audio}`,s=new Audio(o);return h.current=s,new Promise((e,t)=>{s.onended=()=>{h.current=null,e()},s.onerror=()=>{h.current=null,t(Error(r(`ttsButton.playbackFailed`)))},s.play().catch(t)})},[r]),x=(0,Y.useCallback)(async(e,t,n,r)=>{v.current=e,y.current=0,_.current=!1;let i=null,a=async e=>{try{let i=await ve.generateBase64({model:t,input:e,voice:n,speed:r,response_format:`mp3`});return!i.success||!i.data?.audio?null:{audioUrl:`data:${i.data.mimeType};base64,${i.data.audio}`,mimeType:i.data.mimeType}}catch{return null}};e.length>0&&(i=a(e[0]));for(let t=0;t<e.length&&!_.current;t++){y.current=t;try{let n=await i;if(_.current)break;if(i=t+1<e.length?a(e[t+1]):null,!n){Re.warn(`Failed to generate audio for sentence ${t+1}, skipping`);continue}let r=new Audio(n.audioUrl);h.current=r,await new Promise((e,t)=>{r.onended=()=>{h.current=null,e()},r.onerror=()=>{h.current=null,e()},r.play().catch(()=>{e()})})}catch(e){Re.error(`Error playing sentence ${t+1}:`,e)}}},[]),S=(0,Y.useCallback)(()=>{_.current=!0,h.current&&(h.current.pause(),h.current.currentTime=0,h.current=null),o(!1),c(!1)},[]),C=async()=>{if(!s){if(a){S();return}c(!0),u(null),_.current=!1;try{let t=i.ttsSettings,n=t?.model||d[0]?.model||`tts-1`,a=t?.voice||d[0]?.config?.default_voice||`alloy`,s=t?.speed||1;if(t?.streamSentences){let t=We(e);if(t.length===0)throw Error(r(`ttsButton.generateFailed`));c(!1),o(!0),await x(t,n,a,s),_.current||o(!1)}else await b(e,n,a,s),c(!1),o(!0),h.current&&(h.current.onended=()=>{o(!1),h.current=null},h.current.onerror=()=>{u(r(`ttsButton.playbackFailed`)),o(!1),h.current=null})}catch(e){u(e instanceof Error?e.message:r(`ttsButton.generateFailed`)),Re.error(`TTS error:`,e),o(!1),c(!1)}}};if((0,Y.useEffect)(()=>()=>{_.current=!0,h.current&&(h.current.pause(),h.current=null)},[]),p===!1||p===null)return null;let w={sm:`h-6 w-6 p-1`,md:`h-8 w-8 p-1.5`,lg:`h-10 w-10 p-2`},T={sm:`h-3.5 w-3.5`,md:`h-4 w-4`,lg:`h-5 w-5`};return(0,X.jsx)(`button`,{onClick:C,disabled:s||!e,title:l||r(a?`ttsButton.stopSpeaking`:s?`ttsButton.generatingSpeech`:`ttsButton.readAloud`),className:W(`rounded-full transition-all duration-200`,`hover:bg-gray-100 dark:hover:bg-dark-200`,`focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-1`,`disabled:opacity-50 disabled:cursor-not-allowed`,l?`text-red-500 dark:text-red-400`:a?`text-primary-600 dark:text-primary-400 bg-primary-50 dark:bg-primary-900/20`:`text-gray-500 dark:text-gray-400`,w[n],t),children:s?(0,X.jsx)(g,{className:W(T[n],`animate-spin`)}):a?(0,X.jsx)(te,{className:T[n]}):l?(0,X.jsx)(I,{className:T[n]}):(0,X.jsx)(k,{className:T[n]})})},Ke=/```([^\n`]*)\n([\s\S]*?)\n```/g,qe=/[\w@./-]+\.(?:html?|css|mjs|js|jsx|ts|tsx|svg|json|py)/i,Je=[`html`,`react`,`svg`,`mermaid`,`chart`,`code`,`text`,`json`],Ye=[{regex:/<artifact\s+type="([^"]+)"\s+title="([^"]+)"[^>]*>([\s\S]*?)<\/artifact>/gi,extract:e=>({type:rt(e[1]),title:Xe(e[2]).trim()||`Artifact`,content:e[3].trim()})},{regex:/<artifact\s+type="([^"]+)"[^>]*>([\s\S]*?)<\/artifact>/gi,extract:e=>{let t=rt(e[1]);return{type:t,title:`${t.toUpperCase()} Artifact`,content:e[2].trim()}}}];function Xe(e){if(typeof document<`u`){let t=document.createElement(`div`);return t.innerHTML=e,t.textContent||t.innerText||``}return Qe(Ze(e))}function Ze(e){return e.replace(/&(lt|gt|quot|apos|#39);/gi,(e,t)=>{switch(t.toLowerCase()){case`lt`:return`<`;case`gt`:return`>`;case`quot`:return`"`;case`apos`:case`#39`:return`'`;default:return``}}).replace(/&/gi,`&`)}function Qe(e){let t=``,n=!1,r=null;for(let i=0;i<e.length;i+=1){let a=e[i];if(n){if(r){a===r&&(r=null);continue}if(a===`"`||a===`'`){r=a;continue}a===`>`&&(n=!1);continue}if(a===`<`){let t=e[i+1];if(t&&/[!/A-Za-z?]/.test(t)){n=!0;continue}}t+=a}return t}function $e(e){let t=e.match(/<title[^>]*>([\s\S]*?)<\/title>/i);if(t)return Xe(t[1]).trim()||null;let n=e.match(/<h1[^>]*>([\s\S]*?)<\/h1>/i);return n&&Xe(n[1]).trim()||null}function et(e){let t=e.match(/(?:function|const)\s+(\w+)/);if(t)return t[1];let n=e.match(/class\s+(\w+)/);return n?n[1]:null}function tt(e){if(e.includes(`def main(`))return`Python Script`;let t=e.match(/class\s+(\w+)/);if(t)return`${t[1]} Class`;let n=e.match(/def\s+(\w+)/);return n&&n[1]!==`__init__`?`${n[1]} Function`:null}function nt(e){let t=e.match(/function\s+(\w+)/);if(t)return`${t[1]} Function`;let n=e.match(/(?:const|let)\s+(\w+)\s*=/);return n?n[1]:null}function rt(e){let t=e.trim().toLowerCase();return Je.includes(t)?t:`text`}function Z(e){if(!e)return;let t=e.trim().toLowerCase().replace(/^\./,``).replace(/[,:;]+$/,``);switch(t){case`htm`:case`html`:return`html`;case`js`:case`mjs`:case`javascript`:return`javascript`;case`jsx`:case`tsx`:case`react`:return`react`;case`ts`:case`typescript`:return`typescript`;case`py`:case`python`:return`python`;case`css`:case`svg`:case`json`:return t;default:return t||void 0}}function it(e){let t=[],n=new RegExp(Ke),r;for(;(r=n.exec(e))!==null;){let n=r[1].trim(),i=at(n,st(e,r.index));t.push({raw:r[0],info:n,content:r[2].trim(),start:r.index,end:r.index+r[0].length,language:i.language,fileName:i.fileName})}return t}function at(e,t){let n=ot(e)||t,r=e.split(/\s+/).filter(Boolean)[0]?.replace(/[{}[\]()]/g,``);return{language:(r&&!qe.test(r)&&!r.includes(`=`)?Z(r):void 0)||Z(lt(n)),fileName:n}}function ot(e){let t=e.match(/(?:file(?:name)?|path|name)\s*=\s*["']?([^"'\s]+)["']?/i);if(t&&qe.test(t[1]))return ct(t[1]);let n=e.match(qe);return n?ct(n[0]):void 0}function st(e,t){let n=e.slice(Math.max(0,t-180),t).split(`
|
|
2
|
-
`).slice(-3).reverse();for(let e of n){let t=e.trim().replace(/^#{1,6}\s*/,``).replace(/^[-*]\s*/,``).replace(/[::]\s*$/,``).match(qe);if(t)return ct(t[0])}}function ct(e){return e.replace(/^["'`]+|["'`:]+$/g,``)}function lt(e){return e?.match(/\.([a-z0-9]+)$/i)?.[1]}function ut(e){return e?.split(/[\\/]/).pop()}function Q(e){let t=ut(e);if(!t)return null;let n=t.replace(/\.[^.]+$/,``);return/^(index|main|app)$/i.test(n)?null:n.replace(/[-_]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function dt(e){let t=Date.now();return{...e,id:`artifact-${t}-${Math.random().toString(36).slice(2,11)}`,createdAt:t,updatedAt:t}}function ft(e){let t=Z(e.language)||Z(lt(e.fileName));switch(t){case`html`:return{type:`html`,title:$e(e.content)||Q(e.fileName)||`HTML Document`};case`svg`:return{type:`svg`,title:Q(e.fileName)||`SVG Image`};case`react`:return{type:`react`,title:et(e.content)||Q(e.fileName)||`React Component`,language:`jsx`};case`json`:return{type:`json`,title:Q(e.fileName)||`JSON Data`};case`python`:return{type:`code`,title:tt(e.content)||Q(e.fileName)||`Python Code`,language:`python`};case`css`:return{type:`code`,title:Q(e.fileName)||`CSS Styles`,language:`css`};case`javascript`:return{type:`code`,title:nt(e.content)||Q(e.fileName)||`JavaScript Code`,language:`javascript`};case`typescript`:return{type:`code`,title:Q(e.fileName)||`TypeScript Code`,language:`typescript`};default:return t?{type:`code`,title:Q(e.fileName)||`${t.toUpperCase()} Code`,language:t}:null}}function pt(e){return(Z(e.language)||Z(lt(e.fileName)))===`html`}function mt(e){return(Z(e.language)||Z(lt(e.fileName)))===`css`}function ht(e){return(Z(e.language)||Z(lt(e.fileName)))===`javascript`}function gt(e){let t=it(e),n=t.filter(pt);if(n.length===0)return null;let r=t.filter(mt),i=t.filter(ht);if(r.length===0&&i.length===0)return null;let a=n.find(e=>/(^|[/\\])index\.html?$/i.test(e.fileName||``))||n[0],o=Ne(_t(a.content,r,i),r.map(e=>e.content),i.map(e=>e.content));return St(o,`html`)?{artifact:dt({type:`html`,title:$e(o)||Q(a.fileName)||`Interactive HTML App`,description:`Bundled generated HTML, CSS, and JavaScript files into one runnable artifact.`,content:o}),ranges:[a,...r,...i]}:null}function _t(e,t,n){let r=e;for(let e of t){let t=ut(e.fileName);t&&(r=r.replace(RegExp(`<link\\b[^>]*href=["'][^"']*${xt(t)}["'][^>]*>`,`gi`),``))}for(let e of n){let t=ut(e.fileName);t&&(r=r.replace(RegExp(`<script\\b[^>]*src=["'][^"']*${xt(t)}["'][^>]*>\\s*<\\/script>`,`gi`),``))}return r}function vt(e){let t=/<!doctype\s+html|<html[\s>]/i.exec(e);if(!t||t.index===void 0)return null;let n=it(e);if(yt(t.index,n))return null;let r=t.index,i=/<\/html>/gi;i.lastIndex=r;let a=i.exec(e),o=a?a.index+a[0].length:e.length,s=e.slice(r,o).trim();return St(s,`html`)?{artifact:dt({type:`html`,title:$e(s)||`HTML Document`,content:s}),ranges:[{start:r,end:o}]}:null}function yt(e,t){return t.some(t=>e>=t.start&&e<=t.end)}function bt(e,t){return[...t].sort((e,t)=>t.start-e.start).reduce((e,t)=>`${e.slice(0,t.start)}${e.slice(t.end)}`,e)}function xt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function St(e,t){if(t===`html`){let t=e.trim(),n=/<[^>]+>/.test(t),r=/<(canvas|script|style|button|form|input|select|textarea|video|audio)\b/i.test(t)||/\bon(?:click|input|submit|keydown|keyup|mousemove)=/i.test(t);return n&&(Pe(t)||t.length>160||r)}if(t===`svg`)return/<svg[^>]*>/.test(e);if(t===`react`)return/<[A-Z][^>]*>/.test(e)||/return\s*\(/.test(e);if(t===`json`)try{return JSON.parse(e),e.trim().length>100}catch{return!1}if(t===`code`){let t=e.split(`
|
|
3
|
-
`).length,n=e.trim().length,r=/function|class|def |import |from |const |let |var |if |for |while |try |catch/.test(e);return(n>500||t>15)&&r}return e.trim().length>200}function Ct(e){let t=[],n=e;for(let e of Ye){e.regex.lastIndex=0;let r=[],i;for(;(i=e.regex.exec(n))!==null;){let n=e.extract(i);St(n.content,n.type)&&(t.push(dt({type:n.type,title:n.title,content:n.content})),r.push({start:i.index,end:i.index+i[0].length}))}n=bt(n,r)}let r=gt(n);for(;r;)t.push(r.artifact),n=bt(n,r.ranges),r=gt(n);let i=vt(n);i&&(t.push(i.artifact),n=bt(n,i.ranges));let a=it(n),o=[];for(let e of a){let n=ft(e);!n||!St(e.content,n.type)||(t.push(dt({type:n.type,title:n.title,content:e.content,language:n.language})),o.push(e))}return n=bt(n,o),{content:n.trim(),artifacts:t}}var wt=a(`components:chat-message`),Tt=({message:e,isStreaming:t=!1,className:n,isLastAssistantMessage:r=!1,onRegenerate:i})=>{let{t:a}=J(),o=e.role===`user`,s=e.role===`system`,{preferences:c}=je(),{user:u}=Oe(),{setSystemMessage:d,getCurrentPersona:f}=K(),p=f(),[h,g]=(0,Y.useState)(!1),[_,v]=(0,Y.useState)(e.content),[y,b]=(0,Y.useState)(null),[x,C]=(0,Y.useState)(!1),[w,T]=(0,Y.useState)(!1),[E,D]=(0,Y.useState)(!1),[k,A]=(0,Y.useState)(!1),[j,M]=(0,Y.useState)(!1),N=(0,Y.useRef)(null),ee=(0,Y.useRef)(t),P=(0,Y.useRef)(!1),te=async()=>{try{await navigator.clipboard.writeText(e.content),M(!0),setTimeout(()=>M(!1),2e3)}catch(e){wt.error(`Failed to copy message:`,e)}},{thinkingContent:F,parsedContent:I,artifacts:L}=(0,Y.useMemo)(()=>{if(o||s||!e.content)return{thinkingContent:null,parsedContent:e.content,artifacts:e.artifacts||[]};let n=Se(e.content),r=n.content;if(e.artifacts&&e.artifacts.length>0)return{thinkingContent:n.thinking,parsedContent:r,artifacts:e.artifacts};if(!t){let e=Ct(r);return{thinkingContent:n.thinking,parsedContent:e.content,artifacts:e.artifacts}}return{thinkingContent:n.thinking,parsedContent:r,artifacts:[]}},[e.content,e.artifacts,o,s,t]);(0,Y.useEffect)(()=>{let e=ee.current&&!t;return ee.current=t,e&&!P.current&&!o&&!s&&I&&c.ttsSettings?.enabled&&c.ttsSettings?.autoPlay&&(P.current=!0,(async()=>{A(!0);try{let e=await ve.generateBase64({model:c.ttsSettings?.model||`tts-1`,input:I,voice:c.ttsSettings?.voice||`alloy`,speed:c.ttsSettings?.speed||1,response_format:`mp3`});if(e.success&&e.data?.audio){let t=`data:${e.data.mimeType};base64,${e.data.audio}`,n=new Audio(t);N.current=n,n.onended=()=>{A(!1),N.current=null},n.onerror=()=>{A(!1),N.current=null},await n.play()}}catch(e){wt.error(`Auto-play TTS failed:`,e),A(!1)}})()),()=>{N.current&&(N.current.pause(),N.current=null)}},[t,o,s,I,c.ttsSettings]);let ie=()=>s?a(`chatMessage.system`):o?c.showUsername&&u?.username?u.username:a(`chatMessage.you`):p?.name?p.name:e.model||a(`chatMessage.assistant`),ae=()=>{g(!0),v(e.content)},oe=async()=>{C(!0);try{d(_),g(!1),wt.debug(`✅ System message updated:`,_)}catch(e){wt.error(`Failed to save system message:`,e)}finally{C(!1)}},se=()=>{g(!1),v(e.content)},ce=(e,t=100)=>e.length<=t?e:e.substring(0,t)+`...`,z=s&&e.content.length>100;return(0,X.jsxs)(`div`,{className:W(`flex transition-colors group my-2`,o?`justify-end`:`justify-start`,n),children:[(0,X.jsxs)(`div`,{className:W(`flex gap-3 sm:gap-4`,o?`flex-row-reverse max-w-[85%] sm:max-w-[75%]`:s?`w-full`:`max-w-[85%] sm:max-w-[75%]`),children:[!s&&(0,X.jsx)(`div`,{className:W(`flex shrink-0 items-center justify-center shadow-sm overflow-hidden mt-1`,o?`h-8 w-8 rounded-full bg-primary-600 text-white`:p?.avatar?`h-8 w-8 rounded-full bg-white dark:bg-dark-100`:`h-8 px-2 rounded-full bg-white dark:bg-dark-100`),children:o?u?.avatar?(0,X.jsx)(`img`,{src:u.avatar,alt:u.username,className:`w-full h-full object-cover`}):(0,X.jsx)(re,{className:`h-4 w-4`}):p?.avatar?(0,X.jsx)(`img`,{src:p.avatar,alt:p.name||`Assistant`,className:`w-full h-full object-cover`}):(0,X.jsx)(`span`,{className:`libre-brand text-xs text-gray-700 dark:text-gray-200`,children:`Libre`})}),(0,X.jsxs)(`div`,{className:W(`flex-1 min-w-0 rounded-2xl sm:rounded-3xl p-4 sm:p-5`,o?`bg-primary-600/90 dark:bg-primary-700/90 text-white`:s?`bg-transparent p-2 py-3`:`bg-white/95 dark:bg-dark-100/95 backdrop-blur-md shadow-sm border border-gray-200/50 dark:border-dark-300/50`),children:[!s&&(0,X.jsxs)(`div`,{className:W(`flex items-center gap-3 mb-2`,o&&`flex-row-reverse`),children:[(0,X.jsx)(`span`,{className:W(`text-sm font-semibold`,o?`text-white/90`:`text-gray-900 dark:text-dark-800`),children:ie()}),e.model&&!o&&p?.name&&(0,X.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-dark-600 bg-gray-100 dark:bg-dark-200 px-2 py-0.5 rounded-full truncate max-w-32 sm:max-w-48`,title:e.model,children:e.model}),(0,X.jsx)(`span`,{className:W(`text-xs`,o?`text-white/60`:`text-gray-400 dark:text-dark-500`),children:Ce(e.timestamp)}),!o&&!s&&!t&&I&&(0,X.jsx)(Ge,{text:I,size:`sm`,className:W(`transition-opacity`,k?`opacity-100 text-primary-600 dark:text-primary-400`:`opacity-0 group-hover:opacity-100`)}),!s&&!t&&(0,X.jsx)(`button`,{onClick:te,className:`p-1 rounded hover:bg-gray-100 dark:hover:bg-dark-200 transition-opacity opacity-0 group-hover:opacity-100`,title:a(j?`chatMessage.copied`:`chatMessage.copyMessage`),children:j?(0,X.jsx)(V,{className:`h-3.5 w-3.5 text-green-500 dark:text-green-400`}):(0,X.jsx)(B,{className:`h-3.5 w-3.5 text-gray-500 dark:text-gray-400`})}),!o&&!s&&!t&&r&&i&&(0,X.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-gray-100 dark:hover:bg-dark-200 transition-opacity opacity-0 group-hover:opacity-100`,title:a(`chatMessage.regenerateResponse`),children:(0,X.jsx)(S,{className:`h-3.5 w-3.5 text-gray-500 dark:text-gray-400`})})]}),(0,X.jsxs)(`div`,{className:W(o?`text-white`:`text-gray-700 dark:text-dark-700`),children:[e.images&&e.images.length>0&&(0,X.jsx)(`div`,{className:`mb-3 grid grid-cols-2 sm:grid-cols-3 gap-2 max-w-lg`,children:e.images.map((e,t)=>(0,X.jsx)(`div`,{className:`aspect-square rounded-lg overflow-hidden bg-gray-100 dark:bg-gray-800 border border-gray-200 dark:border-gray-700`,children:(0,X.jsx)(`img`,{src:e,alt:`Uploaded image ${t+1}`,className:`w-full h-full object-cover cursor-pointer hover:opacity-90 transition-opacity`,onClick:()=>b(e)})},t))}),o?(0,X.jsx)(`p`,{className:`whitespace-pre-wrap leading-relaxed`,children:e.content}):s?(0,X.jsxs)(`div`,{className:`bg-gray-50/30 dark:bg-dark-50/30 rounded-md p-2 border border-gray-100/50 dark:border-dark-200/50 relative z-0`,children:[(0,X.jsxs)(`div`,{className:`text-xs font-medium mb-1 text-gray-500 dark:text-gray-400 flex items-center justify-between`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,X.jsx)(le,{className:`h-2.5 w-2.5 opacity-50`}),a(`chatMessage.system`)]}),(0,X.jsx)(`div`,{className:`flex items-center gap-1`,children:h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`button`,{onClick:oe,disabled:x,className:`p-1 hover:bg-gray-100 dark:hover:bg-dark-200 rounded transition-colors disabled:opacity-50`,title:a(`chatMessage.saveChanges`),children:(0,X.jsx)(l,{className:`h-3 w-3 text-green-600 dark:text-green-400`})}),(0,X.jsx)(`button`,{onClick:se,disabled:x,className:`p-1 hover:bg-gray-100 dark:hover:bg-dark-200 rounded transition-colors disabled:opacity-50`,title:a(`chatMessage.cancelEditing`),children:(0,X.jsx)(R,{className:`h-3 w-3 text-red-600 dark:text-red-400`})})]}):(0,X.jsx)(`button`,{onClick:ae,className:`p-1 hover:bg-gray-100 dark:hover:bg-dark-200 rounded transition-colors`,title:a(`chatMessage.editSystemMessage`),children:(0,X.jsx)(m,{className:`h-3 w-3 text-gray-600 dark:text-gray-400`})})})]}),h?(0,X.jsx)(`textarea`,{value:_,onChange:e=>v(e.target.value),className:`w-full min-h-[100px] p-3 text-sm text-gray-900 dark:text-gray-100 bg-gray-50 dark:bg-dark-50 border border-gray-200 dark:border-dark-300 rounded-lg resize-none focus:outline-none focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400 focus:border-transparent`,placeholder:a(`chatMessage.systemMessagePlaceholder`),disabled:x}):(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`whitespace-pre-wrap leading-relaxed text-xs text-gray-500 dark:text-gray-400`,children:w?e.content:ce(e.content)}),z&&(0,X.jsx)(`button`,{onClick:()=>T(!w),className:`mt-1 flex items-center gap-1 text-xs text-gray-400 dark:text-gray-500 hover:text-primary-600 dark:hover:text-primary-400 transition-colors`,children:w?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ne,{className:`h-3 w-3`}),a(`chatMessage.showLess`)]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(O,{className:`h-3 w-3`}),a(`chatMessage.showMore`)]})})]})]}):(0,X.jsxs)(`div`,{className:`relative`,children:[F&&(0,X.jsxs)(`div`,{className:`mb-3`,children:[(0,X.jsxs)(`button`,{onClick:()=>D(!E),className:`flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors`,children:[(0,X.jsx)(de,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`font-medium`,children:a(`chatMessage.thinking`)}),E?(0,X.jsx)(ne,{className:`h-4 w-4`}):(0,X.jsx)(O,{className:`h-4 w-4`})]}),E&&(0,X.jsx)(`div`,{className:`mt-2 p-3 bg-gray-50 dark:bg-dark-100 rounded-lg border border-gray-200 dark:border-dark-300`,children:(0,X.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-300 whitespace-pre-wrap leading-relaxed`,children:F})})]}),(0,X.jsx)(Ae,{content:I,isStreaming:t}),t&&!I.includes("```")&&(0,X.jsx)(`div`,{className:`inline-block w-2 h-5 bg-primary-500 animate-pulse ml-1 rounded-sm`})]}),!o&&!s&&L.length>0&&(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(Fe,{artifacts:L})}),!o&&!s&&e.statistics&&(0,X.jsx)(`div`,{className:`mt-3`,children:(0,X.jsx)(Le,{statistics:e.statistics})})]})]})]}),y&&(0,Ie.createPortal)((0,X.jsxs)(`div`,{className:`fixed inset-0 z-[9999] flex items-center justify-center bg-black/80 backdrop-blur-sm`,onClick:()=>b(null),children:[(0,X.jsx)(`button`,{className:`absolute top-6 right-6 p-3 bg-white/20 hover:bg-white/40 rounded-full text-white transition-all shadow-lg border border-white/30`,onClick:e=>{e.stopPropagation(),b(null)},children:(0,X.jsx)(R,{className:`h-7 w-7`})}),(0,X.jsx)(`img`,{src:y,alt:a(`chatMessage.fullSizeImage`),className:`max-w-[90vw] max-h-[90vh] object-contain rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()})]}),document.body)]})},Et=({messages:e,isStreaming:t=!1,streamingMessage:n,streamingMessageId:r,isLastAssistantMessage:i=!1,onRegenerate:a,onSelectBranch:o,className:s})=>{if(e.length===1){let o=e[0],c=t&&r===o.id;return(0,X.jsx)(Tt,{message:c&&n?{...o,content:n}:o,isStreaming:c,isLastAssistantMessage:i,onRegenerate:a,className:s})}return(0,X.jsxs)(`div`,{className:W(`relative py-1`,s),children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 px-4 pb-2 text-[10px] text-gray-400 dark:text-gray-500`,children:[(0,X.jsx)(D,{className:`h-3 w-3`}),(0,X.jsxs)(`span`,{children:[e.length,` variants`]})]}),(0,X.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 px-4`,children:e.map((e,s)=>{let c=e.isActive!==!1,l=t&&r===e.id,u=l&&n?{...e,content:n}:e;return(0,X.jsxs)(`div`,{className:W(`relative rounded-lg overflow-hidden transition-all duration-200`,`border shadow-sm`,c||l?`border-primary-300 dark:border-primary-600 shadow-primary-100 dark:shadow-primary-900/20`:`border-gray-200 dark:border-dark-300 hover:border-gray-300 dark:hover:border-dark-400`,!c&&!l&&`cursor-pointer hover:shadow-md`),onClick:()=>!c&&!l&&o?.(e.id),children:[(0,X.jsxs)(`div`,{className:W(`flex items-center justify-between px-2.5 py-1 text-[11px]`,c||l?`bg-primary-50/80 dark:bg-primary-900/20 text-primary-600 dark:text-primary-400`:`bg-gray-50/80 dark:bg-dark-100/80 text-gray-500 dark:text-gray-500`),children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(`span`,{className:`font-medium`,children:s+1}),l&&(0,X.jsx)(`span`,{className:`text-[10px] opacity-70 animate-pulse`,children:`generating...`})]}),c&&!l&&(0,X.jsx)(V,{className:`h-3 w-3`}),!c&&!l&&(0,X.jsx)(`span`,{className:`text-[10px] opacity-50`,children:`select`})]}),(0,X.jsx)(`div`,{className:W(`bg-white dark:bg-dark-50`,!c&&!l&&`opacity-80`),children:(0,X.jsx)(Tt,{message:u,isStreaming:l,isLastAssistantMessage:i&&(c||l),onRegenerate:c&&!t?a:void 0,className:`!bg-transparent !p-3 !text-sm`})})]},e.id)})})]})},Dt={web_search:b,web_fetch:E,exec:M,browser:E,Read:z,Write:z,Edit:z,image:w,memory_search:j,memory_get:j,working:oe,thinking:oe,default:oe},Ot={web_search:`Searching the web`,web_fetch:`Fetching page`,exec:`Running command`,browser:`Using browser`,Read:`Reading file`,Write:`Writing file`,Edit:`Editing file`,image:`Analyzing image`,memory_search:`Searching memory`,memory_get:`Reading memory`,cron:`Managing schedule`,message:`Sending message`,tts:`Generating speech`,nodes:`Checking devices`,sessions_spawn:`Spawning agent`,canvas:`Rendering canvas`,process:`Managing process`,working:`Using tools`,thinking:`Thinking`},kt=({tools:e,className:t})=>{if(e.length===0)return null;let n=e.filter(e=>e.phase!==`result`&&e.phase!==`done`);return n.length===0?null:(0,X.jsx)(`div`,{className:W(`flex flex-col gap-1 py-2 px-1`,t),children:n.map(e=>{let t=Dt[e.name]||Dt.default,n=Ot[e.name]||`Using ${e.name}`,r=e.phase===`result`;return(0,X.jsxs)(`div`,{className:W(`flex items-center gap-2 text-sm transition-all duration-300`,r?`text-green-600 dark:text-green-400 opacity-60`:`text-gray-500 dark:text-gray-400`),children:[(0,X.jsx)(`div`,{className:W(`flex items-center justify-center w-5 h-5`,!r&&`animate-spin-slow`),children:(0,X.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,X.jsx)(`span`,{className:`text-xs font-medium`,children:r?`✓ ${n}`:`${n}…`}),!r&&(0,X.jsxs)(`div`,{className:`flex gap-0.5`,children:[(0,X.jsx)(`div`,{className:`w-1 h-1 bg-current rounded-full animate-bounce`,style:{animationDelay:`0ms`}}),(0,X.jsx)(`div`,{className:`w-1 h-1 bg-current rounded-full animate-bounce`,style:{animationDelay:`150ms`}}),(0,X.jsx)(`div`,{className:`w-1 h-1 bg-current rounded-full animate-bounce`,style:{animationDelay:`300ms`}})]})]},e.toolCallId)})})};a(`components:chat-messages`);var At=({messages:e,streamingMessage:t,streamingMessageId:n,isStreaming:r=!1,toolActivities:i=[],className:a,onRegenerate:o,onSelectBranch:s})=>{let{t:c}=J(),l=(0,Y.useRef)(null),u=(0,Y.useRef)(),d=(0,Y.useRef)(null),f=(0,Y.useRef)(!1),[p,m]=(0,Y.useState)(!1),h=(0,Y.useMemo)(()=>{let t=[],n=new Set,r=[...e].sort((e,t)=>e.role===`system`&&t.role!==`system`?-1:t.role===`system`&&e.role!==`system`?1:e.parentId===t.parentId?(e.branchIndex||0)-(t.branchIndex||0):e.timestamp-t.timestamp);for(let i of r){if(n.has(i.id))continue;let r=i.parentId;if(r){let a=t.findIndex(e=>e.id===r);if(a>=0)t[a].messages.push(i);else{let a=e.find(e=>e.id===r);a&&!n.has(r)?(t.push({id:r,messages:[a,i],messageIndex:t.length}),n.add(r)):t.push({id:i.id,messages:[i],messageIndex:t.length})}n.add(i.id)}else{let r=e.filter(e=>e.parentId===i.id);r.length>0?(t.push({id:i.id,messages:[i,...r],messageIndex:t.length}),n.add(i.id),r.forEach(e=>n.add(e.id))):(t.push({id:i.id,messages:[i],messageIndex:t.length}),n.add(i.id))}}return t.sort((e,t)=>{let n=e.messages[0],r=t.messages[0];return n.role===`system`&&r.role!==`system`?-1:r.role===`system`&&n.role!==`system`?1:n.timestamp-r.timestamp})},[e]),g=(0,Y.useCallback)((e=!1)=>{f.current&&!e||l.current?.scrollIntoView({behavior:`smooth`})},[]),_=(0,Y.useCallback)(()=>{let t=d.current;if(!t)return;let{scrollTop:n,scrollHeight:r,clientHeight:i}=t,a=r-n-i<100;f.current=!a,m(!a&&e.length>0)},[e.length]),v=(0,Y.useRef)(e.length);if((0,Y.useEffect)(()=>{e.length>v.current&&!f.current&&g(),v.current=e.length},[e.length,g]),(0,Y.useEffect)(()=>{r&&t&&!f.current&&requestAnimationFrame(()=>{let e=d.current;e&&(e.scrollTop=e.scrollHeight)})},[r,t]),(0,Y.useEffect)(()=>{let e=u.current;return()=>{e&&clearTimeout(e)}},[]),e.length===0&&!r)return(0,X.jsx)(`div`,{className:W(`flex-1 flex items-center justify-center p-4 sm:p-8`,a),children:(0,X.jsxs)(`div`,{className:`text-center text-gray-500 dark:text-dark-600 max-w-md`,children:[(0,X.jsx)(`div`,{className:`text-5xl sm:text-7xl mb-4 sm:mb-6 opacity-60`,children:`💬`}),(0,X.jsx)(`h3`,{className:`text-lg sm:text-xl font-semibold mb-2 sm:mb-3 text-gray-700 dark:text-dark-700`,children:c(`chatMessage.startConversation`)}),(0,X.jsx)(`p`,{className:`text-sm leading-relaxed px-4`,children:c(`chatMessage.startConversationDescription`)})]})});let y=-1;for(let e=h.length-1;e>=0;e--)if(h[e].messages.some(e=>e.role===`assistant`)){y=e;break}return(0,X.jsxs)(`div`,{ref:d,onScroll:_,className:W(`relative flex-1 overflow-y-auto scrollbar-thin scrollbar-thumb-gray-300 dark:scrollbar-thumb-gray-600`,`scrollbar-track-transparent hover:scrollbar-thumb-gray-400 dark:hover:scrollbar-thumb-gray-500`,`overscroll-behavior-y-contain`,`[-webkit-overflow-scrolling:touch]`,a),style:{WebkitOverflowScrolling:`touch`,overscrollBehaviorY:`contain`,WebkitAppRegion:`no-drag`},children:[(0,X.jsxs)(`div`,{className:`max-w-5xl mx-auto px-3 sm:px-4 md:px-6 w-full min-w-0`,children:[h.map((e,i)=>{let a=i===y,c=r&&e.messages.some(e=>e.id===n);if(e.messages.length===1){let s=e.messages[0],c=r&&s.id===n;return(0,X.jsx)(Tt,{message:c&&t?{...s,content:t}:s,isStreaming:c,isLastAssistantMessage:a,onRegenerate:a?o:void 0,className:i===0?`mt-3 sm:mt-4 md:mt-6`:``},s.id)}return(0,X.jsx)(Et,{messages:e.messages,isStreaming:c,streamingMessage:t,streamingMessageId:n||void 0,isLastAssistantMessage:a,onRegenerate:a?o:void 0,onSelectBranch:s,className:i===0?`mt-3 sm:mt-4 md:mt-6`:``},e.id)}),r&&i.length>0&&(0,X.jsx)(kt,{tools:i,className:`ml-10 sm:ml-12`}),(0,X.jsx)(`div`,{ref:l,className:`h-3 sm:h-4 md:h-6`})]}),p&&(0,X.jsxs)(`button`,{onClick:()=>{f.current=!1,l.current?.scrollIntoView({behavior:`smooth`}),m(!1)},className:W(`absolute bottom-4 left-1/2 -translate-x-1/2 z-10`,`flex items-center justify-center gap-1.5`,`px-3 py-2 rounded-full`,`bg-white/95 dark:bg-dark-100/95`,`border border-gray-200/50 dark:border-dark-300/50`,`shadow-lg backdrop-blur-sm`,`text-gray-600 dark:text-dark-600`,`hover:bg-gray-50 dark:hover:bg-dark-200`,`hover:text-gray-900 dark:hover:text-dark-800`,`transition-all duration-200`,`hover:shadow-xl hover:scale-105 active:scale-95`),title:c(`chatMessage.scrollToBottom`),children:[(0,X.jsx)(C,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`text-xs font-medium`,children:c(`chatMessage.newMessages`)})]})]})};function jt(e){let t=(e.match(/```/g)||[]).length,n=t%2==1,r=null;if(n){let t=e.lastIndexOf("```");if(t!==-1){let n=e.slice(t+3).match(/^(\w+)/);n&&(r=n[1])}}return{hasCodeBlocks:t>0,isInCodeBlock:n,language:r}}var Mt=Y.forwardRef(({value:e,onChange:t,className:n,placeholder:r,disabled:i,onKeyDown:a,...o},s)=>{let{hasCodeBlocks:c,isInCodeBlock:l,language:u}=(0,Y.useMemo)(()=>jt(e),[e]);return(0,X.jsxs)(`div`,{className:`relative w-full`,children:[(0,X.jsx)(`textarea`,{ref:s,value:e,onChange:t,onKeyDown:a,placeholder:r,disabled:i,className:W(`w-full resize-none transition-all duration-200`,l&&[`font-mono text-[13px]`,`bg-gray-50 dark:bg-dark-100/50`,`rounded-lg`],n),...o}),c&&(0,X.jsx)(`div`,{className:`absolute right-0 top-0 pointer-events-none flex items-center gap-1`,children:(0,X.jsxs)(`div`,{className:W(`flex items-center gap-1 px-1.5 py-0.5 rounded-md text-[10px] font-medium`,`bg-gray-100 dark:bg-dark-200`,`text-gray-500 dark:text-gray-400`,`border border-gray-200/50 dark:border-dark-300/50`,l&&`animate-pulse`),children:[(0,X.jsx)(y,{className:`h-3 w-3`}),u&&(0,X.jsx)(`span`,{children:u}),!u&&l&&(0,X.jsx)(`span`,{children:`code`})]})})]})});Mt.displayName=`CodeAwareTextarea`;var Nt=a(`components:media-upload`),Pt=({images:e,onImagesChange:t,maxImages:n=5,sessionId:r,onDocumentUploaded:i,disabled:a=!1,className:o})=>{let{t:s}=J(),c=(0,Y.useRef)(null),[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(!1),[p,m]=(0,Y.useState)([]),h=async e=>{if(!(!e||a))for(let t=0;t<e.length;t++){let n=e[t];n.type.startsWith(`image/`)?await _(n):n.type.includes(`pdf`)||n.type.includes(`text`)?await v(n):T.error(`File type not supported: ${n.name}`)}},_=async r=>{if(n-e.length<=0){T.error(`Maximum ${n} images allowed`);return}if(r.size>10*1024*1024){T.error(`Image ${r.name} is too large (max 10MB)`);return}let i=new FileReader;i.onload=n=>{n.target?.result&&t([...e,n.target.result])},i.readAsDataURL(r)},v=async e=>{if(e.size>10*1024*1024){T.error(`File size must be less than 10MB`);return}f(!0);try{let t=await ge.uploadDocument(e,r);if(t.success&&t.data){let n=t.data;m(e=>[...e,n]),i?.(n),T.success(`Document "${e.name}" uploaded`)}else T.error(t.error||`Failed to upload document`)}catch(e){Nt.error(`Document upload error:`,e),T.error(`Failed to upload document`)}finally{f(!1)}},y=e=>{e.preventDefault(),a||u(!0)},b=e=>{e.preventDefault(),u(!1)},x=e=>{e.preventDefault(),u(!1),a||h(e.dataTransfer.files)},S=n=>{t(e.filter((e,t)=>t!==n))},C=async e=>{try{let t=await ge.deleteDocument(e);t.success?(m(t=>t.filter(t=>t.id!==e)),T.success(`Document removed`)):T.error(t.error||`Failed to remove document`)}catch(e){Nt.error(`Error removing document:`,e),T.error(`Failed to remove document`)}},w=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**r).toFixed(1))+` `+n[r]},E=e.length>0||p.length>0;return(0,X.jsxs)(`div`,{className:W(`space-y-3`,o),children:[(0,X.jsxs)(`div`,{className:W(`border-2 border-dashed rounded-xl p-6 transition-all duration-200 cursor-pointer`,`border-gray-300 dark:border-gray-600`,`hover:border-primary-400 dark:hover:border-primary-500`,l&&`border-primary-500 dark:border-primary-400 bg-primary-50/50 dark:bg-primary-900/10`,a&&`opacity-50 cursor-not-allowed`),onDragOver:y,onDragLeave:b,onDrop:x,onClick:()=>!a&&c.current?.click(),children:[(0,X.jsx)(`input`,{ref:c,type:`file`,multiple:!0,accept:`image/*,.pdf,.txt`,onChange:e=>{h(e.target.files),e.target.value=``},className:`hidden`,disabled:a}),(0,X.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[d?(0,X.jsx)(g,{className:`h-8 w-8 text-gray-400 dark:text-gray-500 mb-2 animate-spin`}):(0,X.jsx)(A,{className:`h-8 w-8 text-gray-400 dark:text-gray-500 mb-2`}),(0,X.jsxs)(`p`,{className:`text-sm text-gray-700 dark:text-gray-300`,children:[s(`chat.mediaUpload.dropImagesHere`),` `,(0,X.jsx)(`span`,{className:`text-primary-600 dark:text-primary-400 font-medium`,children:s(`chat.mediaUpload.browse`)})]}),(0,X.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-1`,children:s(`chat.mediaUpload.supportedFormats`)})]})]}),E&&(0,X.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.map((e,t)=>(0,X.jsxs)(`div`,{className:`relative group w-16 h-16 rounded-lg overflow-hidden bg-gray-100 dark:bg-gray-800 border border-gray-200 dark:border-gray-700`,children:[(0,X.jsx)(`img`,{src:e,alt:`Upload ${t+1}`,className:`w-full h-full object-cover`}),(0,X.jsx)(`button`,{onClick:e=>{e.stopPropagation(),S(t)},className:`absolute top-0.5 right-0.5 p-0.5 rounded-full bg-black/60 hover:bg-black/80 text-white opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,X.jsx)(R,{className:`h-3 w-3`})})]},`img-${t}`)),p.map(e=>(0,X.jsxs)(`div`,{className:`relative group flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-100 dark:bg-gray-800 border border-gray-200 dark:border-gray-700`,children:[e.fileType===`pdf`?(0,X.jsx)(z,{className:`w-4 h-4 text-red-500 flex-shrink-0`}):(0,X.jsx)(ee,{className:`w-4 h-4 text-blue-500 flex-shrink-0`}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`p`,{className:`text-xs font-medium text-gray-900 dark:text-gray-100 truncate max-w-[100px]`,children:e.filename}),(0,X.jsx)(`p`,{className:`text-[10px] text-gray-500 dark:text-gray-400`,children:w(e.size)})]}),(0,X.jsx)(`button`,{onClick:t=>{t.stopPropagation(),C(e.id)},className:`p-0.5 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 text-gray-500 hover:text-red-500 transition-colors`,children:(0,X.jsx)(R,{className:`h-3 w-3`})})]},e.id))]})]})},Ft=a(`components:document-indicator`),It=({sessionId:e,className:t=``})=>{let[n,r]=(0,Y.useState)([]);if((0,Y.useEffect)(()=>{e&&(async()=>{try{let t=await ge.getDocuments(e);t.success&&t.data&&r(t.data)}catch(e){Ft.error(`Failed to load documents:`,e)}})()},[e]),!e||n.length===0)return null;let i=n.reduce((e,t)=>e+t.size,0);return(0,X.jsxs)(`div`,{className:`
|
|
4
|
-
inline-flex items-center space-x-1 px-2 py-1
|
|
5
|
-
bg-blue-50 dark:bg-blue-900/20
|
|
6
|
-
border border-blue-200 dark:border-blue-800
|
|
7
|
-
rounded-md text-xs
|
|
8
|
-
${t}
|
|
9
|
-
`,title:`${n.length} document(s) available for context - Total: ${(e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**r).toFixed(1))+` `+n[r]})(i)}`,children:[(0,X.jsx)(u,{className:`w-3 h-3 text-blue-600 dark:text-blue-400`}),(0,X.jsxs)(`span`,{className:`text-blue-700 dark:text-blue-300 font-medium`,children:[n.length,` doc`,n.length===1?``:`s`]})]})},Lt=a(`components:structured-output`),Rt=[{key:`none`,value:null},{key:`json`,value:`json`},{key:`list`,value:{type:`object`,properties:{items:{type:`array`,items:{type:`string`}}},required:[`items`]}},{key:`summary`,value:{type:`object`,properties:{title:{type:`string`},summary:{type:`string`},key_points:{type:`array`,items:{type:`string`}}},required:[`title`,`summary`,`key_points`]}},{key:`analysis`,value:{type:`object`,properties:{analysis:{type:`string`},pros:{type:`array`,items:{type:`string`}},cons:{type:`array`,items:{type:`string`}},recommendation:{type:`string`}},required:[`analysis`,`pros`,`cons`,`recommendation`]}},{key:`custom`,value:`custom`}],zt=({format:e,onFormatChange:t,className:n})=>{let{t:r}=J(),[i,a]=(0,Y.useState)(!1),[o,s]=(0,Y.useState)(``),c=()=>Rt.map(e=>({key:e.key,label:r(`chat.structuredOutput.${e.key}`),value:e.value,description:r(`chat.structuredOutput.${e.key}Description`)})),l=()=>{let t=c();return e===null?t[0]:e===`json`?t[1]:typeof e==`object`?t.find(t=>typeof t.value==`object`&&JSON.stringify(t.value)===JSON.stringify(e))||{key:`customSchema`,label:r(`chat.structuredOutput.custom`),value:e,description:r(`chat.structuredOutput.customSchema`)}:t[0]},u=e=>{let n=c().find(t=>t.label===e);if(n){if(n.value===`custom`){a(!0);return}a(!1),t(n.value)}};return(0,X.jsxs)(`div`,{className:W(`space-y-3`,n),children:[(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsxs)(`div`,{className:`flex items-center`,children:[(0,X.jsx)(le,{className:`h-4 w-4 text-gray-500 mr-2`}),(0,X.jsx)(`span`,{className:`text-sm font-medium text-gray-700 dark:text-gray-300`,children:r(`chat.structuredOutput.title`)})]})}),(0,X.jsx)(De,{value:l().label,onChange:e=>u(e.target.value),options:c().map(e=>({value:e.label,label:e.label}))}),(0,X.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:l().description}),i&&(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(ke,{value:o,onChange:e=>s(e.target.value),placeholder:`{
|
|
10
|
-
"type": "object",
|
|
11
|
-
"properties": {
|
|
12
|
-
"field1": { "type": "string" },
|
|
13
|
-
"field2": { "type": "number" }
|
|
14
|
-
},
|
|
15
|
-
"required": ["field1"]
|
|
16
|
-
}`,rows:8,className:`font-mono text-sm`}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(G,{onClick:()=>{try{t(JSON.parse(o)),a(!1)}catch(e){Lt.error(`Invalid JSON schema:`,e)}},size:`sm`,disabled:!o.trim(),children:r(`chat.structuredOutput.applySchema`)}),(0,X.jsx)(G,{onClick:()=>{a(!1),s(``)},variant:`outline`,size:`sm`,children:r(`chat.structuredOutput.cancel`)})]})]}),(()=>{let e=l();return!e.value||e.value===`json`?null:(0,X.jsxs)(`div`,{className:`mt-3 p-3 bg-gray-50 dark:bg-gray-800 rounded-md`,children:[(0,X.jsxs)(`div`,{className:`flex items-center mb-2`,children:[(0,X.jsx)(N,{className:`h-4 w-4 text-gray-500 mr-2`}),(0,X.jsx)(`span`,{className:`text-sm font-medium text-gray-700 dark:text-gray-300`,children:r(`chat.structuredOutput.schemaPreview`)})]}),(0,X.jsx)(`pre`,{className:`text-xs text-gray-700 dark:text-gray-300 overflow-x-auto`,children:JSON.stringify(e.value,null,2)})]})})(),e&&(0,X.jsxs)(`div`,{className:`flex items-center text-xs text-green-600 dark:text-green-400`,children:[(0,X.jsx)(z,{className:`h-3 w-3 mr-1`}),r(`chat.structuredOutput.enabled`)]})]})};function Bt(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString()}function Vt({hfTask:e,hfSort:t,canInstallModels:n,loadingHf:r,hfModels:i,expandedHfModel:a,hfGgufFiles:o,loadingGguf:s,pullingModel:c,pullProgress:l,setHfTask:u,setHfSort:d,onToggleHfModel:p,onPullHfGguf:m,onCancelPull:h,onRefreshHfModels:g}){let{t:_}=J();return(0,X.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[(0,X.jsx)(`div`,{className:`px-3 py-2 border-b border-gray-200 dark:border-dark-300 flex-shrink-0 space-y-2`,children:(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsxs)(`select`,{value:e,onChange:e=>u(e.target.value),onMouseDown:e=>e.stopPropagation(),className:`flex-1 px-2 py-1.5 rounded-lg border text-xs bg-gray-50 dark:bg-dark-50 border-gray-200 dark:border-dark-300 text-gray-900 dark:text-gray-100`,children:[(0,X.jsx)(`option`,{value:`text-generation`,children:_(`modelManager.huggingface.taskTextGeneration`)}),(0,X.jsx)(`option`,{value:`text-to-speech`,children:_(`modelManager.huggingface.taskTextToSpeech`)}),(0,X.jsx)(`option`,{value:`text-to-image`,children:_(`modelManager.huggingface.taskTextToImage`)}),(0,X.jsx)(`option`,{value:`automatic-speech-recognition`,children:_(`modelManager.huggingface.taskSpeechRecognition`)})]}),(0,X.jsxs)(`select`,{value:t,onChange:e=>d(e.target.value),onMouseDown:e=>e.stopPropagation(),className:`px-2 py-1.5 rounded-lg border text-xs bg-gray-50 dark:bg-dark-50 border-gray-200 dark:border-dark-300 text-gray-900 dark:text-gray-100`,children:[(0,X.jsx)(`option`,{value:`downloads`,children:_(`modelManager.huggingface.sortDownloads`)}),(0,X.jsx)(`option`,{value:`likes`,children:_(`modelManager.huggingface.sortLikes`)}),(0,X.jsx)(`option`,{value:`lastModified`,children:_(`modelManager.huggingface.sortRecent`)})]})]})}),(0,X.jsxs)(`div`,{className:`flex-1 overflow-y-auto`,children:[!n&&(0,X.jsx)(`div`,{className:`mx-3 mt-3 mb-1 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-300`,children:_(`modelSelector.pullRestricted`)}),r?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,X.jsx)(fe,{className:`h-6 w-6 animate-spin text-gray-400`})}):i.length===0?(0,X.jsxs)(`div`,{className:`px-4 py-8 text-center text-gray-500 dark:text-gray-400`,children:[(0,X.jsx)(ce,{className:`h-8 w-8 mx-auto mb-2 text-gray-300 dark:text-gray-600`}),(0,X.jsx)(`p`,{className:`text-sm`,children:_(`modelManager.huggingface.noModelsFound`)})]}):(0,X.jsx)(`div`,{className:`divide-y divide-gray-100 dark:divide-dark-200`,children:i.map(e=>{let t=a===e.id,r=o[e.id]||[],i=s===e.id;return(0,X.jsxs)(`div`,{className:`bg-white dark:bg-dark-100`,children:[(0,X.jsx)(`div`,{className:`px-3 py-3 cursor-pointer hover:bg-gray-50 dark:hover:bg-dark-200`,onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),p(e.id)},children:(0,X.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,X.jsx)(`div`,{className:`p-2 rounded-lg bg-yellow-100 dark:bg-yellow-900/30 flex-shrink-0`,children:(0,X.jsx)(ce,{className:`h-4 w-4 text-yellow-600 dark:text-yellow-400`})}),(0,X.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`h4`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100 truncate`,children:e.id}),e.gated&&(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400`,children:`Gated`})]}),(0,X.jsxs)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-0.5`,children:[`by `,e.author]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3 mt-1.5 text-xs text-gray-400 dark:text-gray-500`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,X.jsx)(se,{className:`h-3 w-3`}),Bt(e.downloads)]}),(0,X.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,X.jsx)(f,{className:`h-3 w-3`}),Bt(e.likes)]}),e.pipeline_tag&&(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded bg-gray-100 dark:bg-dark-200`,children:e.pipeline_tag})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,X.jsx)(`a`,{href:`https://huggingface.co/${e.id}`,target:`_blank`,rel:`noopener noreferrer`,onMouseDown:e=>e.stopPropagation(),className:`p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,X.jsx)(ie,{className:`h-4 w-4 text-gray-400`})}),(0,X.jsx)(O,{className:W(`h-4 w-4 text-gray-400 transition-transform`,t&&`rotate-180`)})]})]})}),t&&(0,X.jsx)(`div`,{className:`px-3 pb-3 pt-1 border-t border-gray-100 dark:border-dark-200 bg-gray-50 dark:bg-dark-200`,children:i?(0,X.jsxs)(`div`,{className:`flex items-center justify-center py-4`,children:[(0,X.jsx)(fe,{className:`h-4 w-4 animate-spin text-gray-400`}),(0,X.jsx)(`span`,{className:`ml-2 text-xs text-gray-500`,children:_(`modelManager.huggingface.checkingGguf`)})]}):r.length===0?(0,X.jsx)(`div`,{className:`py-4 text-center text-xs text-gray-500 dark:text-gray-400`,children:_(`modelManager.huggingface.noGgufAvailable`)}):(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(`div`,{className:`text-xs font-medium text-gray-600 dark:text-gray-300 mb-2`,children:_(`modelManager.huggingface.ggufFilesCount`,{count:r.length})}),r.map(e=>{let t=c===e.ollamaCommand;return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg bg-white dark:bg-dark-100 border border-gray-200 dark:border-dark-300`,children:[(0,X.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-xs font-medium text-gray-800 dark:text-gray-200 truncate`,children:e.filename}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 mt-0.5 text-xs text-gray-500 dark:text-gray-400`,children:[(0,X.jsx)(`span`,{children:e.sizeFormatted}),e.quantization&&(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400`,children:e.quantization})]})]}),t?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`div`,{className:`text-xs text-gray-500 w-12 text-right`,children:l?.percent===void 0?`...`:`${l.percent}%`}),(0,X.jsx)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),h()},className:`p-1.5 rounded-lg text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20`,children:(0,X.jsx)(R,{className:`h-4 w-4`})})]}):n?(0,X.jsxs)(`button`,{onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),m(e.ollamaCommand,e.filename)},disabled:!!c,className:W(`px-3 py-1.5 rounded-lg text-xs font-medium`,`bg-primary-100 dark:bg-primary-900/30`,`text-primary-700 dark:text-primary-400`,`hover:bg-primary-200 dark:hover:bg-primary-900/50`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:[(0,X.jsx)(se,{className:`h-3 w-3 inline mr-1`}),_(`models.pull`)]}):(0,X.jsx)(`span`,{className:`px-2 py-1 rounded text-[11px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300`,children:_(`modelSelector.adminOnlyPull`)})]},e.filename)}),c?.startsWith(`hf.co/`)&&c.includes(e.id)&&l?.percent!==void 0&&(0,X.jsx)(`div`,{className:`w-full bg-gray-200 dark:bg-dark-300 rounded-full h-1.5 overflow-hidden mt-2`,children:(0,X.jsx)(`div`,{className:`h-1.5 rounded-full bg-primary-500 transition-all duration-300`,style:{width:`${l.percent}%`}})})]})})]},e.id)})})]}),(0,X.jsxs)(`div`,{className:`px-3 py-2 border-t border-gray-200 dark:border-dark-300 flex items-center justify-between flex-shrink-0`,children:[(0,X.jsxs)(`a`,{href:`https://huggingface.co/models`,target:`_blank`,rel:`noopener noreferrer`,onMouseDown:e=>e.stopPropagation(),className:`text-xs text-primary-600 dark:text-primary-400 hover:underline flex items-center gap-1`,children:[(0,X.jsx)(ie,{className:`h-3 w-3`}),_(`modelManager.huggingface.browseAllLink`)]}),(0,X.jsx)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),g()},className:`p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,X.jsx)(S,{className:W(`h-3.5 w-3.5 text-gray-400`,r&&`animate-spin`)})})]})]})}function Ht({filteredGroups:e,selectedModel:t,showImageGen:n,getModelIcon:r,getModelLabel:i,getModelSubLabel:a,onModelSelect:o,onOpenGallery:s}){let{t:c}=J();return(0,X.jsxs)(`div`,{className:`flex-1 overflow-y-auto scrollbar-thin scrollbar-thumb-gray-300 dark:scrollbar-thumb-dark-400`,children:[e.length>0?e.map(e=>(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-dark-300 border-b border-gray-200 dark:border-dark-400 sticky top-0`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon,e.label,` (`,e.models.length,`)`]})}),e.models.map(e=>(0,X.jsx)(`div`,{onMouseDown:t=>{t.preventDefault(),o(e.name)},className:W(`px-3 py-3 cursor-pointer border-b border-gray-100 dark:border-dark-200 last:border-b-0`,`hover:bg-gray-50 dark:hover:bg-dark-200`,`bg-white dark:bg-dark-100 transition-colors`,t===e.name&&`bg-primary-50 dark:bg-primary-900/30`),children:(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[r(e),(0,X.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100 truncate`,children:i(e)}),a(e)&&(0,X.jsx)(`div`,{className:`text-xs text-gray-500 dark:text-gray-400 truncate`,children:a(e)})]}),t===e.name&&(0,X.jsx)(V,{className:`h-4 w-4 text-primary-600 dark:text-primary-400 flex-shrink-0`})]})},e.name))]},e.type)):(0,X.jsxs)(`div`,{className:`px-4 py-8 text-center text-gray-500 dark:text-gray-400`,children:[(0,X.jsx)(L,{className:`h-8 w-8 mx-auto mb-2 text-gray-300 dark:text-gray-600`}),(0,X.jsx)(`p`,{className:`text-sm`,children:c(`models.noModelsFound`)})]}),n&&(0,X.jsxs)(`div`,{className:`border-t border-gray-200 dark:border-dark-300`,children:[(0,X.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-dark-300`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(d,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`}),c(`modelSelector.actions`)]})}),(0,X.jsx)(`div`,{onMouseDown:e=>{e.preventDefault(),s()},className:`px-3 py-3 cursor-pointer hover:bg-blue-50 dark:hover:bg-blue-900/20 bg-white dark:bg-dark-100`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(w,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`}),(0,X.jsxs)(`div`,{className:`flex-1`,children:[(0,X.jsx)(`div`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100`,children:c(`gallery.generate`)}),(0,X.jsx)(`div`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:c(`gallery.generateDescription`)})]})]})})]})]})}function Ut({libraryCategories:e,libraryCategory:t,canInstallModels:n,loadingLibrary:r,filteredLibraryModels:i,pullingModel:a,pullProgress:o,setLibraryCategory:s,isModelInstalled:c,onModelSelect:l,onPullModel:u,onCancelPull:d,onRefreshLibrary:f}){let{t:p}=J();return(0,X.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[(0,X.jsx)(`div`,{className:`px-3 py-2 border-b border-gray-200 dark:border-dark-300 flex-shrink-0`,children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,X.jsx)(`button`,{onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),s(e)},className:W(`px-2.5 py-1 rounded-full text-xs font-medium transition-colors`,t===e?`bg-primary-100 dark:bg-primary-900/30 text-primary-700 dark:text-primary-400`:`bg-gray-100 dark:bg-dark-200 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-dark-300`),children:e.charAt(0).toUpperCase()+e.slice(1)},e))})}),(0,X.jsxs)(`div`,{className:`flex-1 overflow-y-auto`,children:[!n&&(0,X.jsx)(`div`,{className:`mx-3 mt-3 mb-1 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-300`,children:p(`modelSelector.pullRestricted`)}),r?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,X.jsx)(fe,{className:`h-6 w-6 animate-spin text-gray-400`})}):i.length===0?(0,X.jsxs)(`div`,{className:`px-4 py-8 text-center text-gray-500 dark:text-gray-400`,children:[(0,X.jsx)(P,{className:`h-8 w-8 mx-auto mb-2 text-gray-300 dark:text-gray-600`}),(0,X.jsx)(`p`,{className:`text-sm`,children:p(`models.noModelsFound`)})]}):(0,X.jsx)(`div`,{className:`divide-y divide-gray-100 dark:divide-dark-200`,children:i.slice(0,50).map(e=>{let t=c(e.name),r=a===e.name;return(0,X.jsxs)(`div`,{className:W(`px-3 py-3 bg-white dark:bg-dark-100`,t&&`bg-green-50/50 dark:bg-green-900/10`),children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,X.jsx)(`div`,{className:`p-2 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex-shrink-0`,children:(0,X.jsx)(P,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`})}),(0,X.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`h4`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100 truncate`,children:e.name}),t&&(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400`,children:p(`modelSelector.installed`)}),(e.category===`cloud`||e.tags?.includes(`cloud`))&&(0,X.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400 flex items-center gap-1`,children:[(0,X.jsx)(P,{className:`h-3 w-3`}),`Cloud`]})]}),(0,X.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 line-clamp-1 mt-0.5`,children:e.description}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 mt-1.5`,children:[e.sizes.slice(0,3).map(e=>(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-gray-100 dark:bg-dark-200 text-gray-600 dark:text-gray-400`,children:e},e)),e.pulls&&(0,X.jsxs)(`span`,{className:`text-xs text-gray-400 dark:text-gray-500 flex items-center gap-1`,children:[(0,X.jsx)(se,{className:`h-3 w-3`}),e.pulls]})]})]}),(0,X.jsx)(`div`,{className:`flex-shrink-0`,children:r?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`div`,{className:`text-xs text-gray-500 w-12 text-right`,children:o?.percent===void 0?`...`:`${o.percent}%`}),(0,X.jsx)(`button`,{onClick:d,className:`p-1.5 rounded-lg text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20`,children:(0,X.jsx)(R,{className:`h-4 w-4`})})]}):t?(0,X.jsx)(`button`,{onClick:()=>l(e.name),className:`px-3 py-1.5 rounded-lg text-xs font-medium bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 hover:bg-green-200 dark:hover:bg-green-900/50`,children:p(`modelSelector.use`)}):n?(0,X.jsxs)(`button`,{onClick:()=>u(e.name),className:`px-3 py-1.5 rounded-lg text-xs font-medium bg-primary-100 dark:bg-primary-900/30 text-primary-700 dark:text-primary-400 hover:bg-primary-200 dark:hover:bg-primary-900/50`,children:[(0,X.jsx)(se,{className:`h-3 w-3 inline mr-1`}),p(`modelSelector.pull`)]}):(0,X.jsx)(`span`,{className:`px-2 py-1 rounded text-[11px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300`,children:p(`modelSelector.adminOnlyPull`)})})]}),r&&o?.percent!==void 0&&(0,X.jsx)(`div`,{className:`mt-2 w-full bg-gray-200 dark:bg-dark-300 rounded-full h-1.5 overflow-hidden`,children:(0,X.jsx)(`div`,{className:`h-1.5 rounded-full bg-primary-500 transition-all duration-300`,style:{width:`${o.percent}%`}})})]},e.name)})})]}),(0,X.jsxs)(`div`,{className:`px-3 py-2 border-t border-gray-200 dark:border-dark-300 flex items-center justify-between flex-shrink-0`,children:[(0,X.jsxs)(`a`,{href:`https://ollama.com/library`,target:`_blank`,rel:`noopener noreferrer`,onMouseDown:e=>e.stopPropagation(),className:`text-xs text-primary-600 dark:text-primary-400 hover:underline flex items-center gap-1`,children:[(0,X.jsx)(ie,{className:`h-3 w-3`}),p(`modelManager.huggingface.browseAllLink`)]}),(0,X.jsx)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),f()},className:`p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,X.jsx)(S,{className:W(`h-3.5 w-3.5 text-gray-400`,r&&`animate-spin`)})})]})]})}var Wt=a(`components:model-selector`),Gt=({models:e,selectedModel:t,onModelChange:n,currentPersona:r,className:a,disabled:o=!1,compact:c=!1,showImageGen:l=!1,onModelsRefresh:u})=>{let{t:d}=J(),[f,p]=(0,Y.useState)(!1),[m,h]=(0,Y.useState)(``),[g,_]=(0,Y.useState)(`installed`),v=(0,Y.useRef)(null),y=(0,Y.useRef)(null),S=Te(),{user:C,systemInfo:w}=Oe(),E=C?.role===`admin`||(w?.allowUserModelPull??!0),[D,k]=(0,Y.useState)(`all`),[A,j]=(0,Y.useState)(``),[M,N]=(0,Y.useState)(`text-generation`),[ee,te]=(0,Y.useState)(`downloads`),[F,I]=(0,Y.useState)(``),[L,ne]=(0,Y.useState)(null),[R,ie]=(0,Y.useState)({}),[oe,se]=(0,Y.useState)(null),[z,B]=(0,Y.useState)(null),[le,V]=(0,Y.useState)(null),[ue,H]=(0,Y.useState)(null),fe=[`all`,`popular`,`chat`,`code`,`vision`,`embedding`,`cloud`],pe=[{type:`personas`,label:d(`modelSelector.personas`),icon:(0,X.jsx)(re,{className:`h-4 w-4 text-purple-600 dark:text-purple-400`}),models:e.filter(e=>e.isPersona),color:`purple`},{type:`ollama`,label:d(`modelSelector.ollamaModels`),icon:(0,X.jsx)(x,{className:`h-4 w-4 text-green-600 dark:text-green-400`}),models:e.filter(e=>!e.isPersona&&!e.isPlugin&&!e.name.includes(`embed`)),color:`green`},{type:`plugins`,label:d(`modelSelector.pluginModels`),icon:(0,X.jsx)(ce,{className:`h-4 w-4 text-green-600 dark:text-green-400`}),models:e.filter(e=>e.isPlugin),color:`green`}].filter(e=>e.models.length>0).map(e=>({...e,models:e.models.filter(e=>e.name.toLowerCase().includes(m.toLowerCase())||e.personaName&&e.personaName.toLowerCase().includes(m.toLowerCase())||e.pluginName&&e.pluginName.toLowerCase().includes(m.toLowerCase()))})).filter(e=>e.models.length>0),U=e.find(e=>e.name===t||t.startsWith(`persona:`)&&e.name===t),{data:ge=[],isLoading:_e,refetch:ve}=i({queryKey:[`ollama-library-selector`,A,D],queryFn:async()=>{let e=await me.getLibraryModels({search:A||void 0,sort:`popular`,category:D===`cloud`?`cloud`:void 0});return e.success&&e.data?e.data:[]},enabled:f&&g===`ollama`}),{data:ye=[],isLoading:be,refetch:xe}=i({queryKey:[`hf-models-selector`,M,F,ee],queryFn:async()=>{let e=await he.getModels({task:M,search:F||void 0,sort:ee,limit:30});return e.success&&e.data?e.data:[]},enabled:f&&g===`huggingface`}),Se=ge.filter(e=>{let t=!m||e.name.toLowerCase().includes(m.toLowerCase())||e.description.toLowerCase().includes(m.toLowerCase()),n=D===`all`||e.category===D;return t&&n}),Ce=(0,Y.useCallback)(async e=>{let[t,n]=e.split(`/`);if(!(!t||!n)){se(e);try{let r=await he.getGgufFiles(t,n);r.success&&r.data&&ie(t=>({...t,[e]:r.data}))}catch(e){Wt.error(`Failed to load GGUF files:`,e)}finally{se(null)}}},[]),we=(0,Y.useCallback)(e=>{L===e?ne(null):(ne(e),R[e]||Ce(e))},[L,R,Ce]),G=(0,Y.useCallback)((e,t)=>{if(!E){T.error(d(`modelSelector.pullRestricted`));return}if(!z){B(e),V({status:`starting`});try{let n=me.pullModelStream(e,e=>{V(e)},()=>{V(null),B(null),H(null),T.success(`Downloaded ${t}`),u?.()},e=>{V(null),B(null),H(null),T.error(`Failed to download: ${e}`)});H(()=>n)}catch{V(null),B(null),T.error(`Failed to start download`)}}},[E,u,z,d]);(0,Y.useEffect)(()=>{let e=setTimeout(()=>{g===`huggingface`?I(m):g===`ollama`&&j(m)},300);return()=>clearTimeout(e)},[m,g]),(0,Y.useEffect)(()=>{let e=e=>{v.current&&!v.current.contains(e.target)&&(p(!1),h(``))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,Y.useEffect)(()=>{f&&y.current&&y.current.focus()},[f]);let K=async e=>{p(!1),h(``);try{let t=await me.listRunningModels();if(t.success&&t.data){let n=t.data;n.length>0&&(n.some(t=>t.name===e||e.startsWith(`persona:`))||await me.unloadAllModels())}}catch(e){Wt.warn(`Failed to unload models before switch:`,e)}n({target:{value:e}})},Ee=async e=>{if(!E){T.error(d(`modelSelector.pullRestricted`));return}if(!z){B(e),V({status:`starting`});try{let t=me.pullModelStream(e,e=>{V(e)},()=>{V(null),B(null),H(null),T.success(`Downloaded ${e}`),u?.()},e=>{V(null),B(null),H(null),T.error(`Failed to download: ${e}`)});H(()=>t)}catch{V(null),B(null),T.error(`Failed to start download`)}}},q=()=>{ue&&(ue(),H(null),B(null),V(null),T.success(`Download cancelled`))},De=t=>e.some(e=>e.name===t||e.name.startsWith(t+`:`)),ke=e=>e.isPersona?(0,X.jsx)(re,{className:`h-4 w-4 text-purple-600 dark:text-purple-400`}):e.isPlugin?(0,X.jsx)(ce,{className:`h-4 w-4 text-green-600 dark:text-green-400`}):(0,X.jsx)(x,{className:`h-4 w-4 text-green-600 dark:text-green-400`}),Ae=e=>e.isPersona?e.personaName||e.name:e.isPlugin?`${e.name}`:e.name,je=e=>e.isPersona?`via ${e.model}`:e.isPlugin?`via ${e.pluginName}`:null;return(0,X.jsxs)(`div`,{className:W(`relative`,a),ref:v,children:[(0,X.jsxs)(`button`,{type:`button`,onClick:()=>!o&&p(!f),disabled:o,className:W(c?`h-[44px] sm:h-[52px] px-3 flex items-center justify-between text-left w-full `:`w-full flex items-center justify-between gap-2 px-3 py-2 text-left `,`bg-gray-50 dark:bg-dark-200 border border-gray-200 dark:border-dark-300`,`rounded-lg text-sm hover:bg-gray-100 dark:hover:bg-dark-100`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20 focus:border-primary-500`,o?`opacity-50 cursor-not-allowed`:`cursor-pointer`),title:c?U?Ae(U):d(`modelSelector.selectModel`):void 0,children:[(()=>{if(!U)return c?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,X.jsx)(x,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`text-xs font-medium text-gray-400 dark:text-gray-500 truncate`,children:d(`modelSelector.selectModel`)})]}):d(`modelSelector.selectModel`);if(c){let e=Ae(U);return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[ke(U),(0,X.jsx)(`span`,{className:`text-xs font-medium text-gray-700 dark:text-gray-200 truncate`,children:e})]})}let e=Ae(U),t=je(U);return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[ke(U),(0,X.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e}),t&&(0,X.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400 truncate`,children:t})]}),U.isPersona&&r&&(0,X.jsxs)(`div`,{className:`flex items-center gap-1 ml-auto`,children:[(0,X.jsx)(de,{className:`h-3 w-3 text-purple-600 dark:text-purple-400`}),r.embedding_model&&(0,X.jsx)(s,{className:`h-3 w-3 text-purple-500 dark:text-purple-300`})]})]})})(),(0,X.jsx)(O,{className:W(c?`h-3 w-3`:`h-4 w-4`,`text-gray-400 flex-shrink-0`,f&&`rotate-180`)})]}),f&&(0,Ie.createPortal)((0,X.jsxs)(`div`,{className:`fixed inset-0 z-[999999] flex items-start sm:items-center justify-center p-2 sm:p-4`,children:[(0,X.jsx)(`div`,{className:`absolute inset-0 bg-black/50 backdrop-blur-sm`,onClick:()=>p(!1)}),(0,X.jsxs)(`div`,{className:W(`relative bg-white dark:bg-dark-100 border border-gray-200 dark:border-dark-300 shadow-2xl`,`w-full max-w-md sm:w-[480px] sm:max-w-[90vw]`,`mt-2 sm:mt-0 rounded-xl`,`h-[85vh] sm:h-[600px] flex flex-col`),onClick:e=>e.stopPropagation(),children:[(0,X.jsxs)(`div`,{className:`flex-shrink-0`,children:[(0,X.jsx)(`div`,{className:`p-3 border-b border-gray-200 dark:border-dark-200`,children:(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(b,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400`}),(0,X.jsx)(`input`,{ref:y,type:`text`,placeholder:d(g===`installed`?`modelSelector.searchInstalled`:g===`ollama`?`modelSelector.searchOllama`:`modelSelector.searchHuggingFace`),value:m,onChange:e=>h(e.target.value),className:W(`w-full pl-10 pr-4 py-2.5 text-sm bg-gray-50 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300 rounded-lg`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`,`text-gray-900 dark:text-gray-100`,`placeholder-gray-500`)})]})}),(0,X.jsxs)(`div`,{className:`flex border-b border-gray-200 dark:border-dark-300`,children:[(0,X.jsxs)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),_(`installed`)},className:W(`flex-1 px-4 py-2.5 text-sm font-medium transition-colors`,g===`installed`?`text-primary-600 dark:text-primary-400 border-b-2 border-primary-500`:`text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300`),children:[(0,X.jsx)(ae,{className:`h-4 w-4 inline mr-1.5`}),d(`modelSelector.installed`)]}),(0,X.jsxs)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),_(`ollama`)},className:W(`flex-1 px-4 py-2.5 text-sm font-medium transition-colors`,g===`ollama`?`text-primary-600 dark:text-primary-400 border-b-2 border-primary-500`:`text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300`),children:[(0,X.jsx)(P,{className:`h-4 w-4 inline mr-1.5`}),`Ollama`]}),(0,X.jsxs)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),_(`huggingface`)},className:W(`flex-1 px-4 py-2.5 text-sm font-medium transition-colors`,g===`huggingface`?`text-primary-600 dark:text-primary-400 border-b-2 border-primary-500`:`text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300`),children:[(0,X.jsx)(ce,{className:`h-4 w-4 inline mr-1.5`}),`HuggingFace`]})]})]}),g===`installed`&&(0,X.jsx)(Ht,{filteredGroups:pe,selectedModel:t,showImageGen:l,getModelIcon:ke,getModelLabel:Ae,getModelSubLabel:je,onModelSelect:K,onOpenGallery:()=>{p(!1),S(`/gallery`)}}),g===`ollama`&&(0,X.jsx)(Ut,{libraryCategories:fe,libraryCategory:D,canInstallModels:E,loadingLibrary:_e,filteredLibraryModels:Se,pullingModel:z,pullProgress:le,setLibraryCategory:k,isModelInstalled:De,onModelSelect:K,onPullModel:Ee,onCancelPull:q,onRefreshLibrary:()=>{ve()}}),g===`huggingface`&&(0,X.jsx)(Vt,{hfTask:M,hfSort:ee,canInstallModels:E,loadingHf:be,hfModels:ye,expandedHfModel:L,hfGgufFiles:R,loadingGguf:oe,pullingModel:z,pullProgress:le,setHfTask:N,setHfSort:te,onToggleHfModel:we,onPullHfGguf:G,onCancelPull:q,onRefreshHfModels:()=>{xe()}})]})]}),document.body),(0,X.jsx)(`select`,{value:t,onChange:n,className:`sr-only`,tabIndex:-1,children:e.map(e=>(0,X.jsx)(`option`,{value:e.name,children:Ae(e)},e.name))})]})},Kt=a(`components:chat-input`),qt=({onSendMessage:e,onStopGeneration:t,disabled:n=!1})=>{let{t:r}=J(),[i,a]=(0,Y.useState)(``),[s,l]=(0,Y.useState)([]),[u,f]=(0,Y.useState)(null),[p,m]=(0,Y.useState)(!1),[g,_]=(0,Y.useState)(null),[v,y]=(0,Y.useState)(!1),{isGenerating:b,setBackgroundImage:x}=je(),{currentSession:S,models:C}=K(),w=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{(async()=>{try{let e=await xe.getPlugins();y(!!(e.success&&e.data&&e.data.length>0))}catch{y(!1)}})()},[]);let T=t=>{t.preventDefault(),!(!i.trim()||b)&&(e(i.trim(),s.length>0?s:void 0,u||void 0),a(``),l([]))},E=e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),T(e))},D=()=>{t()};(0,Y.useEffect)(()=>{let e=w.current;e&&(e.style.height=`auto`,e.style.height=Math.min(e.scrollHeight,200)+`px`)},[i]),(0,Y.useEffect)(()=>{(async()=>{if(S?.personaId)try{let e=await U.getPersona(S.personaId);if(e.success&&e.data)_(e.data);else{Kt.warn(`Persona ${S.personaId} not found, clearing reference`),_(null);let{setCurrentSession:e}=K.getState();e({...S,personaId:void 0})}}catch(e){if(Kt.error(`Failed to load current persona:`,e),_(null),S){let{setCurrentSession:e}=K.getState();e({...S,personaId:void 0})}}else _(null)})()},[S?.personaId]);let O=async e=>{let t=e.target.value;if(S)try{if(t.startsWith(`persona:`)){let e=t.replace(`persona:`,``),n=await U.getPersona(e);if(!n.success||!n.data){c.error(`Failed to load persona details`);return}let i=n.data,a=await _e.updateSession(S.id,{personaId:e,model:t});if(a.success&&a.data){let{sessions:e}=K.getState(),t=e.map(e=>e.id===S.id?a.data:e);K.setState({sessions:t,currentSession:a.data}),i.background&&x(i.background),c.success(r(`chat.persona.applied`))}}else{let e=await _e.updateSession(S.id,{model:t,personaId:void 0});if(e.success&&e.data){let{sessions:t}=K.getState(),n=t.map(t=>t.id===S.id?e.data:t);K.setState({sessions:n,currentSession:e.data}),x(null),c.success(r(`chat.model.updated`))}}}catch(e){Kt.error(`Failed to update session:`,e),c.error(`Failed to update session`)}},k=s.length>0||u!==null;return(0,X.jsx)(`div`,{className:`pointer-events-none`,children:(0,X.jsxs)(`div`,{className:`max-w-5xl mx-auto px-3 sm:px-4 md:px-6 w-full pointer-events-auto`,children:[p&&(0,X.jsxs)(`div`,{className:`mb-2 p-3 rounded-2xl bg-white/95 dark:bg-dark-100/95 backdrop-blur-md border border-gray-200/50 dark:border-dark-300/50 shadow-lg`,children:[(0,X.jsx)(Pt,{images:s,onImagesChange:l,maxImages:5,sessionId:S?.id,disabled:n}),(0,X.jsx)(zt,{format:u,onFormatChange:f})]}),(0,X.jsxs)(`div`,{className:`py-2 sm:py-3`,children:[(0,X.jsx)(`form`,{onSubmit:T,children:(0,X.jsxs)(`div`,{className:W(`flex items-center gap-2 p-2 sm:p-3 rounded-2xl sm:rounded-3xl border transition-all duration-300 ease-out shadow-lg`,`bg-white/95 dark:bg-dark-100/95 backdrop-blur-md`,`border-gray-200/50 dark:border-dark-300/50`,`hover:border-gray-300/70 dark:hover:border-dark-400/70`,`focus-within:border-primary-400/70 dark:focus-within:border-primary-500/70`,`focus-within:shadow-xl`),children:[(0,X.jsx)(G,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>m(!p),className:W(`h-8 w-8 sm:h-9 sm:w-9 !p-0 rounded-full flex-shrink-0`,`hover:bg-gray-100 dark:hover:bg-dark-200/80`,`transition-all duration-200 touch-manipulation`,`hover:scale-105 active:scale-95`,k&&`text-primary-600 dark:text-primary-400`,p&&`bg-gray-100 dark:bg-dark-200/80`),title:r(`chat.input.attachments`),style:{display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`0`},children:k?(0,X.jsxs)(`div`,{className:`relative flex items-center justify-center`,children:[(0,X.jsx)(o,{className:`h-4 w-4`}),(0,X.jsx)(`div`,{className:`absolute -top-0.5 -right-0.5 h-2 w-2 bg-primary-500 dark:bg-primary-400 rounded-full ring-2 ring-white dark:ring-dark-50`})]}):p?(0,X.jsx)(h,{className:`h-4 w-4`}):(0,X.jsx)(d,{className:`h-4 w-4`})}),(0,X.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,X.jsx)(Mt,{ref:w,value:i,onChange:e=>a(e.target.value),onKeyDown:E,placeholder:r(`chat.input.placeholder`),disabled:n,className:`!border-0 !bg-transparent !shadow-none !p-0 !m-0 !rounded-none !focus:ring-0 !focus:border-0 !focus:shadow-none !focus:bg-transparent min-h-[32px] sm:min-h-[36px] max-h-[120px] resize-none scrollbar-thin scrollbar-thumb-gray-300 dark:scrollbar-thumb-dark-400 focus:outline-none placeholder:text-gray-500 dark:placeholder:text-dark-500 text-base sm:text-sm leading-none touch-manipulation`,rows:1,style:{boxShadow:`none !important`,border:`none !important`,outline:`none !important`,padding:`0 !important`,margin:`0 !important`,lineHeight:`1.2 !important`,verticalAlign:`middle`}})}),(0,X.jsxs)(`div`,{className:`flex items-center gap-1 sm:gap-2 flex-shrink-0`,children:[S&&C.length>0&&(0,X.jsx)(`div`,{className:`hidden sm:block`,children:(0,X.jsx)(Gt,{models:C,selectedModel:S.personaId?`persona:${S.personaId}`:S.model,onModelChange:O,currentPersona:g,className:`min-w-[160px] max-w-[240px] border-0 bg-gray-100/80 dark:bg-dark-100/80 rounded-xl text-sm hover:bg-gray-200/80 dark:hover:bg-dark-200/60 transition-colors duration-200`,compact:!0,showImageGen:v})}),b?(0,X.jsx)(G,{type:`button`,variant:`ghost`,size:`sm`,onClick:D,className:W(`h-8 w-8 sm:h-9 sm:w-9 p-0 rounded-full flex-shrink-0 flex items-center justify-center`,`bg-red-50 dark:bg-red-900/20`,`text-red-500 dark:text-red-400`,`hover:bg-red-100 dark:hover:bg-red-900/30`,`transition-all duration-200 touch-manipulation`,`hover:scale-105 active:scale-95`),title:r(`chat.input.stopGeneration`),children:(0,X.jsx)(te,{className:`h-4 w-4`})}):(0,X.jsx)(G,{type:`submit`,variant:`ghost`,size:`sm`,disabled:!i.trim()||n,className:W(`h-8 w-8 sm:h-9 sm:w-9 p-0 rounded-full flex-shrink-0 flex items-center justify-center`,`text-gray-400 dark:text-dark-500`,`disabled:opacity-40 disabled:hover:bg-transparent disabled:cursor-not-allowed`,`transition-all duration-200 touch-manipulation`,i.trim()&&!n&&[`bg-primary-500 dark:bg-primary-600`,`text-white dark:text-white`,`hover:bg-primary-600 dark:hover:bg-primary-500`,`shadow-md hover:shadow-lg`,`hover:scale-105 active:scale-95`]),title:r(`chat.input.sendMessage`),children:(0,X.jsx)(ue,{className:`h-4 w-4`})})]})]})}),S&&C.length>0&&(0,X.jsx)(`div`,{className:`sm:hidden mt-3`,children:(0,X.jsx)(Gt,{models:C,selectedModel:S.personaId?`persona:${S.personaId}`:S.model,onModelChange:O,currentPersona:g,className:`w-full rounded-xl bg-gray-100/80 dark:bg-dark-100/80 border-0 transition-colors duration-200`,compact:!0,showImageGen:v})}),(0,X.jsxs)(`div`,{className:`mt-2 flex items-center justify-center gap-2 text-xs text-gray-500 dark:text-dark-600`,children:[(0,X.jsx)(It,{sessionId:S?.id}),(0,X.jsxs)(`div`,{className:`text-center`,children:[(0,X.jsxs)(`a`,{href:`https://librewebui.org`,target:`_blank`,rel:`noopener noreferrer`,className:`libre-brand underline hover:text-primary-600 dark:hover:text-primary-400 transition-colors`,style:{fontSize:`1.1em`,lineHeight:1},children:[`Libre `,(0,X.jsx)(`span`,{children:`WebUI`})]}),` `,(0,X.jsxs)(`span`,{className:`text-xs text-gray-400 dark:text-gray-500`,style:{fontSize:`0.55rem`},children:[`v`,`0.12.1`]}),` `,(0,X.jsx)(`span`,{className:`text-gray-300 dark:text-gray-600 opacity-50`,children:`•`}),` `,(0,X.jsx)(`span`,{className:`text-gray-400 dark:text-gray-500`,style:{fontSize:`0.55rem`},children:r(`chat.footer.disclaimer`)}),k&&(0,X.jsxs)(`span`,{className:`ml-2 text-primary-600 dark:text-primary-400`,children:[`•`,` `,s.length>0&&r(`chat.footer.images`,{count:s.length}),s.length>0&&u&&` • `,u&&r(`chat.footer.structuredOutput`)]})]})]})]})]})})},Jt=({persona:e,onClear:t,className:n})=>{let[r,i]=(0,Y.useState)(!1),a=(0,Y.useRef)(null),[o,c]=(0,Y.useState)({top:0,left:0});(0,Y.useEffect)(()=>{if(r&&a.current){let e=a.current.getBoundingClientRect();c({top:e.bottom+8,left:e.left})}},[r]);let l=!!(e.memory_settings?.enabled||e.mutation_settings?.enabled),u=()=>ye(e,64),d=t=>{be(t.currentTarget,e.name,64)};return(0,X.jsxs)(`div`,{className:W(`relative`,n),children:[(0,X.jsxs)(`button`,{ref:a,onClick:()=>i(!r),className:W(`flex items-center gap-2 px-3 py-1.5 rounded-full transition-all duration-200`,`bg-primary-50 dark:bg-primary-900/30`,`border border-primary-200 dark:border-primary-700/50`,`hover:bg-primary-100 dark:hover:bg-primary-900/40`,`text-primary-700 dark:text-primary-300`),children:[(0,X.jsx)(`img`,{src:u(),alt:e.name,className:`w-5 h-5 rounded-full object-cover`,onError:d}),(0,X.jsx)(`span`,{className:`text-sm font-medium max-w-[120px] truncate`,children:e.name}),l&&(0,X.jsx)(s,{className:`h-3 w-3 text-purple-500 dark:text-purple-400`}),(0,X.jsx)(O,{className:W(`h-3.5 w-3.5 transition-transform duration-200`,r&&`rotate-180`)})]}),r&&(0,Ie.createPortal)((0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`fixed inset-0 z-[9998]`,onClick:()=>i(!1)}),(0,X.jsx)(`div`,{className:`fixed w-72 z-[9999]`,style:{top:o.top,left:o.left},children:(0,X.jsxs)(`div`,{className:W(`rounded-xl overflow-hidden shadow-xl`,`bg-white dark:bg-dark-100`,`border border-gray-200 dark:border-dark-300`),children:[(0,X.jsxs)(`div`,{className:`relative h-16`,children:[e.background?(0,X.jsx)(`div`,{className:`absolute inset-0 bg-cover bg-center`,style:{backgroundImage:`url(${e.background})`}}):(0,X.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-br from-primary-400 via-primary-500 to-purple-600 dark:from-primary-600 dark:via-primary-700 dark:to-purple-800`}),(0,X.jsx)(`div`,{className:`absolute inset-0 bg-black/10`}),t&&(0,X.jsx)(`button`,{onClick:e=>{e.stopPropagation(),t(),i(!1)},className:`absolute top-2 right-2 p-1 rounded-full bg-white/20 hover:bg-white/30 backdrop-blur-sm transition-colors`,title:`Remove persona`,children:(0,X.jsx)(R,{className:`h-3.5 w-3.5 text-white`})}),l&&(0,X.jsxs)(`div`,{className:`absolute top-2 left-2 flex items-center gap-1 px-2 py-0.5 rounded-full bg-white/20 backdrop-blur-sm text-white text-[10px] font-medium`,children:[(0,X.jsx)(de,{className:`h-3 w-3`}),`Enhanced`]})]}),(0,X.jsx)(`div`,{className:`relative px-4 -mt-6`,children:(0,X.jsx)(`img`,{src:u(),alt:e.name,className:`w-12 h-12 rounded-lg object-cover ring-3 ring-white dark:ring-dark-100 shadow-md`,onError:d})}),(0,X.jsxs)(`div`,{className:`px-4 pt-2 pb-4`,children:[(0,X.jsx)(`h4`,{className:`text-base font-semibold text-gray-900 dark:text-gray-100`,children:e.name}),(0,X.jsxs)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 flex items-center gap-1 mt-0.5`,children:[(0,X.jsx)(H,{className:`h-3 w-3`}),e.model]}),e.description&&(0,X.jsx)(`p`,{className:`text-xs text-gray-600 dark:text-gray-400 mt-2 line-clamp-2`,children:e.description}),e.parameters.system_prompt&&(0,X.jsxs)(`div`,{className:`mt-3 p-2 rounded-lg bg-gray-50 dark:bg-dark-50 border border-gray-100 dark:border-dark-200`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1 mb-1`,children:[(0,X.jsx)(_,{className:`h-2.5 w-2.5 text-gray-400`}),(0,X.jsx)(`span`,{className:`text-[9px] uppercase tracking-wider font-medium text-gray-400`,children:`System`})]}),(0,X.jsxs)(`p`,{className:`text-[11px] text-gray-600 dark:text-gray-400 line-clamp-2 italic`,children:[`“`,e.parameters.system_prompt,`”`]})]}),(0,X.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-3`,children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-medium bg-gray-100 dark:bg-dark-200 text-gray-600 dark:text-gray-400`,children:[(0,X.jsx)(ce,{className:`h-2.5 w-2.5`}),e.parameters.temperature?.toFixed(1)||`0.7`]}),(0,X.jsxs)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium bg-gray-100 dark:bg-dark-200 text-gray-600 dark:text-gray-400`,children:[`Top-P `,e.parameters.top_p?.toFixed(1)||`0.9`]}),e.memory_settings?.enabled&&(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-medium bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300`,children:[(0,X.jsx)(de,{className:`h-2.5 w-2.5`}),`Memory`]})]})]})]})})]}),document.body)]})},Yt=({images:e,onImagesChange:t,maxImages:n=5,className:r})=>{let{t:i}=J(),a=(0,Y.useRef)(null),[o,s]=(0,Y.useState)(!1),c=r=>{if(!r)return;let i=[],a=n-e.length;for(let n=0;n<Math.min(r.length,a);n++){let o=r[n];if(!o.type.startsWith(`image/`)){T.error(`File ${o.name} is not an image`);continue}if(o.size>10*1024*1024){T.error(`Image ${o.name} is too large (max 10MB)`);continue}let s=new FileReader;s.onload=n=>{n.target?.result&&(i.push(n.target.result),i.length===Math.min(r.length,a)&&t([...e,...i]))},s.readAsDataURL(o)}r.length>a&&T.error(`Only ${a} more images can be added`)},l=e=>{e.preventDefault(),s(!0)},u=e=>{e.preventDefault(),s(!1)},d=e=>{e.preventDefault(),s(!1),c(e.dataTransfer.files)},f=n=>{t(e.filter((e,t)=>t!==n))},p=e.length<n;return(0,X.jsxs)(`div`,{className:W(`space-y-3`,r),children:[p&&(0,X.jsxs)(`div`,{className:W(`border-2 border-dashed border-gray-300 dark:border-gray-600 rounded-lg p-4 transition-colors`,`hover:border-primary-400 dark:hover:border-primary-500`,o&&`border-primary-500 bg-primary-50 dark:bg-primary-900/20`),onDragOver:l,onDragLeave:u,onDrop:d,children:[(0,X.jsx)(`input`,{ref:a,type:`file`,multiple:!0,accept:`image/*`,onChange:e=>c(e.target.files),className:`hidden`}),(0,X.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,X.jsx)(A,{className:`h-8 w-8 text-gray-400 dark:text-gray-500 mb-2`}),(0,X.jsxs)(`p`,{className:`text-sm text-gray-700 dark:text-gray-300 mb-2`,children:[i(`chat.mediaUpload.dropImagesHere`),` `,(0,X.jsx)(`button`,{onClick:()=>a.current?.click(),className:`text-primary-600 dark:text-primary-400 hover:underline font-medium`,children:i(`chat.mediaUpload.browse`)})]}),(0,X.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:i(`chat.mediaUpload.supportedFormats`)})]})]}),e.length>0&&(0,X.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3`,children:e.map((e,t)=>(0,X.jsxs)(`div`,{className:`relative group aspect-square rounded-lg overflow-hidden bg-gray-100 dark:bg-gray-800 border border-gray-200 dark:border-gray-700`,children:[(0,X.jsx)(`img`,{src:e,alt:`Upload ${t+1}`,className:`w-full h-full object-cover`}),(0,X.jsx)(`div`,{className:`absolute inset-0 bg-black bg-opacity-0 group-hover:bg-opacity-50 transition-all duration-200 flex items-center justify-center`,children:(0,X.jsx)(G,{variant:`ghost`,size:`sm`,onClick:()=>f(t),className:`opacity-0 group-hover:opacity-100 transition-opacity bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 hover:bg-red-100 dark:hover:bg-red-900/20 hover:text-red-600 dark:hover:text-red-400 p-1 rounded-full`,children:(0,X.jsx)(R,{className:`h-4 w-4`})})})]},t))}),p&&e.length>0&&(0,X.jsxs)(G,{variant:`outline`,size:`sm`,onClick:()=>a.current?.click(),className:`w-full sm:w-auto`,children:[(0,X.jsx)(w,{className:`h-4 w-4 mr-2`}),`Add More Images (`,e.length,`/`,n,`)`]})]})},$=a(`use-chat`),Xt=new Set([`New Chat`,`New Demo Session`]),Zt=e=>!e||Xt.has(e),Qt=e=>{let[t,n]=(0,Y.useState)(``),[r,i]=(0,Y.useState)(null),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)([]),{addMessage:l,updateMessage:u,updateMessageWithStatistics:d,updateSessionTitle:f,setGeneratingTitleForSession:p}=K(),{setIsGenerating:m,preferences:h}=je(),g=(0,Y.useRef)(null),_=(0,Y.useRef)(null),v=(0,Y.useRef)(!1),y=(0,Y.useRef)(null),b=(0,Y.useRef)(``),x=(0,Y.useRef)(0),S=(0,Y.useRef)(),C=(0,Y.useRef)(null),w=(0,Y.useRef)(``),E=(0,Y.useCallback)(()=>{C.current!==null&&typeof window<`u`&&window.cancelAnimationFrame(C.current),C.current=null},[]),D=(0,Y.useCallback)((e,t=!1)=>{if(w.current=e,t||typeof window>`u`){E(),n(e);return}C.current===null&&(C.current=window.requestAnimationFrame(()=>{C.current=null,n(w.current)}))},[E]),O=(0,Y.useCallback)(()=>{E(),w.current=``,n(``)},[E]),k=(0,Y.useCallback)(()=>{_.current=null,v.current=!1,y.current=null},[]),A=(0,Y.useCallback)(e=>{let t=je.getState().preferences.titleSettings,n=_.current,r=v.current&&y.current===e;$.debug(`Auto-title check:`,{firstMessage:n,autoTitle:t?.autoTitle,taskModel:t?.taskModel,shouldGenerateTitle:r}),n&&r&&t?.autoTitle&&t?.taskModel&&($.debug(`Triggering auto-title generation...`),p(e),_e.generateTitle(e,t.taskModel,n).then(t=>{$.debug(`Title generation response:`,t),t.success&&t.data?.title&&f(e,t.data.title)}).catch(e=>{$.error(`Failed to generate title:`,e)}).finally(()=>{p(null)})),k()},[k,p,f]);return(0,Y.useEffect)(()=>()=>{q.offMessage(`user_message`),q.offMessage(`assistant_chunk`),q.offMessage(`assistant_complete`),q.offMessage(`tool_status`),q.offMessage(`error`)},[e]),(0,Y.useEffect)(()=>{if(!e){q.offMessage(`user_message`),q.offMessage(`assistant_chunk`),q.offMessage(`assistant_complete`),q.offMessage(`tool_status`),q.offMessage(`error`);return}return q.onMessage(`user_message`,()=>{}),q.onMessage(`assistant_chunk`,t=>{let n=t,r=n.messageId||g.current;r&&(b.current=n.total,D(n.total,n.done),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{u(e,r,b.current),x.current=Date.now()},n.done?0:200))}),q.onMessage(`tool_status`,e=>{let t=e;c(e=>e.find(e=>e.toolCallId===t.toolCallId)?e.map(e=>e.toolCallId===t.toolCallId?{...e,phase:t.phase}:e):[...e,{toolCallId:t.toolCallId,name:t.name,phase:t.phase,startedAt:Date.now()}])}),q.onMessage(`assistant_complete`,t=>{let n=t;$.debug(`Hook: Received assistant_complete for session:`,e,`messageId:`,n.messageId,`with statistics:`,!!n.statistics),o(!1),O(),m(!1),c([]);let r=n.messageId||g.current;n&&r&&d(e,r,b.current||n.content,n.statistics),A(e),g.current=null,b.current=``,S.current&&clearTimeout(S.current),x.current=0}),q.onMessage(`error`,e=>{let t=e;if(o(!1),O(),m(!1),g.current=null,t.code===`SESSION_NOT_FOUND`){$.warn(`Session not found, redirecting to create new session...`),T.error(`Session not found. Creating a new session...`),window.location.href=`/`;return}T.error(t.error),k()}),o(!1),O(),g.current=null,()=>{S.current&&clearTimeout(S.current),E()}},[e,u,d,m,D,O,E,A,k]),{sendMessage:(0,Y.useCallback)(async(t,n,r)=>{if(!(!e||!t.trim()&&(!n||n.length===0)))try{m(!0),o(!0),O(),S.current&&clearTimeout(S.current),x.current=Date.now();let a=K.getState().currentSession,s=a?.isPrivate===!0,c=a?.messages?.some(e=>e.role===`user`);!s&&!c&&Zt(a?.title)?(_.current=t.trim(),v.current=!0,y.current=e):(_.current=null,v.current=!1,y.current=null),l(e,{role:`user`,content:t.trim(),images:n});let d=we();if(g.current=d,i(d),l(e,{role:`assistant`,content:``,id:d}),pe()){let n=`Demo response for: ${t.trim()}`;window.setTimeout(()=>{u(e,d,n),o(!1),O(),i(null),m(!1),A(e),g.current=null,b.current=``},500);return}q.isConnected||await q.connect();let f=s?a?.messages?.filter(e=>e.role!==`system`&&e.id!==d).map(e=>({role:e.role,content:e.content,images:e.images})):void 0;q.send({type:`chat_stream`,data:{sessionId:e,content:t.trim(),images:n,format:r,options:h.generationOptions,assistantMessageId:d,isPrivate:s,model:s?a?.model:void 0,messageHistory:f}})}catch(e){$.error(`Failed to send message:`,e),o(!1),O(),i(null),m(!1),g.current=null,T.error(`Failed to send message`)}},[e,l,u,m,O,A,h.generationOptions]),stopGeneration:(0,Y.useCallback)(()=>{o(!1),O(),i(null),m(!1),g.current=null},[m,O]),regenerateLastMessage:(0,Y.useCallback)(async()=>{let t=K.getState().currentSession;if(!t||!e)return;let n=t.messages,r=-1,a=-1;for(let e=n.length-1;e>=0;e--)if(n[e].role===`assistant`){a=e;break}if(a>0){for(let e=a-1;e>=0;e--)if(n[e].role===`user`){r=e;break}}if(r===-1||a===-1){T.error(`No message to regenerate`);return}let s=n[r],c=n[a];try{m(!0),o(!0),O(),S.current&&clearTimeout(S.current),x.current=Date.now();let t=we();g.current=t,i(t),l(e,{role:`assistant`,content:``,id:t,parentId:c.parentId||c.id,branchIndex:c.siblingCount||1,isActive:!0}),q.isConnected||await q.connect(),q.send({type:`chat_stream`,data:{sessionId:e,content:s.content,images:s.images,options:h.generationOptions,assistantMessageId:t,regenerate:!0,originalMessageId:c.id}})}catch(e){$.error(`Failed to regenerate message:`,e),o(!1),O(),i(null),m(!1),g.current=null,T.error(`Failed to regenerate message`)}},[e,m,O,l,h.generationOptions]),selectBranch:(0,Y.useCallback)(async t=>{let n=K.getState().currentSession;if(!n||!e)return;let r=n.messages.find(e=>e.id===t);if(!r){T.error(`Message not found`);return}if(r.isActive!==!1)return;let i=r.parentId||r.id,a=r.branchIndex||0;try{let r=await _e.switchMessageBranch(e,t,a);if(r.success&&r.data){let r=n.messages.map(e=>e.id===i||e.parentId===i?{...e,isActive:e.id===t}:e),o={...n,messages:r,updatedAt:Date.now()};K.setState(t=>({sessions:t.sessions.map(t=>t.id===e?o:t),currentSession:o})),T.success(`Switched to variant ${a+1}`)}else T.error(r.error||`Failed to select branch`)}catch(e){$.error(`Failed to select branch:`,e),T.error(`Failed to select branch`)}},[e]),isStreaming:a,streamingMessage:t,streamingMessageId:r,toolActivities:s}},$t=a(`pages:chat-page`),en=(e,t)=>{let n=new Date().getHours(),r=e?`, ${e}`:``;return n>=5&&n<12?{greeting:`${t?t(`chat.greeting.morning`):`Good morning`}${r}`,timeSuffix:`today`}:n>=12&&n<17?{greeting:`${t?t(`chat.greeting.afternoon`):`Good afternoon`}${r}`,timeSuffix:`today`}:n>=17&&n<21?{greeting:`${t?t(`chat.greeting.evening`):`Good evening`}${r}`,timeSuffix:`tonight`}:{greeting:`${t?t(`chat.greeting.night`):`Good night`}${r}`,timeSuffix:`tonight`}},tn=()=>{let{t:e}=J(),{sessionId:t}=Ee(),n=Te(),r=Me(),{currentSession:i,sessions:a,models:s,selectedModel:c,setSelectedModel:l,createSession:u,setCurrentSession:f,loadSessions:p,getCurrentPersona:m}=K(),{user:g}=Oe(),{sendMessage:_,stopGeneration:y,regenerateLastMessage:b,selectBranch:x,isStreaming:S,streamingMessage:C,streamingMessageId:w,toolActivities:T}=Qt(i?.id||``),E=m(),{greeting:D,timeSuffix:O}=(0,Y.useMemo)(()=>en(g?.username,e),[g?.username,e]),[k,A]=(0,Y.useState)(``),[j,M]=(0,Y.useState)([]),[N,ee]=(0,Y.useState)(!1),P=(0,Y.useRef)(null),[te,F]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{a.length===0&&p()},[p,a.length]),(0,Y.useEffect)(()=>{(async()=>{try{let e=await xe.getPlugins();F(!!(e.success&&e.data&&e.data.length>0))}catch{F(!1)}})()},[]),(0,Y.useEffect)(()=>{(()=>{if(sessionStorage.getItem(`forceWelcomeScreen`)){sessionStorage.removeItem(`forceWelcomeScreen`);return}if(!i?.isPrivate&&a.length!==0)if(t){let e=a.find(e=>e.id===t);e&&e.id!==i?.id?f(e):e||($t.warn(`Session ${t} not found for current user, redirecting...`),a.length>0?n(`/c/${a[0].id}`,{replace:!0}):n(`/`,{replace:!0}))}else!t&&a.length>0&&r.pathname===`/`&&n(`/c/${a[0].id}`,{replace:!0})})()},[t,a,f,n,i?.id,i?.isPrivate,r.pathname]),(0,Y.useEffect)(()=>{if(i?.id){let e=sessionStorage.getItem(`pendingMessage`);if(e){sessionStorage.removeItem(`pendingMessage`);try{let t=JSON.parse(e);setTimeout(()=>{_(t.content,t.images)},100)}catch(e){$t.error(`Failed to parse pending message:`,e)}}}},[i?.id,_]),(0,Y.useEffect)(()=>{let e=P.current;e&&(e.style.height=`auto`,e.style.height=Math.min(e.scrollHeight,200)+`px`)},[k]);let I=async e=>{if(e.preventDefault(),!k.trim()||!c)return;let t={content:k.trim(),images:j.length>0?j:void 0};sessionStorage.setItem(`pendingMessage`,JSON.stringify(t)),A(``),M([]);let r=await u(c);r&&n(`/c/${r.id}`,{replace:!0})},L=e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),I(e))},ne=async e=>{let t=e.target.value;l(t)},R=(e,t,n)=>{i&&_(e,t,n)};if(!i){let t=j.length>0;return(0,X.jsxs)(`div`,{className:`h-full flex-1 flex flex-col items-center justify-center p-4 sm:p-8 relative`,children:[(0,X.jsxs)(`button`,{onClick:()=>{if(!c&&s.length===0)return;let t=Date.now();f({id:`private-${t}`,title:e(`chat.session.private`),model:c||s[0]?.name||``,messages:[],createdAt:t,updatedAt:t,isPrivate:!0})},disabled:!c&&s.length===0,className:`absolute top-4 right-4 flex items-center gap-2 px-3 py-1.5 rounded-full border border-gray-300 dark:border-dark-400 bg-transparent hover:bg-gray-100 dark:hover:bg-dark-200 text-gray-500 dark:text-gray-400 transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed`,title:e(`chat.session.privateTooltip`),children:[(0,X.jsx)(v,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`text-sm`,children:e(`chat.session.private`)})]}),(0,X.jsxs)(`div`,{className:`w-full max-w-2xl mx-auto flex flex-col items-center justify-center`,children:[(0,X.jsx)(`h1`,{className:`text-2xl sm:text-3xl font-medium text-gray-800 dark:text-gray-100 mb-2 text-center`,style:{fontWeight:400},children:D}),(0,X.jsx)(`p`,{className:`text-base sm:text-lg text-gray-500 dark:text-gray-400 mb-8 text-center`,children:e(O===`today`?`chat.welcome.helpToday`:`chat.welcome.helpTonight`)}),s.length>0?(0,X.jsxs)(`div`,{className:`w-full`,children:[N&&(0,X.jsx)(`div`,{className:`mb-4 p-4 bg-gray-50 dark:bg-dark-100 border border-gray-200 dark:border-dark-300 rounded-2xl`,children:(0,X.jsx)(Yt,{images:j,onImagesChange:M,maxImages:5})}),(0,X.jsx)(`form`,{onSubmit:I,children:(0,X.jsxs)(`div`,{className:W(`flex items-center gap-2 p-2 sm:p-3 rounded-2xl sm:rounded-3xl border transition-all duration-200`,`bg-gray-50 dark:bg-dark-50 border-gray-200 dark:border-dark-300`,`hover:border-gray-300 dark:hover:border-dark-400`,`focus-within:border-primary-400 dark:focus-within:border-primary-500 focus-within:bg-white dark:focus-within:bg-dark-50`,`shadow-sm hover:shadow-md focus-within:shadow-lg`),children:[(0,X.jsx)(G,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>ee(!N),className:W(`h-8 w-8 sm:h-9 sm:w-9 !p-0 rounded-full flex-shrink-0`,`hover:bg-gray-200 dark:hover:bg-dark-200 transition-colors touch-manipulation`,t&&`text-primary-600 dark:text-primary-400`,N&&`bg-gray-200 dark:bg-dark-200`),title:e(`chat.input.attachImages`),style:{display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`0`},children:t?(0,X.jsxs)(`div`,{className:`relative flex items-center justify-center`,children:[(0,X.jsx)(o,{className:`h-4 w-4`}),(0,X.jsx)(`div`,{className:`absolute -top-0.5 -right-0.5 h-1.5 w-1.5 bg-primary-500 rounded-full`})]}):N?(0,X.jsx)(h,{className:`h-4 w-4`}):(0,X.jsx)(d,{className:`h-4 w-4`})}),(0,X.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,X.jsx)(Mt,{ref:P,value:k,onChange:e=>A(e.target.value),onKeyDown:L,placeholder:e(`chat.input.messagePlaceholder`),className:`!border-0 !bg-transparent !shadow-none !p-0 !m-0 !rounded-none !focus:ring-0 !focus:border-0 !focus:shadow-none !focus:bg-transparent min-h-[32px] sm:min-h-[36px] max-h-[120px] resize-none scrollbar-thin scrollbar-thumb-gray-300 dark:scrollbar-thumb-dark-400 focus:outline-none placeholder:text-gray-500 dark:placeholder:text-dark-500 text-base sm:text-sm leading-none touch-manipulation`,rows:1,style:{boxShadow:`none !important`,border:`none !important`,outline:`none !important`,padding:`0 !important`,margin:`0 !important`,lineHeight:`1.2 !important`,verticalAlign:`middle`}})}),(0,X.jsx)(`div`,{className:`hidden sm:block`,children:(0,X.jsx)(Gt,{models:s,selectedModel:c,onModelChange:ne,className:`min-w-[140px] max-w-[200px] border-0 bg-gray-100 dark:bg-dark-100 rounded-xl text-sm`,compact:!0,showImageGen:te})}),(0,X.jsx)(G,{type:`submit`,variant:`ghost`,size:`sm`,disabled:!k.trim()||!c,className:W(`h-8 w-8 sm:h-9 sm:w-9 p-0 rounded-full flex-shrink-0 flex items-center justify-center`,`hover:bg-primary-100 dark:hover:bg-primary-900/30 text-primary-600 dark:text-primary-400`,`disabled:text-gray-400 dark:disabled:text-dark-500 disabled:hover:bg-transparent`,`transition-all duration-150 touch-manipulation`,k.trim()&&c&&`hover:scale-105 active:scale-95`),title:e(`chat.input.sendMessage`),children:(0,X.jsx)(ue,{className:`h-4 w-4`})})]})}),(0,X.jsx)(`div`,{className:`sm:hidden mt-4`,children:(0,X.jsx)(Gt,{models:s,selectedModel:c,onModelChange:ne,className:`w-full rounded-xl bg-gray-100 dark:bg-dark-100 border-0`,compact:!0,showImageGen:te})}),(0,X.jsxs)(`div`,{className:`mt-4 text-center`,children:[(0,X.jsxs)(`a`,{href:`https://librewebui.org`,target:`_blank`,rel:`noopener noreferrer`,className:`libre-brand underline hover:text-primary-600 dark:hover:text-primary-400 transition-colors text-gray-500 dark:text-gray-400`,style:{fontSize:`0.75rem`,lineHeight:1},children:[`Libre `,(0,X.jsx)(`span`,{children:`WebUI`})]}),` `,(0,X.jsxs)(`span`,{className:`text-gray-400 dark:text-gray-500`,style:{fontSize:`0.55rem`},children:[`v`,`0.12.1`]}),` `,(0,X.jsx)(`span`,{className:`text-gray-300 dark:text-gray-600 opacity-50`,children:`•`}),` `,(0,X.jsx)(`span`,{className:`text-xs text-gray-400 dark:text-gray-500`,children:e(`chat.footer.disclaimer`)})]})]}):(0,X.jsx)(`div`,{className:`w-full max-w-md`,children:(0,X.jsxs)(`div`,{className:`p-6 bg-gray-50 dark:bg-dark-100 border border-gray-200 dark:border-dark-300 rounded-xl`,children:[(0,X.jsx)(`p`,{className:`text-sm text-gray-700 dark:text-dark-700 mb-4`,children:e(`chat.model.noModelsDescription`)}),(0,X.jsx)(`code`,{className:`block text-xs bg-gray-100 dark:bg-dark-200 p-3 rounded-lg font-mono text-gray-800 dark:text-dark-600`,children:e(`chat.model.pullCommand`)})]})})]})]})}return(0,X.jsxs)(`div`,{className:`flex flex-col h-full relative`,style:E?.background?{backgroundImage:`url(${E.background})`,backgroundSize:`cover`,backgroundPosition:`center`,backgroundRepeat:`no-repeat`}:void 0,children:[E?.background&&(0,X.jsx)(`div`,{className:`absolute inset-0 bg-white/80 dark:bg-black/80 backdrop-blur-sm`}),(0,X.jsxs)(`div`,{className:`flex flex-col h-full relative z-10`,children:[i?.isPrivate&&(0,X.jsx)(`div`,{className:`flex-shrink-0 px-4 py-2 border-b border-gray-200 dark:border-dark-300 bg-gray-50/80 dark:bg-dark-100/80 backdrop-blur-sm`,children:(0,X.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-gray-600 dark:text-gray-400`,children:[(0,X.jsx)(v,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`text-sm font-medium`,children:e(`chat.session.privateMode`)}),(0,X.jsxs)(`span`,{className:`text-xs text-gray-500 dark:text-gray-500`,children:[`— `,e(`chat.session.privateDescription`)]})]})}),E&&!i?.isPrivate&&(0,X.jsx)(`div`,{className:`flex-shrink-0 px-4 py-2 border-b border-gray-100 dark:border-dark-200 bg-white/50 dark:bg-dark-100/50 backdrop-blur-sm`,children:(0,X.jsx)(Jt,{persona:E,onClear:()=>{if(i){let{sessions:e}=K.getState(),t={...i,model:E.model,personaId:void 0},n=e.map(e=>e.id===i.id?t:e);K.setState({sessions:n,currentSession:t})}}})}),(0,X.jsx)(At,{messages:i.messages,streamingMessage:C,streamingMessageId:w,isStreaming:S,toolActivities:T,onRegenerate:b,onSelectBranch:x,className:`flex-1`}),(0,X.jsx)(qt,{onSendMessage:R,onStopGeneration:y,disabled:!i})]})]})};export{tn as ChatPage,tn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{d as t,f as n}from"./markdown-core-fkbHPd-g.js";import{t as r}from"./logger-BmpKNkls.js";import{Bt as i,Ot as a,V as o,Y as s,at as c,g as l,it as u,s as d,t as f,ut as p,vt as m,wt as h}from"./ui-vendor-njo77ljx.js";import{h as g}from"./api-BaWiKZy-.js";import{g as _,k as v,n as y,t as b}from"../assets/index-CdGZAiI5.js";var x=e(n(),1),S=t(),C=r(`components:first-time-setup`),w=({onComplete:e})=>{let{t}=v(),[n,r]=(0,x.useState)(`welcome`),[w,T]=(0,x.useState)(``),[E,D]=(0,x.useState)(``),[O,k]=(0,x.useState)(``),[A,j]=(0,x.useState)(!1),[M,N]=(0,x.useState)(!1),[P,F]=(0,x.useState)(!1),[I,L]=(0,x.useState)(null),[R,z]=(0,x.useState)(!1),[B,V]=(0,x.useState)(!1),[H,U]=(0,x.useState)(``),{login:W,systemInfo:G}=_(),K=G?.turnstile?.siteKey,q=!!(G?.turnstile?.enabled&&K),J=(0,x.useCallback)(e=>{U(e)},[]),Y=(0,x.useMemo)(()=>P||q&&!H,[P,q,H]);(0,x.useEffect)(()=>{n===`encryption-key`&&!I&&g.getEncryptionKey().then(e=>{e.success&&e.data&&L(e.data.encryptionKey)})},[n,I]);let X=async e=>{if(e.preventDefault(),!w.trim()||!E.trim()||!O.trim()){i.error(t(`setup.admin.fillAllFields`));return}if(E!==O){i.error(t(`auth.signup.passwordMismatch`));return}if(E.length<6){i.error(t(`auth.signup.passwordTooShort`));return}if(q&&!H){i.error(t(`auth.signup.tryAgain`));return}F(!0);try{let e=await g.signup({username:w,password:E,email:``,turnstileToken:H});e.success&&e.data?(W(e.data.user,e.data.token,e.data.systemInfo),i.success(t(`setup.admin.success`)),r(`encryption-key`)):i.error(e.message||t(`setup.admin.failed`))}catch(e){C.error(`Admin creation error:`,e),i.error(t(`setup.admin.failed`))}finally{U(``),F(!1)}},Z=async()=>{if(I)try{await navigator.clipboard.writeText(I),z(!0),i.success(t(`setup.encryptionKey.copied`)),setTimeout(()=>z(!1),3e3)}catch{i.error(t(`setup.encryptionKey.copyFailed`))}},Q=()=>{if(!B){i.error(t(`setup.encryptionKey.confirmRequired`));return}e?.()},$=e=>{if(e.key===`Enter`){let t=e.currentTarget.form;t&&t.requestSubmit()}};return n===`welcome`?(0,S.jsxs)(`div`,{className:`min-h-screen bg-gray-50 dark:bg-dark-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8`,children:[(0,S.jsx)(`div`,{className:`sm:mx-auto sm:w-full sm:max-w-md`,children:(0,S.jsx)(`div`,{className:`flex flex-col items-center`,children:(0,S.jsx)(y,{className:`text-gray-900 dark:text-gray-100`})})}),(0,S.jsx)(`div`,{className:`mt-8 sm:mx-auto sm:w-full sm:max-w-md`,children:(0,S.jsxs)(`div`,{className:`w-full max-w-md mx-auto bg-white dark:bg-dark-25 rounded-xl shadow-card hover:shadow-card-hover transition-shadow duration-200 p-6 border border-gray-200 dark:border-dark-200`,children:[(0,S.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,S.jsx)(`h1`,{className:`text-2xl font-bold text-gray-900 dark:text-dark-950 mb-2`,children:t(`setup.welcome.subtitle`)}),(0,S.jsx)(`p`,{className:`text-gray-600 dark:text-dark-500`,children:t(`setup.welcome.description`)})]}),(0,S.jsxs)(`div`,{className:`space-y-4 mb-6`,children:[(0,S.jsxs)(`div`,{className:`flex items-start space-x-3`,children:[(0,S.jsx)(`div`,{className:`flex-shrink-0 mt-1`,children:(0,S.jsx)(l,{className:`h-5 w-5 text-primary-600 dark:text-primary-400`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h3`,{className:`text-sm font-medium text-gray-900 dark:text-dark-950`,children:t(`setup.welcome.features.secure.title`)}),(0,S.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-dark-500`,children:t(`setup.welcome.features.secure.description`)})]})]}),(0,S.jsxs)(`div`,{className:`flex items-start space-x-3`,children:[(0,S.jsx)(`div`,{className:`flex-shrink-0 mt-1`,children:(0,S.jsx)(f,{className:`h-5 w-5 text-primary-600 dark:text-primary-400`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h3`,{className:`text-sm font-medium text-gray-900 dark:text-dark-950`,children:t(`setup.welcome.features.fast.title`)}),(0,S.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-dark-500`,children:t(`setup.welcome.features.fast.description`)})]})]}),(0,S.jsxs)(`div`,{className:`flex items-start space-x-3`,children:[(0,S.jsx)(`div`,{className:`flex-shrink-0 mt-1`,children:(0,S.jsx)(s,{className:`h-5 w-5 text-primary-600 dark:text-primary-400`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h3`,{className:`text-sm font-medium text-gray-900 dark:text-dark-950`,children:t(`setup.welcome.features.openSource.title`)}),(0,S.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-dark-500`,children:t(`setup.welcome.features.openSource.description`)})]})]})]}),(0,S.jsx)(`button`,{onClick:()=>r(`create-admin`),className:`w-full flex items-center justify-center px-4 py-2 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors duration-200`,children:(0,S.jsxs)(`div`,{className:`flex items-center`,children:[(0,S.jsx)(`span`,{children:t(`setup.welcome.createAdmin`)}),(0,S.jsx)(h,{size:16,className:`ml-2`})]})})]})})]}):n===`encryption-key`?(0,S.jsxs)(`div`,{className:`min-h-screen bg-gray-50 dark:bg-dark-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8`,children:[(0,S.jsxs)(`div`,{className:`sm:mx-auto sm:w-full sm:max-w-md`,children:[(0,S.jsx)(`div`,{className:`flex flex-col items-center`,children:(0,S.jsx)(y,{className:`text-gray-900 dark:text-gray-100`})}),(0,S.jsx)(`h2`,{className:`libre-brand mt-6 text-center text-2xl sm:text-3xl font-normal text-gray-900 dark:text-gray-100`,style:{fontWeight:300,letterSpacing:0},children:t(`setup.encryptionKey.title`)})]}),(0,S.jsx)(`div`,{className:`mt-8 sm:mx-auto sm:w-full sm:max-w-lg`,children:(0,S.jsxs)(`div`,{className:`w-full max-w-lg mx-auto bg-white dark:bg-dark-25 rounded-xl shadow-card hover:shadow-card-hover transition-shadow duration-200 p-6 border border-gray-200 dark:border-dark-200`,children:[(0,S.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,S.jsx)(`div`,{className:`flex justify-center mb-4`,children:(0,S.jsx)(`div`,{className:`p-3 bg-amber-100 dark:bg-amber-900/30 rounded-full`,children:(0,S.jsx)(o,{className:`h-8 w-8 text-amber-600 dark:text-amber-400`})})}),(0,S.jsx)(`h1`,{className:`text-2xl font-bold text-gray-900 dark:text-dark-950 mb-2`,children:t(`setup.encryptionKey.subtitle`)}),(0,S.jsx)(`p`,{className:`text-gray-600 dark:text-dark-500`,children:t(`setup.encryptionKey.description`)})]}),(0,S.jsx)(`div`,{className:`mb-6 p-4 bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800 rounded-lg`,children:(0,S.jsxs)(`div`,{className:`flex items-start space-x-3`,children:[(0,S.jsx)(a,{className:`h-5 w-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`}),(0,S.jsxs)(`div`,{className:`text-sm text-amber-800 dark:text-amber-200`,children:[(0,S.jsx)(`p`,{className:`font-medium mb-1`,children:t(`setup.encryptionKey.warning`)}),(0,S.jsx)(`p`,{children:t(`setup.encryptionKey.warningText`)})]})]})}),(0,S.jsxs)(`div`,{className:`mb-6`,children:[(0,S.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 dark:text-dark-700 mb-2`,children:t(`setup.encryptionKey.label`)}),(0,S.jsxs)(`div`,{className:`relative`,children:[(0,S.jsx)(`div`,{className:`w-full px-3 py-3 pr-12 border border-gray-300 dark:border-dark-300 rounded-lg bg-gray-50 dark:bg-dark-100 font-mono text-sm text-gray-900 dark:text-dark-800 break-all`,children:I||t(`setup.encryptionKey.loading`)}),(0,S.jsx)(`button`,{type:`button`,onClick:Z,disabled:!I,className:`absolute right-2 top-1/2 -translate-y-1/2 p-2 text-gray-500 hover:text-gray-700 dark:text-dark-500 dark:hover:text-dark-700 disabled:opacity-50`,title:t(`setup.encryptionKey.copyToClipboard`),children:R?(0,S.jsx)(m,{className:`h-5 w-5 text-green-500`}):(0,S.jsx)(p,{className:`h-5 w-5`})})]}),(0,S.jsx)(`p`,{className:`mt-2 text-xs text-gray-500 dark:text-dark-500`,children:t(`setup.encryptionKey.envNote`)})]}),(0,S.jsx)(`div`,{className:`mb-6`,children:(0,S.jsxs)(`label`,{className:`flex items-start space-x-3 cursor-pointer`,children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>V(e.target.checked),className:`mt-1 h-4 w-4 text-primary-600 focus:ring-primary-500 border-gray-300 dark:border-dark-300 rounded`}),(0,S.jsx)(`span`,{className:`text-sm text-gray-700 dark:text-dark-700`,children:t(`setup.encryptionKey.acknowledgment`)})]})}),(0,S.jsx)(`button`,{onClick:Q,disabled:!B,className:`w-full flex items-center justify-center px-4 py-2 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200`,children:(0,S.jsxs)(`div`,{className:`flex items-center`,children:[(0,S.jsx)(`span`,{children:t(`setup.encryptionKey.continue`)}),(0,S.jsx)(h,{size:16,className:`ml-2`})]})})]})})]}):(0,S.jsxs)(`div`,{className:`min-h-screen bg-gray-50 dark:bg-dark-50 flex flex-col justify-center py-12 sm:px-6 lg:px-8`,children:[(0,S.jsxs)(`div`,{className:`sm:mx-auto sm:w-full sm:max-w-md`,children:[(0,S.jsx)(`div`,{className:`flex flex-col items-center`,children:(0,S.jsx)(y,{className:`text-gray-900 dark:text-gray-100`})}),(0,S.jsx)(`h2`,{className:`libre-brand mt-6 text-center text-2xl sm:text-3xl font-normal text-gray-900 dark:text-gray-100`,style:{fontWeight:300,letterSpacing:0},children:t(`setup.admin.title`)})]}),(0,S.jsx)(`div`,{className:`mt-8 sm:mx-auto sm:w-full sm:max-w-md`,children:(0,S.jsxs)(`div`,{className:`w-full max-w-md mx-auto bg-white dark:bg-dark-25 rounded-xl shadow-card hover:shadow-card-hover transition-shadow duration-200 p-6 border border-gray-200 dark:border-dark-200`,children:[(0,S.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,S.jsx)(`h1`,{className:`text-2xl font-bold text-gray-900 dark:text-dark-950 mb-2`,children:t(`setup.admin.subtitle`)}),(0,S.jsx)(`p`,{className:`text-gray-600 dark:text-dark-500`,children:t(`setup.admin.description`)})]}),(0,S.jsxs)(`form`,{onSubmit:X,className:`space-y-4`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`label`,{htmlFor:`username`,className:`block text-sm font-medium text-gray-700 dark:text-dark-700 mb-2`,children:t(`auth.login.username`)}),(0,S.jsx)(`input`,{id:`username`,type:`text`,value:w,onChange:e=>T(e.target.value),onKeyDown:$,className:`w-full px-3 py-2 border border-gray-300 dark:border-dark-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500 bg-white dark:bg-dark-100 text-gray-900 dark:text-dark-800 transition-colors duration-200`,placeholder:t(`setup.admin.usernamePlaceholder`),required:!0,disabled:P})]}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`label`,{htmlFor:`password`,className:`block text-sm font-medium text-gray-700 dark:text-dark-700 mb-2`,children:t(`auth.login.password`)}),(0,S.jsxs)(`div`,{className:`relative`,children:[(0,S.jsx)(`input`,{id:`password`,type:A?`text`:`password`,value:E,onChange:e=>D(e.target.value),onKeyDown:$,className:`w-full px-3 py-2 pr-10 border border-gray-300 dark:border-dark-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500 bg-white dark:bg-dark-100 text-gray-900 dark:text-dark-800 transition-colors duration-200`,placeholder:t(`setup.admin.passwordPlaceholder`),required:!0,disabled:P}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>j(!A),className:`absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600 dark:text-dark-500 dark:hover:text-dark-700`,disabled:P,children:A?(0,S.jsx)(u,{size:20}):(0,S.jsx)(c,{size:20})})]})]}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`label`,{htmlFor:`confirmPassword`,className:`block text-sm font-medium text-gray-700 dark:text-dark-700 mb-2`,children:t(`auth.signup.confirmPassword`)}),(0,S.jsxs)(`div`,{className:`relative`,children:[(0,S.jsx)(`input`,{id:`confirmPassword`,type:M?`text`:`password`,value:O,onChange:e=>k(e.target.value),onKeyDown:$,className:`w-full px-3 py-2 pr-10 border border-gray-300 dark:border-dark-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500 bg-white dark:bg-dark-100 text-gray-900 dark:text-dark-800 transition-colors duration-200`,placeholder:t(`setup.admin.confirmPlaceholder`),required:!0,disabled:P}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>N(!M),className:`absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600 dark:text-dark-500 dark:hover:text-dark-700`,disabled:P,children:M?(0,S.jsx)(u,{size:20}):(0,S.jsx)(c,{size:20})})]})]}),q&&K&&(0,S.jsx)(b,{siteKey:K,disabled:P,errorMessage:t(`auth.signup.tryAgain`),onTokenChange:J}),(0,S.jsxs)(`div`,{className:`flex space-x-3`,children:[(0,S.jsx)(`button`,{type:`button`,onClick:()=>r(`welcome`),disabled:P,className:`flex-1 px-4 py-2 border border-gray-300 dark:border-dark-300 rounded-lg shadow-sm text-sm font-medium text-gray-700 dark:text-dark-700 bg-white dark:bg-dark-100 hover:bg-gray-50 dark:hover:bg-dark-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200`,children:t(`common.back`)}),(0,S.jsx)(`button`,{type:`submit`,disabled:Y,className:`flex-1 flex items-center justify-center px-4 py-2 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200`,children:P?(0,S.jsxs)(`div`,{className:`flex items-center`,children:[(0,S.jsx)(`div`,{className:`animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2`}),t(`setup.admin.creating`)]}):(0,S.jsxs)(`div`,{className:`flex items-center`,children:[(0,S.jsx)(d,{size:16,className:`mr-2`}),t(`setup.admin.createAdmin`)]})})]})]}),(0,S.jsx)(`div`,{className:`mt-6 text-center`,children:(0,S.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-dark-500`,children:t(`setup.admin.note`)})})]})})]})};export{w as FirstTimeSetup};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{d as t,f as n}from"./markdown-core-fkbHPd-g.js";import{n as r}from"./react-vendor-Co1u1rWb.js";import{n as i,t as a}from"./useBaseQuery-C03a5oZt.js";import{t as o}from"./logger-BmpKNkls.js";import{At as s,Bt as c,D as l,I as u,Nt as d,U as f,W as p,lt as m,n as h,pt as g,st as _,u as v}from"./ui-vendor-njo77ljx.js";import{u as y}from"./api-BaWiKZy-.js";import{t as b}from"./utils-BaPYjs_z.js";import{t as x}from"./Button-BUjLpHmR.js";import{G as S,H as C,K as w,k as T}from"../assets/index-CdGZAiI5.js";var E=class extends i{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:s}=r,c=n.fetchMeta?.fetchMore?.direction,l=o&&c===`forward`,u=i&&c===`forward`,d=o&&c===`backward`,f=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:S(t,n.data),hasPreviousPage:w(t,n.data),isFetchNextPageError:l,isFetchingNextPage:u,isFetchPreviousPageError:d,isFetchingPreviousPage:f,isRefetchError:s&&!l&&!d,isRefetching:a&&!u&&!f}}};function D(e,t){return a(e,E,t)}var O=e(n(),1),k=r(),A=t(),j=({image:e,onClose:t,onDelete:n,onDownload:r})=>{let{t:i}=T();return(0,O.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[t]),(0,k.createPortal)((0,A.jsxs)(`div`,{className:`fixed inset-0 z-[99999] flex items-center justify-center`,onClick:t,children:[(0,A.jsx)(`div`,{className:`absolute inset-0 bg-black/90 backdrop-blur-sm`}),(0,A.jsxs)(`div`,{className:`relative flex flex-col lg:flex-row max-w-7xl max-h-[95vh] w-full mx-4 gap-4`,onClick:e=>e.stopPropagation(),children:[(0,A.jsx)(`button`,{onClick:t,className:b(`absolute -top-12 right-0 lg:top-0 lg:-right-12 z-10`,`p-2 rounded-full`,`bg-white/10 hover:bg-white/20`,`transition-colors`),children:(0,A.jsx)(h,{className:`h-6 w-6 text-white`})}),(0,A.jsx)(`div`,{className:`flex-1 flex items-center justify-center min-h-0`,children:(0,A.jsx)(`img`,{src:e.imageData,alt:e.prompt,className:`max-w-full max-h-[70vh] lg:max-h-[90vh] object-contain rounded-lg`})}),(0,A.jsxs)(`div`,{className:b(`w-full lg:w-80 flex-shrink-0`,`bg-white dark:bg-dark-100`,`rounded-xl p-4 lg:p-5`,`overflow-y-auto max-h-[25vh] lg:max-h-[90vh]`),children:[(0,A.jsxs)(`div`,{className:`mb-4`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-gray-500 dark:text-gray-400 mb-1`,children:i(`gallery.prompt`)}),(0,A.jsx)(`p`,{className:`text-gray-900 dark:text-gray-100 text-sm leading-relaxed`,children:e.prompt})]}),(0,A.jsxs)(`div`,{className:`space-y-3 mb-4`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,A.jsx)(m,{className:`h-4 w-4 text-gray-400 dark:text-gray-500`}),(0,A.jsxs)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:[i(`gallery.model`),`:`]}),(0,A.jsx)(`span`,{className:`text-gray-900 dark:text-gray-100`,children:e.model})]}),e.size&&(0,A.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,A.jsx)(u,{className:`h-4 w-4 text-gray-400 dark:text-gray-500`}),(0,A.jsxs)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:[i(`gallery.size`),`:`]}),(0,A.jsx)(`span`,{className:`text-gray-900 dark:text-gray-100`,children:e.size})]}),e.quality&&(0,A.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,A.jsx)(`span`,{className:`w-4 h-4 flex items-center justify-center text-gray-400 dark:text-gray-500 text-xs font-bold`,children:`Q`}),(0,A.jsxs)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:[i(`gallery.quality`),`:`]}),(0,A.jsx)(`span`,{className:`text-gray-900 dark:text-gray-100 capitalize`,children:e.quality})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,A.jsx)(g,{className:`h-4 w-4 text-gray-400 dark:text-gray-500`}),(0,A.jsxs)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:[i(`gallery.created`),`:`]}),(0,A.jsx)(`span`,{className:`text-gray-900 dark:text-gray-100`,children:(e=>new Date(e).toLocaleString(void 0,{year:`numeric`,month:`long`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}))(e.createdAt)})]})]}),(0,A.jsxs)(`div`,{className:`flex gap-2 pt-4 border-t border-gray-200 dark:border-dark-300`,children:[(0,A.jsxs)(`button`,{onClick:()=>{if(r)r(e);else{let t=document.createElement(`a`);t.href=e.imageData,t.download=`generated-${e.id}.png`,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},className:b(`flex-1 flex items-center justify-center gap-2 py-2.5 rounded-lg`,`bg-primary-600 dark:bg-primary-600`,`hover:bg-primary-700 dark:hover:bg-primary-500`,`text-white font-medium text-sm`,`transition-colors`),children:[(0,A.jsx)(_,{className:`h-4 w-4`}),i(`gallery.download`)]}),n&&(0,A.jsx)(`button`,{onClick:()=>n(e.id),className:b(`p-2.5 rounded-lg`,`bg-gray-100 dark:bg-dark-200`,`hover:bg-red-100 dark:hover:bg-red-900/30`,`text-gray-600 dark:text-gray-300`,`hover:text-red-600 dark:hover:text-red-400`,`transition-colors`),title:`Delete image`,children:(0,A.jsx)(v,{className:`h-4 w-4`})})]})]})]})]}),document.body)},M=o(`components:image-gallery`),N=({onImageCountChange:e})=>{let{t}=T(),n=C(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(null),{data:s,fetchNextPage:l,hasNextPage:u,isFetchingNextPage:f,isLoading:m}=D({queryKey:[`image-gallery`],queryFn:async({pageParam:e})=>{let n=await y.getGallery({limit:20,offset:e});if(!n.success||!n.data)throw Error(t(`imageGallery.loadFailed`));return n.data},initialPageParam:0,getNextPageParam:(e,t)=>{let n=t.reduce((e,t)=>e+t.images.length,0);return n<e.total?n:void 0}}),h=(0,O.useMemo)(()=>s?.pages.flatMap(e=>e.images)??[],[s]),g=s?.pages[0]?.total??0,x=f;(0,O.useEffect)(()=>{e?.(g)},[g,e]);let S=()=>{l()},w=async(e,s)=>{if(s.stopPropagation(),!a){o(e);try{(await y.deleteGalleryImage(e)).success?(await n.invalidateQueries({queryKey:[`image-gallery`]}),c.success(t(`imageGallery.deleteSuccess`)),r?.id===e&&i(null)):c.error(t(`imageGallery.deleteFailed`))}catch(e){M.error(`Failed to delete image:`,e),c.error(t(`imageGallery.deleteFailed`))}finally{o(null)}}},E=(e,t)=>{t.stopPropagation();let n=document.createElement(`a`);n.href=e.imageData,n.download=`generated-${e.id}.png`,document.body.appendChild(n),n.click(),document.body.removeChild(n)},k=e=>new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`});return m?(0,A.jsx)(`div`,{className:`flex items-center justify-center py-20`,children:(0,A.jsx)(d,{className:`h-8 w-8 animate-spin text-gray-400 dark:text-gray-500`})}):h.length===0?(0,A.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-20 text-center`,children:[(0,A.jsx)(p,{className:`h-16 w-16 text-gray-300 dark:text-gray-600 mb-4`}),(0,A.jsx)(`h3`,{className:`text-lg font-medium text-gray-900 dark:text-gray-100 mb-2`,children:t(`imageGallery.noImages`)}),(0,A.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400 max-w-sm`,children:t(`imageGallery.noImagesHint`)})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`div`,{className:b(`columns-1 sm:columns-2 lg:columns-3 xl:columns-4`,`gap-4 space-y-4`),children:h.map(e=>(0,A.jsxs)(`div`,{className:b(`break-inside-avoid group relative cursor-pointer`,`rounded-xl overflow-hidden`,`bg-gray-100 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300`,`hover:border-gray-300 dark:hover:border-dark-400`,`transition-all duration-200`,`hover:shadow-lg dark:hover:shadow-dark-400/20`),onClick:()=>i(e),children:[(0,A.jsx)(`img`,{src:e.imageData,alt:e.prompt,className:`w-full h-auto object-cover`,loading:`lazy`}),(0,A.jsxs)(`div`,{className:b(`absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent`,`opacity-0 group-hover:opacity-100 transition-opacity duration-200`,`flex flex-col justify-end p-3`),children:[(0,A.jsx)(`p`,{className:`text-white text-sm line-clamp-2 mb-2`,children:e.prompt}),(0,A.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,A.jsx)(`span`,{className:`text-white/70 text-xs`,children:k(e.createdAt)}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,A.jsx)(`button`,{onClick:t=>E(e,t),className:b(`p-1.5 rounded-lg`,`bg-white/20 hover:bg-white/30`,`transition-colors`),title:t(`imageGallery.download`),children:(0,A.jsx)(_,{className:`h-4 w-4 text-white`})}),(0,A.jsx)(`button`,{onClick:t=>w(e.id,t),disabled:a===e.id,className:b(`p-1.5 rounded-lg`,`bg-white/20 hover:bg-red-500/80`,`transition-colors`,a===e.id&&`opacity-50 cursor-not-allowed`),title:t(`imageGallery.delete`),children:a===e.id?(0,A.jsx)(d,{className:`h-4 w-4 text-white animate-spin`}):(0,A.jsx)(v,{className:`h-4 w-4 text-white`})})]})]})]})]},e.id))}),u&&(0,A.jsx)(`div`,{className:`flex justify-center mt-8`,children:(0,A.jsx)(`button`,{onClick:S,disabled:x,className:b(`px-6 py-2.5 rounded-xl font-medium`,`bg-gray-100 dark:bg-dark-200`,`hover:bg-gray-200 dark:hover:bg-dark-300`,`text-gray-700 dark:text-gray-200`,`border border-gray-200 dark:border-dark-300`,`transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:x?(0,A.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(d,{className:`h-4 w-4 animate-spin`}),t(`common.loading`)]}):t(`imageGallery.loadMore`,{current:h.length,total:g})})}),r&&(0,A.jsx)(j,{image:r,onClose:()=>i(null),onDelete:e=>{w(e,{stopPropagation:()=>{}})},onDownload:e=>{E(e,{stopPropagation:()=>{}})}})]})},P=o(`components:image-generation-panel`),F=({isOpen:e,onClose:t,onImageGenerated:n})=>{let{t:r}=T(),[i,a]=(0,O.useState)([]),[o,l]=(0,O.useState)(``),[u,p]=(0,O.useState)(``),[m,g]=(0,O.useState)(``),[v,S]=(0,O.useState)(`1024x1024`),[C,w]=(0,O.useState)(`standard`),[E,D]=(0,O.useState)(!1),[j,M]=(0,O.useState)(null),[N,F]=(0,O.useState)([`512x512`,`768x768`,`1024x1024`]),[I,L]=(0,O.useState)([`standard`,`high`]),[R,z]=(0,O.useState)(null);(0,O.useEffect)(()=>{e&&(async()=>{try{let e=await y.getPlugins();if(e.success&&e.data&&(a(e.data),e.data.length>0)){let t=e.data[0];l(t.id),t.models.length>0&&p(t.models[0]),t.config?.sizes&&(F(t.config.sizes),S(t.config.default_size||t.config.sizes[0]||`1024x1024`)),t.config?.qualities&&(L(t.config.qualities),w(t.config.default_quality||t.config.qualities[0]||`standard`)),z(t.config?.max_prompt_length??null)}}catch(e){P.error(`Failed to load image generation plugins:`,e)}})()},[e]);let[B,V]=(0,O.useState)(o);if(o!==B){V(o);let e=i.find(e=>e.id===o);e&&(e.models.length>0&&!e.models.includes(u)&&p(e.models[0]),e.config?.sizes&&(F(e.config.sizes),e.config.sizes.includes(v)||S(e.config.default_size||e.config.sizes[0])),e.config?.qualities&&(L(e.config.qualities),e.config.qualities.includes(C)||w(e.config.default_quality||e.config.qualities[0])),z(e.config?.max_prompt_length??null))}let H=async()=>{if(!u||!m.trim()){c.error(r(`imageGeneration.enterPrompt`));return}if(R&&m.length>R){c.error(r(`imageGeneration.promptTooLong`,{max:R.toLocaleString()}));return}D(!0),M(null);try{let e=await y.generate({model:u,prompt:m.trim(),size:v,quality:C});if(e.success&&e.data?.images&&e.data.images.length>0){let i=e.data.images[0],a=null;i.b64_json?a=`data:image/png;base64,${i.b64_json}`:i.url&&(a=i.url),a&&(c.success(r(`imageGeneration.success`)),n?(n(a,m.trim(),u),g(``),M(null),t()):M(a))}else c.error(r(`imageGeneration.failed`))}catch(e){P.error(`Image generation failed:`,e);let t=e instanceof Error?e.message:r(`imageGeneration.failed`);c.error(t)}finally{D(!1)}},U=()=>{if(!j)return;let e=document.createElement(`a`);e.href=j,e.download=`generated-image-${Date.now()}.png`,document.body.appendChild(e),e.click(),document.body.removeChild(e)};if(!e)return null;let W=i.find(e=>e.id===o);return(0,k.createPortal)((0,A.jsxs)(`div`,{className:`fixed inset-0 z-[99999] flex items-center justify-center p-4`,children:[(0,A.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,A.jsxs)(`div`,{className:b(`relative bg-white dark:bg-dark-100`,`border border-gray-200 dark:border-dark-300`,`rounded-2xl shadow-2xl`,`w-full max-w-2xl max-h-[90vh] overflow-hidden flex flex-col`),onClick:e=>e.stopPropagation(),children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-200 dark:border-dark-300`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(f,{className:`h-5 w-5 text-primary-600 dark:text-primary-400`}),(0,A.jsx)(`h2`,{className:`text-lg font-semibold text-gray-900 dark:text-gray-100`,children:r(`imageGeneration.title`)})]}),(0,A.jsx)(`button`,{onClick:t,className:`p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200 transition-colors`,children:(0,A.jsx)(h,{className:`h-5 w-5 text-gray-500 dark:text-gray-400`})})]}),(0,A.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:i.length===0?(0,A.jsxs)(`div`,{className:`text-center py-8`,children:[(0,A.jsx)(f,{className:`h-12 w-12 mx-auto mb-3 text-gray-300 dark:text-gray-600`}),(0,A.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:r(`imageGeneration.noModels`)}),(0,A.jsx)(`p`,{className:`text-sm text-gray-400 dark:text-gray-500 mt-1`,children:r(`imageGeneration.configurePlugin`)})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:r(`settings.plugins.title`)}),(0,A.jsx)(`select`,{value:o,onChange:e=>l(e.target.value),className:b(`w-full px-3 py-2 rounded-lg text-sm`,`bg-gray-50 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300`,`text-gray-900 dark:text-gray-100`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`),children:i.map(e=>(0,A.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:r(`imageGeneration.model`)}),(0,A.jsx)(`select`,{value:u,onChange:e=>p(e.target.value),className:b(`w-full px-3 py-2 rounded-lg text-sm`,`bg-gray-50 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300`,`text-gray-900 dark:text-gray-100`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`),children:W?.models.map(e=>(0,A.jsx)(`option`,{value:e,children:e},e))})]})]}),(0,A.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:r(`imageGeneration.size`)}),(0,A.jsx)(`select`,{value:v,onChange:e=>S(e.target.value),className:b(`w-full px-3 py-2 rounded-lg text-sm`,`bg-gray-50 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300`,`text-gray-900 dark:text-gray-100`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`),children:N.map(e=>(0,A.jsx)(`option`,{value:e,children:e},e))})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:r(`imageGeneration.quality`)}),(0,A.jsx)(`select`,{value:C,onChange:e=>w(e.target.value),className:b(`w-full px-3 py-2 rounded-lg text-sm`,`bg-gray-50 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300`,`text-gray-900 dark:text-gray-100`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`),children:I.map(e=>(0,A.jsx)(`option`,{value:e,children:e.charAt(0).toUpperCase()+e.slice(1)},e))})]})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:r(`imageGeneration.prompt`)}),(0,A.jsx)(`textarea`,{value:m,onChange:e=>g(e.target.value),placeholder:r(`imageGeneration.promptPlaceholder`),rows:5,className:b(`w-full px-3 py-2 rounded-lg text-sm resize-none`,`bg-gray-50 dark:bg-dark-200`,`border border-gray-200 dark:border-dark-300`,`text-gray-900 dark:text-gray-100`,`placeholder-gray-500 dark:placeholder-gray-400`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`,R&&m.length>R&&`border-red-500 dark:border-red-500`)}),R&&(0,A.jsxs)(`div`,{className:b(`text-xs mt-1 text-right`,m.length>R?`text-red-500`:`text-gray-500 dark:text-gray-400`),children:[m.length.toLocaleString(),` /`,` `,R.toLocaleString()]})]}),j&&(0,A.jsxs)(`div`,{className:`relative rounded-xl overflow-hidden border border-gray-200 dark:border-dark-300`,children:[(0,A.jsx)(`img`,{src:j,alt:`Generated`,className:`w-full h-auto`}),(0,A.jsx)(`button`,{onClick:U,className:b(`absolute bottom-3 right-3 p-2 rounded-lg`,`bg-white/90 dark:bg-dark-100/90`,`hover:bg-white dark:hover:bg-dark-100`,`border border-gray-200 dark:border-dark-300`,`transition-colors`),title:r(`imageGallery.download`),children:(0,A.jsx)(_,{className:`h-5 w-5 text-gray-700 dark:text-gray-200`})})]})]})}),i.length>0&&(0,A.jsx)(`div`,{className:`p-4 border-t border-gray-200 dark:border-dark-300`,children:(0,A.jsx)(x,{onClick:H,disabled:E||!m.trim()||!u,className:b(`w-full py-2.5 rounded-xl font-medium`,`bg-primary-600 dark:bg-primary-600`,`hover:bg-primary-700 dark:hover:bg-primary-500`,`text-white`,`disabled:opacity-50 disabled:cursor-not-allowed`,`transition-colors`),children:E?(0,A.jsxs)(`span`,{className:`flex items-center justify-center gap-2`,children:[(0,A.jsx)(d,{className:`h-4 w-4 animate-spin`}),r(`imageGeneration.generating`)]}):(0,A.jsxs)(`span`,{className:`flex items-center justify-center gap-2`,children:[(0,A.jsx)(s,{className:`h-4 w-4`}),r(`imageGeneration.generate`)]})})})]})]}),document.body)},I=()=>{let{t:e}=T(),[t,n]=(0,O.useState)(null),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(0),s=(0,O.useCallback)(()=>{o(e=>e+1)},[]);return(0,A.jsxs)(`div`,{className:`h-full overflow-auto`,children:[(0,A.jsxs)(`div`,{className:`max-w-7xl mx-auto p-6`,children:[(0,A.jsxs)(`div`,{className:`text-center max-w-md mx-auto mb-8`,children:[(0,A.jsx)(`h2`,{className:`libre-brand text-4xl sm:text-5xl font-normal text-gray-900 dark:text-dark-800 mb-3`,style:{fontWeight:300,letterSpacing:0},children:e(`sidebar.navigation.imagine`)}),(0,A.jsxs)(`p`,{className:`text-gray-600 dark:text-dark-600 leading-relaxed`,children:[e(`gallery.subtitle`),t!==null&&t>0&&(0,A.jsxs)(`span`,{className:`text-gray-400 dark:text-gray-500`,children:[` `,`· `,e(`gallery.imageCount`,{count:t})]})]}),(0,A.jsxs)(x,{onClick:()=>i(!0),className:b(`mt-4 px-6 py-2.5 rounded-xl font-medium`,`bg-primary-600 dark:bg-primary-600`,`hover:bg-primary-700 dark:hover:bg-primary-500`,`text-white`,`transition-colors`),children:[(0,A.jsx)(l,{className:`h-4 w-4 mr-2`}),e(`gallery.generate`)]})]}),(0,A.jsx)(N,{onImageCountChange:n},a)]}),(0,A.jsx)(F,{isOpen:r,onClose:()=>i(!1),onImageGenerated:s})]})};export{I as GalleryPage,I as default};
|