From 79dd5a1f9be360e0fa08d619fbb14424644eddd6 Mon Sep 17 00:00:00 2001 From: Saifeddine ALOUI Date: Mon, 3 Feb 2025 00:06:02 +0100 Subject: [PATCH] Upgraded ui --- web/dist/assets/index-BXgHJ0lt.css | 17 ----------------- .../{index-Dn-Ow83A.js => index-DOAjMF0-.js} | 18 +++++++++--------- web/dist/assets/index-xuUsdK2A.css | 17 +++++++++++++++++ web/dist/index.html | 4 ++-- web/src/components/ChatBox.vue | 10 ++++------ web/src/components/PersonalitiesCommands.vue | 5 +++++ 6 files changed, 37 insertions(+), 34 deletions(-) delete mode 100644 web/dist/assets/index-BXgHJ0lt.css rename web/dist/assets/{index-Dn-Ow83A.js => index-DOAjMF0-.js} (97%) create mode 100644 web/dist/assets/index-xuUsdK2A.css diff --git a/web/dist/assets/index-BXgHJ0lt.css b/web/dist/assets/index-BXgHJ0lt.css deleted file mode 100644 index 754ece96..00000000 --- a/web/dist/assets/index-BXgHJ0lt.css +++ /dev/null @@ -1,17 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@500;600;700&family=Outfit:wght@400;500;600;700&display=swap";.hljs-comment,.hljs-quote{color:#7285b7}.hljs-variable,.hljs-template-variable,.hljs-tag,.hljs-name,.hljs-selector-id,.hljs-selector-class,.hljs-regexp,.hljs-deletion{color:#ff9da4}.hljs-number,.hljs-built_in,.hljs-literal,.hljs-type,.hljs-params,.hljs-meta,.hljs-link{color:#ffc58f}.hljs-attribute{color:#ffeead}.hljs-string,.hljs-symbol,.hljs-bullet,.hljs-addition{color:#d1f1a9}.hljs-title,.hljs-section{color:#bbdaff}.hljs-keyword,.hljs-selector-tag{color:#ebbbff}.hljs{background:#002451;color:#fff}/*! - Theme: Tokyo-night-Dark - origin: https://github.com/enkia/tokyo-night-vscode-theme - Description: Original highlight.js style - Author: (c) Henri Vandersleyen - License: see project LICENSE - Touched: 2022 -*/.hljs-meta,.hljs-comment{color:#565f89}.hljs-tag,.hljs-doctag,.hljs-selector-id,.hljs-selector-class,.hljs-regexp,.hljs-template-tag,.hljs-selector-pseudo,.hljs-selector-attr,.hljs-variable.language_,.hljs-deletion{color:#f7768e}.hljs-variable,.hljs-template-variable,.hljs-number,.hljs-literal,.hljs-type,.hljs-params,.hljs-link{color:#ff9e64}.hljs-built_in,.hljs-attribute{color:#e0af68}.hljs-selector-tag{color:#2ac3de}.hljs-keyword,.hljs-title.function_,.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-subst,.hljs-property{color:#7dcfff}.hljs-selector-tag{color:#73daca}.hljs-quote,.hljs-string,.hljs-symbol,.hljs-bullet,.hljs-addition{color:#9ece6a}.hljs-code,.hljs-formula,.hljs-section{color:#7aa2f7}.hljs-name,.hljs-keyword,.hljs-operator,.hljs-char.escape_,.hljs-attr{color:#bb9af7}.hljs-punctuation{color:#c0caf5}.hljs{background:#1a1b26;color:#9aa5ce}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.code-container{display:flex;margin:0}.line-numbers{flex-shrink:0;padding-right:5px;color:#999;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;margin:0}.code-content{flex-grow:1;margin:0;outline:none}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.execute-button{display:flex;align-items:center;gap:.5rem}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! - Theme: GitHub - Description: Light theme as seen on github.com - Author: github.com - Maintainer: @Hirse - Updated: 2021-05-15 - - Outdated base version: https://github.com/primer/github-syntax-light - Current colors taken from GitHub's CSS -*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.prose{color:inherit}.prose h1{margin-bottom:1rem;margin-top:1.5rem;font-size:1.5rem;line-height:2rem;font-weight:700}.prose h2{margin-bottom:.75rem;margin-top:1.25rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}.prose h3{margin-bottom:.5rem;margin-top:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:700}.prose p{margin-bottom:1rem}.prose ul{margin-bottom:1rem;list-style-type:disc;padding-left:1.25rem}.prose ol{margin-bottom:1rem;list-style-type:decimal;padding-left:1.25rem}.prose code{border-radius:.25rem;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-bg-opacity: .1;padding:.125rem .25rem;font-family:JetBrains Mono,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.prose pre{margin-bottom:1rem;overflow-x:auto;border-radius:.5rem;padding:1rem}.prose pre code{background-color:transparent;padding:0}.prose blockquote{margin-top:1rem;margin-bottom:1rem;border-left-width:4px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding-left:1rem;font-style:italic}.prose a{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity));text-decoration-line:underline}.prose a:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.prose::-webkit-scrollbar{width:.5rem}.prose::-webkit-scrollbar-track{background-color:transparent}.prose::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity));-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.prose::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.prose{scroll-behavior:smooth}.math[data-v-8ca613b1]{display:inline-block}.mathjax_block[data-v-8ca613b1]{display:block}.progress-bar-container{background-color:#f0f0f0;border-radius:4px;height:8px;overflow:hidden}.progress-bar{background-color:#3498db;height:100%;transition:width .3s ease}.custom-scrollbar[data-v-8a34bb65]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}.toastItem-enter-active[data-v-46f379e5],.toastItem-leave-active[data-v-46f379e5]{transition:all .5s ease}.toastItem-enter-from[data-v-46f379e5],.toastItem-leave-to[data-v-46f379e5]{opacity:0;transform:translate(-30px)}.topbar-container[data-v-efa65484]{position:fixed;top:0;left:0;right:0;z-index:1000}.topbar[data-v-efa65484]{background-color:#ffffff1a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:transform .3s ease-in-out;display:flex;justify-content:center}.topbar-hidden[data-v-efa65484]{transform:translateY(-100%)}.topbar-content[data-v-efa65484]{display:flex;justify-content:space-between;align-items:center;max-width:1200px;width:100%}.pin-button[data-v-efa65484]{background-color:transparent;border:none;cursor:pointer;padding:5px;display:flex;align-items:center;justify-content:center}.pin-button svg[data-v-efa65484]{width:24px;height:24px;transition:transform .3s ease}.pin-button:hover svg[data-v-efa65484]{transform:scale(1.2)}.placeholder[data-v-efa65484]{height:10px}.topbar-container[data-v-efa65484]{position:relative;width:100%}.hover-zone[data-v-efa65484]{opacity:0}.error[data-v-efa65484]{color:red;margin-left:1rem}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000}.hovered{transform:scale(1.05);transition:transform .2s ease-in-out}.active{transform:scale(1.1);transition:transform .2s ease-in-out}.dropdown-shadow[data-v-6c3ea3a5]{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}:root.dark .dropdown-shadow[data-v-6c3ea3a5]{box-shadow:0 4px 6px -1px #ffffff1a,0 2px 4px -1px #ffffff0f}select{width:200px}body{background-color:#fafafa;font-family:sans-serif}.container{margin:4px auto;width:800px}.settings{position:fixed;top:0;right:0;width:500px;background-color:#fff;z-index:1000;overflow-y:auto;height:100%}.slider-container{margin-top:20px}.slider-value{display:inline-block;margin-left:10px;color:#6b7280;font-size:14px}.small-button{padding:.5rem .75rem;font-size:.875rem}.active-tab{font-weight:700}.help-view[data-v-8c1798f3]{min-height:100vh}.big-card[data-v-8c1798f3]{margin-left:auto;margin-right:auto;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:2rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.big-card[data-v-8c1798f3]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.help-sections-container[data-v-8c1798f3]{max-height:70vh;overflow-y:auto;padding-right:1rem}.help-section[data-v-8c1798f3]{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.help-content[data-v-8c1798f3]{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.help-content[data-v-8c1798f3]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar{width:12px}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar-thumb{background:#888;border-radius:10px;border:3px solid #f1f1f1}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar-thumb:hover{background:#555}.help-sections-container[data-v-8c1798f3]{scrollbar-width:thin;scrollbar-color:#888 #f1f1f1}.menu-container{position:relative;display:inline-block}.menu-button{background-color:#007bff;color:#fff;padding:10px;border:none;cursor:pointer;border-radius:4px}.menu-list{position:absolute;background-color:#fff;color:#000;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0003;padding:10px;max-width:500px;z-index:1000}.slide-enter-active,.slide-leave-active{transition:transform .2s}.slide-enter-to,.slide-leave-from{transform:translateY(-10px)}.menu-ul{list-style:none;padding:0;margin:0}.menu-li{cursor:pointer;display:flex;align-items:center;padding:5px}.menu-icon{width:20px;height:20px;margin-right:8px}.menu-command{min-width:200px;text-align:left}.fade-enter-active[data-v-f43216be],.fade-leave-active[data-v-f43216be]{transition:opacity .3s}.fade-enter[data-v-f43216be],.fade-leave-to[data-v-f43216be]{opacity:0}.input-field[data-v-40ced5e7]{width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.5rem .75rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.input-field[data-v-40ced5e7]:focus{border-color:transparent;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.input-field[data-v-40ced5e7]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.heartbeat-text[data-v-40ced5e7]{font-size:24px;animation:pulsate-40ced5e7 1.5s infinite}@keyframes pulsate-40ced5e7{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}to{transform:scale(1);opacity:1}}.list-move[data-v-40ced5e7],.list-enter-active[data-v-40ced5e7],.list-leave-active[data-v-40ced5e7]{transition:all .5s ease}.list-enter-from[data-v-40ced5e7]{transform:translatey(-30px)}.list-leave-to[data-v-40ced5e7]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-40ced5e7]{position:absolute}.bounce-enter-active[data-v-40ced5e7]{animation:bounce-in-40ced5e7 .5s}.bounce-leave-active[data-v-40ced5e7]{animation:bounce-in-40ced5e7 .5s reverse}@keyframes bounce-in-40ced5e7{0%{transform:scale(0)}50%{transform:scale(1.25)}to{transform:scale(1)}}.bg-primary-light[data-v-40ced5e7]{background-color:#0ff}.hover[data-v-40ced5e7]:bg-primary-light:hover{background-color:#7fffd4}.font-bold[data-v-40ced5e7]{font-weight:700}.control-buttons[data-v-2b3580ce]{position:absolute;top:0;right:0;height:100%;display:flex;align-items:center;transform:translate(100%);transition:transform .3s}.group:hover .control-buttons[data-v-2b3580ce]{transform:translate(0)}.control-buttons-inner[data-v-2b3580ce]{display:flex;gap:10px;align-items:center;background-color:#fff;padding:8px;border-radius:0 0 0 8px;box-shadow:0 2px 8px #0000001a}.json-tree-view[data-v-40406ec6]{margin-left:16px}.json-item[data-v-40406ec6]{margin-bottom:4px}.json-key[data-v-40406ec6]{cursor:pointer;display:flex;align-items:center}.toggle-icon[data-v-40406ec6]{margin-right:4px;width:12px}.key[data-v-40406ec6]{font-weight:700;margin-right:4px}.value[data-v-40406ec6]{margin-left:4px}.string[data-v-40406ec6]{color:#0b7285}.number[data-v-40406ec6]{color:#d9480f}.boolean[data-v-40406ec6]{color:#5c940d}.null[data-v-40406ec6]{color:#868e96}.json-nested[data-v-40406ec6]{margin-left:16px;border-left:1px dashed #ccc;padding-left:8px}.json-viewer[data-v-83fc9727]{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:14px;line-height:1.5;color:#333}.collapsible-section[data-v-83fc9727]{cursor:pointer;padding:8px;background-color:#f0f0f0;border-radius:4px;display:flex;align-items:center;transition:background-color .2s}.collapsible-section[data-v-83fc9727]:hover{background-color:#e0e0e0}.toggle-icon[data-v-83fc9727]{margin-right:8px;transition:transform .2s}.json-content[data-v-83fc9727]{margin-top:8px;padding-left:16px}.border-t-primary[data-v-2cb174d6]{border-color:#e2e8f0;border-top-color:currentColor}@keyframes spin-2cb174d6{to{transform:rotate(360deg)}}.animate-spin[data-v-2cb174d6]{animation:spin-2cb174d6 .8s linear infinite}.expand-button[data-v-5c83cd0b]{margin-left:10px;margin-right:10px;background:none;border:none;padding:0;cursor:pointer}.htmljs[data-v-5c83cd0b]{background:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .5s ease-out forwards}details[open] summary~*{animation:slideDown .3s ease-in-out}details summary::marker{display:none}details summary::-webkit-details-marker{display:none}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bounce-enter-active[data-v-f44002af]{animation:bounce-in-f44002af .5s}.bounce-leave-active[data-v-f44002af]{animation:bounce-in-f44002af .5s reverse}@keyframes bounce-in-f44002af{0%{transform:scale(0)}50%{transform:scale(1.25)}to{transform:scale(1)}}.custom-scrollbar[data-v-6657610a]::-webkit-scrollbar{width:.5rem}.custom-scrollbar[data-v-6657610a]::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-6657610a]:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-6657610a]::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-6657610a]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-6657610a]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-6657610a]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.personalities-hover-area[data-v-1ce2c78f]{position:relative;padding-top:10px}.custom-scrollbar[data-v-1ce2c78f]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-1ce2c78f]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-1ce2c78f]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-1ce2c78f]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}.list-move[data-v-1ce2c78f],.list-enter-active[data-v-1ce2c78f],.list-leave-active[data-v-1ce2c78f]{transition:all .5s ease}.list-enter-from[data-v-1ce2c78f]{transform:translatey(-30px)}.list-leave-to[data-v-1ce2c78f]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-1ce2c78f]{position:absolute}@keyframes rolling-ball-d9375d3e{0%{transform:translate(-50px) rotate(0)}25%{transform:translate(0) rotate(90deg)}50%{transform:translate(50px) rotate(180deg)}75%{transform:translate(0) rotate(270deg)}to{transform:translate(-50px) rotate(360deg)}}@keyframes bounce-d9375d3e{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fade-in-up-d9375d3e{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-rolling-ball[data-v-d9375d3e]{animation:rolling-ball-d9375d3e 4s infinite ease-in-out,bounce-d9375d3e 1s infinite ease-in-out}.animate-fade-in-up[data-v-d9375d3e]{animation:fade-in-up-d9375d3e 1.5s ease-out}.floating-button-container[data-v-d9375d3e]{position:fixed;bottom:30px;right:30px;z-index:9999}.floating-button[data-v-d9375d3e]{position:fixed;bottom:30px;right:30px;width:100px;height:100px;border-radius:50%;background-color:#ff4500e6;display:flex;justify-content:center;align-items:center;box-shadow:0 0 30px #ff4500cc;animation:pulse-d9375d3e 1.5s infinite,glow-d9375d3e 2s infinite,wobble-d9375d3e 3s infinite;overflow:hidden;z-index:9999;transition:all .3s ease}.floating-button[data-v-d9375d3e]:hover{transform:scale(1.2) rotate(5deg);background-color:#ff4500}.tooltip[data-v-d9375d3e]{position:absolute;background-color:#000c;color:#fff;padding:8px 12px;border-radius:8px;font-size:16px;font-weight:700;white-space:nowrap;opacity:0;transition:opacity .3s ease,transform .3s ease;pointer-events:none;top:-50px;left:50%;transform:translate(-50%) scale(.9)}.floating-button:hover .tooltip[data-v-d9375d3e]{opacity:1;transform:translate(-50%) scale(1)}@keyframes pulse-d9375d3e{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes glow-d9375d3e{0%{box-shadow:0 0 30px #ff4500cc}50%{box-shadow:0 0 60px #ff4500,0 0 90px #ff450099}to{box-shadow:0 0 30px #ff4500cc}}@keyframes wobble-d9375d3e{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.hidden[data-v-d9375d3e]{display:none}.popup-container[data-v-d504dfc9]{background-color:#fff;color:#333;border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:24px;width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.close-button[data-v-d504dfc9]{position:absolute;top:16px;right:16px;background-color:#3490dc;color:#fff;font-weight:700;padding:8px 16px;border-radius:8px;cursor:pointer;transition:background-color .3s ease}.close-button[data-v-d504dfc9]:hover{background-color:#2779bd}.iframe-content[data-v-d504dfc9]{width:100%;height:80%;border:none;margin-bottom:16px}.checkbox-container[data-v-d504dfc9]{display:flex;align-items:center;justify-content:center}.styled-checkbox[data-v-d504dfc9]{width:24px;height:24px;accent-color:#3490dc;cursor:pointer}.checkbox-label[data-v-d504dfc9]{margin-left:8px;font-size:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fade-enter-active[data-v-d504dfc9],.fade-leave-active[data-v-d504dfc9]{transition:opacity .5s}.fade-enter[data-v-d504dfc9],.fade-leave-to[data-v-d504dfc9]{opacity:0}.glow-effect[data-v-85f3dede]{box-shadow:0 0 5px 2px #00ffffb3;animation:glow-85f3dede 1.5s ease-in-out infinite alternate}@keyframes glow-85f3dede{0%{box-shadow:0 0 5px 2px #00ffffb3}to{box-shadow:0 0 20px 2px #00ffffb3}}.changelog-popup-overlay[data-v-f9c6a52e]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.changelog-popup[data-v-f9c6a52e]{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.changelog-header[data-v-f9c6a52e]{padding:1rem;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.changelog-content[data-v-f9c6a52e]{padding:1rem;overflow-y:auto;flex-grow:1}.changelog-footer[data-v-f9c6a52e]{padding:1rem;border-top:1px solid #eee;text-align:right}.understood-button[data-v-f9c6a52e]{background:#4caf50;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.close-button[data-v-f9c6a52e]{background:none;border:none;font-size:1.5rem;cursor:pointer}.markdown-body[data-v-f9c6a52e]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body h1[data-v-f9c6a52e],.markdown-body h2[data-v-f9c6a52e],.markdown-body h3[data-v-f9c6a52e],.markdown-body h4[data-v-f9c6a52e],.markdown-body h5[data-v-f9c6a52e],.markdown-body h6[data-v-f9c6a52e]{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1[data-v-f9c6a52e]{font-size:2em}.markdown-body h2[data-v-f9c6a52e]{font-size:1.5em}.markdown-body h3[data-v-f9c6a52e]{font-size:1.25em}.markdown-body p[data-v-f9c6a52e]{margin-top:0;margin-bottom:16px}.markdown-body ul[data-v-f9c6a52e],.markdown-body ol[data-v-f9c6a52e]{padding-left:2em;margin-top:0;margin-bottom:16px}.markdown-body code[data-v-f9c6a52e]{padding:.2em .4em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px}.markdown-body pre[data-v-f9c6a52e]{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body blockquote[data-v-f9c6a52e]{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0}.personalities-container[data-v-c8d5cfb8]{position:relative}.skills-lib-icon[data-v-c8d5cfb8]{position:absolute;top:-2px;right:-2px;z-index:10;font-size:5px;width:2px;height:2px}.skills-lib-icon i[data-v-c8d5cfb8]{width:2px;height:2px}@keyframes giggle-c8d5cfb8{0%,to{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(-5px) rotate(-10deg) scale(1.05)}50%{transform:translate(5px) rotate(10deg) scale(.95)}75%{transform:translate(-5px) rotate(-10deg) scale(1.05)}}.animate-giggle[data-v-c8d5cfb8]{animation:giggle-c8d5cfb8 1.5s infinite ease-in-out}.custom-scrollbar[data-v-c8d5cfb8]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-c8d5cfb8]::-webkit-scrollbar{width:8px}.custom-scrollbar[data-v-c8d5cfb8]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-c8d5cfb8]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}@keyframes custom-pulse-c8d5cfb8{0%,to{box-shadow:0 0 #3b82f680}50%{box-shadow:0 0 0 15px #3b82f600}}.animate-pulse[data-v-c8d5cfb8]{animation:custom-pulse-c8d5cfb8 2s infinite}.slide-right-enter-active[data-v-c8d5cfb8],.slide-right-leave-active[data-v-c8d5cfb8]{transition:transform .3s ease}.slide-right-enter[data-v-c8d5cfb8],.slide-right-leave-to[data-v-c8d5cfb8]{transform:translate(-100%)}.slide-left-enter-active[data-v-c8d5cfb8],.slide-left-leave-active[data-v-c8d5cfb8]{transition:transform .3s ease}.slide-left-enter[data-v-c8d5cfb8],.slide-left-leave-to[data-v-c8d5cfb8]{transform:translate(100%)}.fade-and-fly-enter-active[data-v-c8d5cfb8]{animation:fade-and-fly-enter-c8d5cfb8 .5s ease}.fade-and-fly-leave-active[data-v-c8d5cfb8]{animation:fade-and-fly-leave-c8d5cfb8 .5s ease}@keyframes fade-and-fly-enter-c8d5cfb8{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-and-fly-leave-c8d5cfb8{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(1.2)}}.list-move[data-v-c8d5cfb8],.list-enter-active[data-v-c8d5cfb8],.list-leave-active[data-v-c8d5cfb8]{transition:all .5s ease}.list-enter-from[data-v-c8d5cfb8]{transform:translatey(-30px)}.list-leave-to[data-v-c8d5cfb8]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-c8d5cfb8]{position:absolute}@keyframes float-c8d5cfb8{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float[data-v-c8d5cfb8]{animation:float-c8d5cfb8 linear infinite}@keyframes star-move-c8d5cfb8{0%{transform:translate(0) rotate(0)}50%{transform:translate(20px,20px) rotate(180deg)}to{transform:translate(0) rotate(360deg)}}.animate-star[data-v-c8d5cfb8]{animation:star-move-c8d5cfb8 linear infinite}@keyframes fall-c8d5cfb8{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(calc(100vh + 20px)) rotate(360deg);opacity:0}}.animate-fall[data-v-c8d5cfb8]{animation:fall-c8d5cfb8 linear infinite}@keyframes glow-c8d5cfb8{0%,to{text-shadow:0 0 5px rgba(66,153,225,.5),0 0 10px rgba(66,153,225,.5)}50%{text-shadow:0 0 20px rgba(66,153,225,.8),0 0 30px rgba(66,153,225,.8)}}.animate-glow[data-v-c8d5cfb8]{animation:glow-c8d5cfb8 2s ease-in-out infinite}@media (prefers-color-scheme: dark){@keyframes glow-c8d5cfb8{0%,to{text-shadow:0 0 5px rgba(147,197,253,.5),0 0 10px rgba(147,197,253,.5)}50%{text-shadow:0 0 20px rgba(147,197,253,.8),0 0 30px rgba(147,197,253,.8)}0%,to{text-shadow:0 0 5px rgba(147,197,253,.5),0 0 10px rgba(147,197,253,.5)}50%{text-shadow:0 0 20px rgba(147,197,253,.8),0 0 30px rgba(147,197,253,.8)}}}@keyframes roll-c8d5cfb8{0%{transform:translate(-50%) rotate(0)}to{transform:translate(50%) rotate(360deg)}}.animate-roll[data-v-c8d5cfb8]{animation:roll-c8d5cfb8 4s linear infinite}.toolbar[data-v-c8d5cfb8]{position:relative;width:100%}.toolbar-container[data-v-c8d5cfb8]{display:flex;height:2.5rem;align-items:center}.toolbar-button[data-v-c8d5cfb8]{cursor:pointer;border-style:none;background-color:transparent;padding:.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.toolbar-button[data-v-c8d5cfb8]:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.menu-container[data-v-c8d5cfb8]{position:relative}.expandable-menu[data-v-c8d5cfb8]{position:absolute;top:100%;left:.625rem;flex-direction:column;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.menu-container:hover .expandable-menu[data-v-c8d5cfb8],.menu-visible[data-v-c8d5cfb8]{display:flex}.menu-item[data-v-c8d5cfb8]{background:none;border:none;cursor:pointer;padding:8px;color:#333;transition:background-color .3s}.menu-item[data-v-c8d5cfb8]:hover{background-color:#f0f0f0}.dot[data-v-c8d5cfb8]{width:10px;height:10px;border-radius:50%}.dot-green[data-v-c8d5cfb8]{background-color:green}.dot-red[data-v-c8d5cfb8]{background-color:red}.animate-pulse[data-v-c8d5cfb8]{animation:pulse-c8d5cfb8 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-c8d5cfb8{0%,to{opacity:1}50%{opacity:.7}}.logo-container[data-v-c8d5cfb8]{position:relative;width:48px;height:48px}.logo-image[data-v-c8d5cfb8]{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}@keyframes bounce-c8d5cfb8{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce[data-v-c8d5cfb8]{animation:bounce-c8d5cfb8 1s infinite}@keyframes roll-and-bounce-c8d5cfb8{0%,to{transform:translate(0) rotate(0)}45%{transform:translate(100px) rotate(360deg)}50%{transform:translate(90px) rotate(390deg)}55%{transform:translate(100px) rotate(360deg)}95%{transform:translate(0) rotate(0)}}@keyframes spin-c8d5cfb8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--baklava-control-color-primary: #e28b46;--baklava-control-color-error: #d00000;--baklava-control-color-background: #2c3748;--baklava-control-color-foreground: white;--baklava-control-color-hover: #455670;--baklava-control-color-active: #556986;--baklava-control-color-disabled-foreground: #666c75;--baklava-control-border-radius: 3px;--baklava-sidebar-color-background: #1b202c;--baklava-sidebar-color-foreground: white;--baklava-node-color-background: #1b202c;--baklava-node-color-foreground: white;--baklava-node-color-hover: #e28c4677;--baklava-node-color-selected: var(--baklava-control-color-primary);--baklava-node-color-resize-handle: var(--baklava-control-color-background);--baklava-node-title-color-background: #151a24;--baklava-node-title-color-foreground: white;--baklava-group-node-title-color-background: #215636;--baklava-group-node-title-color-foreground: white;--baklava-node-interface-port-tooltip-color-foreground: var(--baklava-control-color-primary);--baklava-node-interface-port-tooltip-color-background: var(--baklava-editor-background-pattern-black);--baklava-node-border-radius: 6px;--baklava-color-connection-default: #737f96;--baklava-color-connection-allowed: #48bc79;--baklava-color-connection-forbidden: #bc4848;--baklava-editor-background-pattern-default: #202b3c;--baklava-editor-background-pattern-line: #263140;--baklava-editor-background-pattern-black: #263140;--baklava-context-menu-background: #1b202c;--baklava-context-menu-shadow: 0 0 8px rgba(0, 0, 0, .65);--baklava-toolbar-background: #1b202caa;--baklava-toolbar-foreground: white;--baklava-node-palette-background: #1b202caa;--baklava-node-palette-foreground: white;--baklava-selectionbox-color-border: var(--baklava-node-color-background);--baklava-selectionbox-color-background: var(--baklava-node-color-hover);--baklava-visual-transition: .1s linear}.baklava-button{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);transition:background-color var(--baklava-visual-transition);border:none;padding:.45em .35em;border-radius:var(--baklava-control-border-radius);font-size:inherit;cursor:pointer;overflow-x:hidden}.baklava-button:hover{background-color:var(--baklava-control-color-hover)}.baklava-button:active{background-color:var(--baklava-control-color-primary)}.baklava-button.--block{width:100%}.baklava-checkbox{display:flex;padding:.35em 0;cursor:pointer;overflow-x:hidden;align-items:center}.baklava-checkbox .__checkmark-container{display:flex;background-color:var(--baklava-control-color-background);border-radius:var(--baklava-control-border-radius);transition:background-color var(--baklava-visual-transition);width:18px;height:18px}.baklava-checkbox:hover .__checkmark-container{background-color:var(--baklava-control-color-hover)}.baklava-checkbox:active .__checkmark-container{background-color:var(--baklava-control-color-active)}.baklava-checkbox .__checkmark{stroke-dasharray:15;stroke-dashoffset:15;stroke:var(--baklava-control-color-foreground);stroke-width:2px;fill:none;transition:stroke-dashoffset var(--baklava-visual-transition)}.baklava-checkbox.--checked .__checkmark{stroke-dashoffset:0}.baklava-checkbox.--checked .__checkmark-container{background-color:var(--baklava-control-color-primary)}.baklava-checkbox .__label{margin-left:.5rem}.baklava-context-menu{color:var(--baklava-control-color-foreground);position:absolute;display:inline-block;z-index:100;background-color:var(--baklava-context-menu-background);box-shadow:var(--baklava-context-menu-shadow);border-radius:0 0 var(--baklava-control-border-radius) var(--baklava-control-border-radius);min-width:6rem;width:-moz-max-content;width:max-content}.baklava-context-menu>.item{display:flex;align-items:center;padding:.35em 1em;transition:background .05s linear;position:relative}.baklava-context-menu>.item>.__label{flex:1 1 auto}.baklava-context-menu>.item>.__submenu-icon{margin-left:.75rem}.baklava-context-menu>.item.--disabled{color:var(--baklava-control-color-hover)}.baklava-context-menu>.item:not(.--header):not(.--active):not(.--disabled):hover{background:var(--baklava-control-color-primary)}.baklava-context-menu>.item.--active{background:var(--baklava-control-color-primary)}.baklava-context-menu.--nested{left:100%;top:0}.baklava-context-menu.--flipped-x.--nested{left:unset;right:100%}.baklava-context-menu.--flipped-y.--nested{top:unset;bottom:0}.baklava-context-menu>.divider{margin:.35em 0;height:1px;background-color:var(--baklava-control-color-hover)}.baklava-icon{display:block;height:100%}.baklava-icon.--clickable{cursor:pointer;transition:color var(--baklava-visual-transition)}.baklava-icon.--clickable:hover{color:var(--baklava-control-color-primary)}.baklava-input{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);caret-color:var(--baklava-control-color-primary);border:none;border-radius:var(--baklava-control-border-radius);padding:.45em .75em;width:100%;transition:background-color var(--baklava-visual-transition);font-size:inherit;font:inherit}.baklava-input:hover{background-color:var(--baklava-control-color-hover)}.baklava-input:active{background-color:var(--baklava-control-color-active)}.baklava-input:focus-visible{outline:1px solid var(--baklava-control-color-primary)}.baklava-input[type=number]::-webkit-inner-spin-button,.baklava-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.baklava-input.--invalid{box-shadow:0 0 2px 2px var(--baklava-control-color-error)}.baklava-num-input{background:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);border-radius:var(--baklava-control-border-radius);width:100%;display:grid;grid-template-columns:20px 1fr 20px}.baklava-num-input>.__button{display:flex;flex:0 0 auto;width:20px;justify-content:center;align-items:center;transition:background var(--baklava-visual-transition);cursor:pointer}.baklava-num-input>.__button:hover{background-color:var(--baklava-control-color-hover)}.baklava-num-input>.__button:active{background-color:var(--baklava-control-color-active)}.baklava-num-input>.__button.--dec{grid-area:1/1/span 1/span 1}.baklava-num-input>.__button.--dec>svg{transform:rotate(90deg)}.baklava-num-input>.__button.--inc{grid-area:1/3/span 1/span 1}.baklava-num-input>.__button.--inc>svg{transform:rotate(-90deg)}.baklava-num-input>.__button path{stroke:var(--baklava-control-color-foreground);fill:var(--baklava-control-color-foreground)}.baklava-num-input>.__content{grid-area:1/2/span 1/span 1;display:inline-flex;cursor:pointer;max-width:100%;min-width:0;align-items:center;transition:background-color var(--baklava-visual-transition)}.baklava-num-input>.__content:hover{background-color:var(--baklava-control-color-hover)}.baklava-num-input>.__content:active{background-color:var(--baklava-control-color-active)}.baklava-num-input>.__content>.__label,.baklava-num-input>.__content>.__value{margin:.35em 0;padding:0 .5em}.baklava-num-input>.__content>.__label{flex:1;min-width:0;overflow:hidden}.baklava-num-input>.__content>.__value{text-align:right}.baklava-num-input>.__content>input{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);caret-color:var(--baklava-control-color-primary);padding:.35em;width:100%}.baklava-select{width:100%;position:relative;color:var(--baklava-control-color-foreground)}.baklava-select.--open>.__selected{border-bottom-left-radius:0;border-bottom-right-radius:0}.baklava-select.--open>.__selected>.__icon{transform:rotate(180deg)}.baklava-select>.__selected{background-color:var(--baklava-control-color-background);padding:.35em .75em;border-radius:var(--baklava-control-border-radius);transition:background var(--baklava-visual-transition);min-height:1.7em;display:flex;align-items:center;cursor:pointer}.baklava-select>.__selected:hover{background:var(--baklava-control-color-hover)}.baklava-select>.__selected:active{background:var(--baklava-control-color-active)}.baklava-select>.__selected>.__text{flex:1 0 auto;flex-basis:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.baklava-select>.__selected>.__icon{flex:0 0 auto;display:flex;justify-content:center;align-items:center;transition:transform .25s ease;width:18px;height:18px}.baklava-select>.__selected>.__icon path{stroke:var(--baklava-control-color-foreground);fill:var(--baklava-control-color-foreground)}.baklava-select>.__dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;background-color:var(--baklava-context-menu-background);filter:drop-shadow(0 0 4px black);border-radius:0 0 var(--baklava-control-border-radius) var(--baklava-control-border-radius);max-height:15em;overflow-y:scroll}.baklava-select>.__dropdown::-webkit-scrollbar{width:0px;background:transparent}.baklava-select>.__dropdown>.item{padding:.35em .35em .35em 1em;transition:background .05s linear}.baklava-select>.__dropdown>.item:not(.--header):not(.--active){cursor:pointer}.baklava-select>.__dropdown>.item:not(.--header):not(.--active):hover{background:var(--baklava-control-color-hover)}.baklava-select>.__dropdown>.item.--active{background:var(--baklava-control-color-primary)}.baklava-select>.__dropdown>.item.--header{color:var(--baklava-control-color-disabled-foreground);border-bottom:1px solid var(--baklava-control-color-disabled-foreground);padding:.5em .35em .5em 1em}.baklava-slider{background:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);border-radius:var(--baklava-control-border-radius);position:relative;cursor:pointer}.baklava-slider>.__content{display:flex;position:relative}.baklava-slider>.__content>.__label,.baklava-slider>.__content>.__value{flex:1 1 auto;margin:.35em 0;padding:0 .5em;text-overflow:ellipsis}.baklava-slider>.__content>.__value{text-align:right}.baklava-slider>.__content>input{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);caret-color:var(--baklava-control-color-primary);padding:.35em;width:100%}.baklava-slider>.__slider{position:absolute;top:0;bottom:0;left:0;background-color:var(--baklava-control-color-primary);border-radius:var(--baklava-control-border-radius)}.baklava-connection{stroke:var(--baklava-color-connection-default);stroke-width:2px;fill:none}.baklava-connection.--temporary{stroke-width:4px;stroke-dasharray:5 5;stroke-dashoffset:0;animation:dash 1s linear infinite;transform:translateY(-1px)}@keyframes dash{to{stroke-dashoffset:20}}.baklava-connection.--allowed{stroke:var(--baklava-color-connection-allowed)}.baklava-connection.--forbidden{stroke:var(--baklava-color-connection-forbidden)}.baklava-minimap{position:absolute;height:15%;width:15%;min-width:150px;max-width:90%;top:20px;right:20px;z-index:900}.baklava-editor{width:100%;height:100%;position:relative;overflow:hidden;outline:none!important;font-family:Lato,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:15px;touch-action:none}.baklava-editor .background{background-color:var(--baklava-editor-background-pattern-default);background-image:linear-gradient(var(--baklava-editor-background-pattern-black) 2px,transparent 2px),linear-gradient(90deg,var(--baklava-editor-background-pattern-black) 2px,transparent 2px),linear-gradient(var(--baklava-editor-background-pattern-line) 1px,transparent 1px),linear-gradient(90deg,var(--baklava-editor-background-pattern-line) 1px,transparent 1px);background-repeat:repeat;width:100%;height:100%;pointer-events:none!important}.baklava-editor .selection-box{position:absolute;border:1px solid var(--baklava-selectionbox-color-border);background-color:var(--baklava-selectionbox-color-background);pointer-events:none;opacity:.5}.baklava-editor.--start-selection-box{cursor:crosshair}.baklava-editor *:not(input):not(textarea){user-select:none;-moz-user-select:none;-webkit-user-select:none;touch-action:none}.baklava-editor .input-user-select{user-select:auto;-moz-user-select:auto;-webkit-user-select:auto}.baklava-editor *,.baklava-editor *:after,.baklava-editor *:before{box-sizing:border-box}.baklava-editor.--temporary-connection{cursor:crosshair}.baklava-editor .connections-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none!important}.baklava-editor .node-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.baklava-editor .node-container *{pointer-events:all}.baklava-ignore-mouse *{pointer-events:none!important}.baklava-ignore-mouse .__port{pointer-events:all!important}.baklava-node-interface{padding:.25em 0;position:relative}.baklava-node-interface .__port{position:absolute;width:10px;height:10px;background:#fff;border-radius:50%;top:calc(50% - 5px);cursor:crosshair}.baklava-node-interface .__port.--selected{outline:2px var(--baklava-color-connection-default) solid;outline-offset:4px}.baklava-node-interface.--input{text-align:left;padding-left:.5em}.baklava-node-interface.--input .__port{left:-1.1em}.baklava-node-interface.--output{text-align:right;padding-right:.5em}.baklava-node-interface.--output .__port{right:-1.1em}.baklava-node-interface .__tooltip{position:absolute;left:5px;top:15px;transform:translate(-50%);background:var(--baklava-node-interface-port-tooltip-color-background);color:var(--baklava-node-interface-port-tooltip-color-foreground);padding:.25em .5em;text-align:center;z-index:2}.baklava-node-palette{position:absolute;left:0;top:60px;width:250px;height:calc(100% - 60px);z-index:3;padding:2rem;overflow-y:auto;background:var(--baklava-node-palette-background);color:var(--baklava-node-palette-foreground)}.baklava-node-palette h1{margin-top:2rem}.baklava-node.--palette{position:unset;margin:1rem 0;cursor:grab}.baklava-node.--palette:first-child{margin-top:0}.baklava-node.--palette .__title{padding:.5rem;border-radius:var(--baklava-node-border-radius)}.baklava-dragged-node{position:absolute;width:calc(250px - 4rem);height:40px;z-index:4;pointer-events:none}.baklava-node{background:var(--baklava-node-color-background);color:var(--baklava-node-color-foreground);border:1px solid transparent;border-radius:var(--baklava-node-border-radius);position:absolute;box-shadow:0 0 4px #000c;transition:border-color var(--baklava-visual-transition),box-shadow var(--baklava-visual-transition);width:var(--width)}.baklava-node:hover{border-color:var(--baklava-node-color-hover)}.baklava-node:hover .__resize-handle:after{opacity:1}.baklava-node.--selected{z-index:5;border-color:var(--baklava-node-color-selected)}.baklava-node.--dragging{box-shadow:0 0 12px #000c}.baklava-node.--dragging>.__title{cursor:grabbing}.baklava-node>.__title{display:flex;background:var(--baklava-node-title-color-background);color:var(--baklava-node-title-color-foreground);padding:.4em .75em;border-radius:var(--baklava-node-border-radius) var(--baklava-node-border-radius) 0 0;cursor:grab}.baklava-node>.__title>*:first-child{flex-grow:1}.baklava-node>.__title>.__title-label{pointer-events:none}.baklava-node>.__title>.__menu{position:relative;cursor:initial}.baklava-node[data-node-type^=__baklava_]>.__title{background:var(--baklava-group-node-title-color-background);color:var(--baklava-group-node-title-color-foreground)}.baklava-node>.__content{padding:.75em}.baklava-node>.__content.--reverse-y{display:flex;flex-direction:column-reverse}.baklava-node>.__content>div>div{margin:.5em 0}.baklava-node.--two-column>.__content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;grid-template-areas:". ." ". ."}.baklava-node.--two-column>.__content>.__inputs{grid-row:1;grid-column:1}.baklava-node.--two-column>.__content>.__outputs{grid-row:1;grid-column:2}.baklava-node .__resize-handle{position:absolute;right:0;bottom:0;width:1rem;height:1rem;transform:translate(50%);cursor:ew-resize}.baklava-node .__resize-handle:after{content:"";position:absolute;bottom:0;left:-.5rem;width:1rem;height:1rem;opacity:0;border-bottom-right-radius:var(--baklava-node-border-radius);transition:opacity var(--baklava-visual-transition);background:linear-gradient(-45deg,transparent 10%,var(--baklava-node-color-resize-handle) 10%,var(--baklava-node-color-resize-handle) 15%,transparent 15%,transparent 30%,var(--baklava-node-color-resize-handle) 30%,var(--baklava-node-color-resize-handle) 35%,transparent 35%,transparent 50%,var(--baklava-node-color-resize-handle) 50%,var(--baklava-node-color-resize-handle) 55%,transparent 55%)}.baklava-sidebar{position:absolute;height:100%;width:25%;min-width:300px;max-width:90%;top:0;right:0;z-index:1000;background-color:var(--baklava-sidebar-color-background);color:var(--baklava-sidebar-color-foreground);box-shadow:none;overflow-x:hidden;padding:1em;transform:translate(100%);transition:transform .5s;display:flex;flex-direction:column}.baklava-sidebar.--open{transform:translate(0);box-shadow:0 0 15px #000}.baklava-sidebar .__resizer{position:absolute;left:0;top:0;height:100%;width:4px;cursor:col-resize}.baklava-sidebar .__header{display:flex;align-items:center}.baklava-sidebar .__header .__node-name{margin-left:.5rem}.baklava-sidebar .__close{font-size:2em;border:none;background:none;color:inherit;cursor:pointer}.baklava-sidebar .__interface{margin:.5em 0}.baklava-toolbar{position:absolute;left:0;top:0;width:100%;height:60px;z-index:3;padding:.5rem 2rem;background:var(--baklava-toolbar-background);color:var(--baklava-toolbar-foreground);display:flex;align-items:center}.baklava-toolbar-entry{margin-left:.5rem;margin-right:.5rem}.baklava-toolbar-button{color:var(--baklava-toolbar-foreground);background:none;border:none;transition:color var(--baklava-visual-transition)}.baklava-toolbar-button:not([disabled]){cursor:pointer}.baklava-toolbar-button:hover:not([disabled]){color:var(--baklava-control-color-primary)}.baklava-toolbar-button[disabled]{color:var(--baklava-control-color-disabled-foreground)}.slide-fade-enter-active,.slide-fade-leave-active{transition:all .1s ease-out}.slide-fade-enter-from,.slide-fade-leave-to{transform:translateY(5px);opacity:0}.fade-enter-active,.fade-leave-active{transition:opacity .1s ease-out!important}.fade-enter-from,.fade-leave-to{opacity:0}.loading-indicator[data-v-f8c39e0b]{display:flex;justify-content:center;align-items:center;height:100px;font-size:1.2em;color:#666}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(63 131 248 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(63 131 248 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Outfit,PTSans,Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.tooltip-arrow,.tooltip-arrow:before{position:absolute;width:8px;height:8px;background:inherit}.tooltip-arrow{visibility:hidden}.tooltip-arrow:before{content:"";visibility:visible;transform:rotate(45deg)}[data-tooltip-style^=light]+.tooltip>.tooltip-arrow:before{border-style:solid;border-color:#e5e7eb}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=top]>.tooltip-arrow:before{border-bottom-width:1px;border-right-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=right]>.tooltip-arrow:before{border-bottom-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=bottom]>.tooltip-arrow:before{border-top-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=left]>.tooltip-arrow:before{border-top-width:1px;border-right-width:1px}.tooltip[data-popper-placement^=top]>.tooltip-arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.tooltip-arrow{top:-4px}.tooltip[data-popper-placement^=left]>.tooltip-arrow{right:-4px}.tooltip[data-popper-placement^=right]>.tooltip-arrow{left:-4px}.tooltip.invisible>.tooltip-arrow:before{visibility:hidden}[data-popper-arrow],[data-popper-arrow]:before{position:absolute;width:8px;height:8px;background:inherit}[data-popper-arrow]{visibility:hidden}[data-popper-arrow]:before{content:"";visibility:visible;transform:rotate(45deg)}[data-popper-arrow]:after{content:"";visibility:visible;transform:rotate(45deg);position:absolute;width:9px;height:9px;background:inherit}[role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:#e5e7eb}.dark [role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:#4b5563}[role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:#e5e7eb}.dark [role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:#4b5563}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:before{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:after{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:before{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:after{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:before{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:after{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:before{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:after{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]{bottom:-5px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]{top:-5px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]{right:-5px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]{left:-5px}[role=tooltip].invisible>[data-popper-arrow]:before{visibility:hidden}[role=tooltip].invisible>[data-popper-arrow]:after{visibility:hidden}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #1C64F2;--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);border-color:#1c64f2}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}select:not([size]){background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:.75em .75em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#1c64f2;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #1C64F2;--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)}[type=checkbox]:checked,[type=radio]:checked,.dark [type=checkbox]:checked,.dark [type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:.55em .55em;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-repeat:no-repeat;background-size:.55em .55em;-webkit-print-color-adjust:exact;print-color-adjust:exact}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}.dark [type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-color:currentColor;border-color:transparent;background-position:center;background-repeat:no-repeat;background-size:.55em .55em;-webkit-print-color-adjust:exact;print-color-adjust:exact}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px auto inherit}input[type=file]::file-selector-button{color:#fff;background:#1f2937;border:0;font-weight:500;font-size:.875rem;cursor:pointer;padding:.625rem 1rem .625rem 2rem;margin-inline-start:-1rem;margin-inline-end:1rem}input[type=file]::file-selector-button:hover{background:#374151}.dark input[type=file]::file-selector-button{color:#fff;background:#4b5563}.dark input[type=file]::file-selector-button:hover{background:#6b7280}input[type=range]::-webkit-slider-thumb{height:1.25rem;width:1.25rem;background:#1c64f2;border-radius:9999px;border:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;cursor:pointer}input[type=range]:disabled::-webkit-slider-thumb{background:#9ca3af}.dark input[type=range]:disabled::-webkit-slider-thumb{background:#6b7280}input[type=range]:focus::-webkit-slider-thumb{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1px;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}input[type=range]::-moz-range-thumb{height:1.25rem;width:1.25rem;background:#1c64f2;border-radius:9999px;border:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;cursor:pointer}input[type=range]:disabled::-moz-range-thumb{background:#9ca3af}.dark input[type=range]:disabled::-moz-range-thumb{background:#6b7280}input[type=range]::-moz-range-progress{background:#3f83f8}input[type=range]::-ms-fill-lower{background:#3f83f8}.toggle-bg:after{content:"";position:absolute;top:.125rem;left:.125rem;background:#fff;border-color:#d1d5db;border-width:1px;border-radius:9999px;height:1.25rem;width:1.25rem;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.15s;box-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}input:checked+.toggle-bg:after{transform:translate(100%);border-color:#fff}input:checked+.toggle-bg{background:#1c64f2;border-color:#1c64f2}*{scrollbar-color:initial;scrollbar-width:initial}body{min-height:100vh;background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #e0eaff var(--tw-gradient-from-position);--tw-gradient-to: rgb(224 234 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #f0e6ff var(--tw-gradient-to-position)}body:is(.dark *){background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #0f2647 var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 38 71 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1e1b4b var(--tw-gradient-to-position)}html{scroll-behavior:smooth}body{font-family:Roboto,sans-serif}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-bottom-1{bottom:-.25rem}.-bottom-1\.5{bottom:-.375rem}.-bottom-2{bottom:-.5rem}.-bottom-4{bottom:-1rem}.-left-1\.5{left:-.375rem}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.bottom-20{bottom:5rem}.bottom-4{bottom:1rem}.bottom-5{bottom:1.25rem}.bottom-6{bottom:1.5rem}.bottom-\[60px\]{bottom:60px}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-20{left:5rem}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-20{right:5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-20{top:5rem}.top-3{top:.75rem}.top-full{top:100%}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2 / span 2}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.-m-1{margin:-.25rem}.-m-2{margin:-.5rem}.-m-4{margin:-1rem}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-4{margin:1rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.-my-1\.5{margin-top:-.375rem;margin-bottom:-.375rem}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.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}.my-8{margin-top:2rem;margin-bottom:2rem}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-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-36{height:9rem}.h-4{height:1rem}.h-4\/5{height:80%}.h-48{height:12rem}.h-5{height:1.25rem}.h-5\/6{height:83.333333%}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[200px\]{height:200px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-auto{height:auto}.h-full{height:100%}.h-modal{height:calc(100% - 2rem)}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[200px\]{max-height:200px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[500px\]{min-height:500px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[15rem\]{width:15rem}.w-\[16rem\]{width:16rem}.w-\[300px\]{width:300px}.w-\[500px\]{width:500px}.w-\[this-is\\\\\]{width:this-is\\}.w-\[this-is\]{width:this-is}.w-\[weird-and-invalid\]{width:weird-and-invalid}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[24rem\]{min-width:24rem}.min-w-\[300px\]{min-width:300px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.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-\[24rem\]{max-width:24rem}.max-w-\[300px\]{max-width:300px}.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-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.origin-left{transform-origin:left}.origin-top-right{transform-origin:top right}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-0{--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform,.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x: pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x: pan-left;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-right{--tw-pan-x: pan-right;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y: pan-y;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-up{--tw-pan-y: pan-up;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y: pan-down;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pinch-zoom{--tw-pinch-zoom: pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-proximity{--tw-scroll-snap-strictness: proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.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-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[200px\,1fr\]{grid-template-columns:200px 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-baseline{place-content:baseline}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-baseline{place-items:baseline}.place-items-stretch{place-items:stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-baseline{align-content:baseline}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.-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-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-1px * var(--tw-space-x-reverse));margin-left:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.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-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-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-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-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-ellipsis,.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.\!rounded-full{border-radius:9999px!important}.rounded{border-radius:.25rem}.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-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-t-2{border-top-width:2px}.border-t-4{border-top-width:4px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-bg-dark{border-color:var(--color-bg-dark)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(195 221 253 / var(--tw-border-opacity))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}.border-blue-700{--tw-border-opacity: 1;border-color:rgb(26 86 219 / var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity))}.border-green-600{--tw-border-opacity: 1;border-color:rgb(5 122 85 / var(--tw-border-opacity))}.border-green-700{--tw-border-opacity: 1;border-color:rgb(4 108 78 / var(--tw-border-opacity))}.border-pink-600{--tw-border-opacity: 1;border-color:rgb(214 31 105 / var(--tw-border-opacity))}.border-pink-700{--tw-border-opacity: 1;border-color:rgb(191 18 93 / var(--tw-border-opacity))}.border-primary{border-color:var(--color-primary)}.border-primary-light{border-color:var(--color-primary-light)}.border-purple-600{--tw-border-opacity: 1;border-color:rgb(126 58 242 / var(--tw-border-opacity))}.border-purple-700{--tw-border-opacity: 1;border-color:rgb(108 43 217 / var(--tw-border-opacity))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(251 213 213 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(240 82 82 / var(--tw-border-opacity))}.border-red-600{--tw-border-opacity: 1;border-color:rgb(224 36 36 / var(--tw-border-opacity))}.border-red-700{--tw-border-opacity: 1;border-color:rgb(200 30 30 / var(--tw-border-opacity))}.border-secondary{border-color:var(--color-secondary)}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(227 160 8 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(194 120 3 / var(--tw-border-opacity))}.border-t-primary{border-top-color:var(--color-primary)}.bg-\[rgb\(255\,0\,0\)\]{--tw-bg-opacity: 1;background-color:rgb(255 0 0 / var(--tw-bg-opacity))}.bg-accent{background-color:var(--color-accent)}.bg-bg-dark-tone-panel{background-color:var(--color-bg-dark-tone-panel)}.bg-bg-light{background-color:var(--color-bg-light)}.bg-bg-light-tone{background-color:var(--color-bg-light-tone)}.bg-bg-light-tone-panel{background-color:var(--color-bg-light-tone-panel)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/70{background-color:#000000b3}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.bg-blue-700{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(222 247 236 / var(--tw-bg-opacity))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(188 240 218 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(49 196 141 / var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(243 250 247 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(14 159 110 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.bg-green-700{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(229 237 255 / var(--tw-bg-opacity))}.bg-indigo-200{--tw-bg-opacity: 1;background-color:rgb(205 219 254 / var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(104 117 245 / var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(88 80 236 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(254 236 220 / var(--tw-bg-opacity))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 232 243 / var(--tw-bg-opacity))}.bg-pink-200{--tw-bg-opacity: 1;background-color:rgb(250 209 232 / var(--tw-bg-opacity))}.bg-pink-700{--tw-bg-opacity: 1;background-color:rgb(191 18 93 / var(--tw-bg-opacity))}.bg-primary{background-color:var(--color-primary)}.bg-primary-light{background-color:var(--color-primary-light)}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(237 235 254 / var(--tw-bg-opacity))}.bg-purple-200{--tw-bg-opacity: 1;background-color:rgb(220 215 254 / var(--tw-bg-opacity))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(144 97 249 / var(--tw-bg-opacity))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(126 58 242 / var(--tw-bg-opacity))}.bg-purple-700{--tw-bg-opacity: 1;background-color:rgb(108 43 217 / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(253 232 232 / var(--tw-bg-opacity))}.bg-red-200{--tw-bg-opacity: 1;background-color:rgb(251 213 213 / var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(249 128 128 / var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(253 242 242 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(240 82 82 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/30{background-color:#ffffff4d}.bg-white\/50{background-color:#ffffff80}.bg-white\/95{background-color:#fffffff2}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(253 246 178 / var(--tw-bg-opacity))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(227 160 8 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(194 120 3 / var(--tw-bg-opacity))}.bg-opacity-10{--tw-bg-opacity: .1}.bg-opacity-5{--tw-bg-opacity: .05}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.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-bg-light{--tw-gradient-from: var(--color-bg-light) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3F83F8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/10{--tw-gradient-from: rgb(63 131 248 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-400{--tw-gradient-from: #31C48D var(--tw-gradient-from-position);--tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #0E9F6E var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #5850EC var(--tw-gradient-from-position);--tw-gradient-to: rgb(88 80 236 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-lime-500{--tw-gradient-from: #84cc16 var(--tw-gradient-from-position);--tw-gradient-to: rgb(132 204 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #E74694 var(--tw-gradient-from-position);--tw-gradient-to: rgb(231 70 148 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #9061F9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(144 97 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-600{--tw-gradient-from: #7E3AF2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-200{--tw-gradient-from: #FBD5D5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 213 213 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #F05252 var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 82 82 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-200{--tw-gradient-from: #AFECEF var(--tw-gradient-from-position);--tw-gradient-to: rgb(175 236 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-300{--tw-gradient-from: #7EDCE2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 220 226 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-500{--tw-gradient-from: #0694A2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 148 162 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-5\%{--tw-gradient-from-position: 5%}.via-bg-light{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--color-bg-light) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-blue-600{--tw-gradient-to: rgb(28 100 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1C64F2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-cyan-600{--tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0891b2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-green-600{--tw-gradient-to: rgb(5 122 85 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #057A55 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-lime-600{--tw-gradient-to: rgb(101 163 13 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #65a30d var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-pink-600{--tw-gradient-to: rgb(214 31 105 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #D61F69 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-600{--tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #7E3AF2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-red-300{--tw-gradient-to: rgb(248 180 180 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #F8B4B4 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-red-600{--tw-gradient-to: rgb(224 36 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #E02424 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-teal-600{--tw-gradient-to: rgb(4 116 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #047481 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-10\%{--tw-gradient-via-position: 10%}.to-blue-500{--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #1C64F2 var(--tw-gradient-to-position)}.to-blue-700{--tw-gradient-to: #1A56DB var(--tw-gradient-to-position)}.to-cyan-700{--tw-gradient-to: #0e7490 var(--tw-gradient-to-position)}.to-green-500{--tw-gradient-to: #0E9F6E var(--tw-gradient-to-position)}.to-green-700{--tw-gradient-to: #046C4E var(--tw-gradient-to-position)}.to-lime-200{--tw-gradient-to: #d9f99d var(--tw-gradient-to-position)}.to-lime-300{--tw-gradient-to: #bef264 var(--tw-gradient-to-position)}.to-lime-700{--tw-gradient-to: #4d7c0f var(--tw-gradient-to-position)}.to-orange-400{--tw-gradient-to: #FF8A4C var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #E74694 var(--tw-gradient-to-position)}.to-pink-700{--tw-gradient-to: #BF125D var(--tw-gradient-to-position)}.to-purple-500\/10{--tw-gradient-to: rgb(144 97 249 / .1) var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #7E3AF2 var(--tw-gradient-to-position)}.to-purple-700{--tw-gradient-to: #6C2BD9 var(--tw-gradient-to-position)}.to-red-700{--tw-gradient-to: #C81E1E var(--tw-gradient-to-position)}.to-teal-700{--tw-gradient-to: #036672 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-yellow-200{--tw-gradient-to: #FCE96A var(--tw-gradient-to-position)}.to-100\%{--tw-gradient-to-position: 100%}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:padding-box}.bg-origin-content{background-origin:content-box}.fill-blue-600{fill:#1c64f2}.fill-current{fill:currentColor}.fill-gray-300{fill:#d1d5db}.fill-gray-600{fill:#4b5563}.fill-green-500{fill:#0e9f6e}.fill-pink-600{fill:#d61f69}.fill-purple-600{fill:#7e3af2}.fill-red-600{fill:#e02424}.fill-secondary{fill:var(--color-secondary)}.fill-white{fill:#fff}.fill-yellow-400{fill:#e3a008}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.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-1{padding-left:.25rem;padding-right:.25rem}.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}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.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-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-80{padding-bottom:20rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-24{padding-right:6rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-mono{font-family:JetBrains Mono,Consolas,monospace}.font-sans{font-family:Inter,Outfit,PTSans,Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}.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-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero: slashed-zero;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.lining-nums{--tw-numeric-figure: lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure: oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.proportional-nums{--tw-numeric-spacing: proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.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)}.diagonal-fractions{--tw-numeric-fraction: diagonal-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction: stacked-fractions;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-9{line-height:2.25rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-\[\#336699\]\/\[\.35\]{color:#33669959}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-100{--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-green-200{--tw-text-opacity: 1;color:rgb(188 240 218 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(5 122 85 / var(--tw-text-opacity))}.text-green-700{--tw-text-opacity: 1;color:rgb(4 108 78 / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:rgb(3 84 63 / var(--tw-text-opacity))}.text-green-900{--tw-text-opacity: 1;color:rgb(1 71 55 / var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(104 117 245 / var(--tw-text-opacity))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(81 69 205 / var(--tw-text-opacity))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(66 56 157 / var(--tw-text-opacity))}.text-indigo-900{--tw-text-opacity: 1;color:rgb(54 47 120 / var(--tw-text-opacity))}.text-light-text-panel{color:var(--color-light-text-panel)}.text-orange-200{--tw-text-opacity: 1;color:rgb(252 217 189 / var(--tw-text-opacity))}.text-orange-500{--tw-text-opacity: 1;color:rgb(255 90 31 / var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity: 1;color:rgb(208 56 1 / var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity: 1;color:rgb(231 70 148 / var(--tw-text-opacity))}.text-pink-600{--tw-text-opacity: 1;color:rgb(214 31 105 / var(--tw-text-opacity))}.text-pink-700{--tw-text-opacity: 1;color:rgb(191 18 93 / var(--tw-text-opacity))}.text-pink-800{--tw-text-opacity: 1;color:rgb(153 21 75 / var(--tw-text-opacity))}.text-pink-900{--tw-text-opacity: 1;color:rgb(117 26 61 / var(--tw-text-opacity))}.text-primary{color:var(--color-primary)}.text-purple-500{--tw-text-opacity: 1;color:rgb(144 97 249 / var(--tw-text-opacity))}.text-purple-600{--tw-text-opacity: 1;color:rgb(126 58 242 / var(--tw-text-opacity))}.text-purple-700{--tw-text-opacity: 1;color:rgb(108 43 217 / var(--tw-text-opacity))}.text-purple-800{--tw-text-opacity: 1;color:rgb(85 33 181 / var(--tw-text-opacity))}.text-purple-900{--tw-text-opacity: 1;color:rgb(74 29 150 / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:rgb(253 232 232 / var(--tw-text-opacity))}.text-red-200{--tw-text-opacity: 1;color:rgb(251 213 213 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(224 36 36 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity: 1;color:rgb(200 30 30 / var(--tw-text-opacity))}.text-red-800{--tw-text-opacity: 1;color:rgb(155 28 28 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity: 1;color:rgb(119 29 29 / var(--tw-text-opacity))}.text-secondary{color:var(--color-secondary)}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity))}.text-teal-500{--tw-text-opacity: 1;color:rgb(6 148 162 / var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(227 160 8 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(194 120 3 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(159 88 10 / var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(142 75 16 / var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(114 59 19 / var(--tw-text-opacity))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(99 49 18 / var(--tw-text-opacity))}.text-opacity-95{--tw-text-opacity: .95}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.decoration-solid{text-decoration-style:solid}.decoration-double{text-decoration-style:double}.decoration-dotted{text-decoration-style:dotted}.decoration-dashed{text-decoration-style:dashed}.decoration-wavy{text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.accent-blue-500{accent-color:#3F83F8}.accent-blue-600{accent-color:#1C64F2}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.\!shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !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 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--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 rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-blue-500\/50{--tw-shadow-color: rgb(63 131 248 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-800\/80{--tw-shadow-color: rgb(30 66 159 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-500\/50{--tw-shadow-color: rgb(6 182 212 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-800\/80{--tw-shadow-color: rgb(21 94 117 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-500\/50{--tw-shadow-color: rgb(14 159 110 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-800\/80{--tw-shadow-color: rgb(3 84 63 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-lime-500\/50{--tw-shadow-color: rgb(132 204 22 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-lime-800\/80{--tw-shadow-color: rgb(63 98 18 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-pink-500\/50{--tw-shadow-color: rgb(231 70 148 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-pink-800\/80{--tw-shadow-color: rgb(153 21 75 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-500\/50{--tw-shadow-color: rgb(144 97 249 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-800\/80{--tw-shadow-color: rgb(85 33 181 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-500\/50{--tw-shadow-color: rgb(240 82 82 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-800\/80{--tw-shadow-color: rgb(155 28 28 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-teal-500\/50{--tw-shadow-color: rgb(6 148 162 / .5);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.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-inset{--tw-ring-inset: inset}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-blue-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity))}.ring-cyan-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.ring-gray-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity))}.ring-green-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity))}.ring-pink-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(153 21 75 / var(--tw-ring-opacity))}.ring-pink-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(117 26 61 / var(--tw-ring-opacity))}.ring-purple-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity))}.ring-purple-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity))}.ring-red-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity))}.ring-red-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.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 rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));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-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(100%);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)}.invert{--tw-invert: invert(100%);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)}.sepia{--tw-sepia: sepia(100%);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)!important}.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)}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale: grayscale(100%);-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-invert{--tw-backdrop-invert: invert(100%);-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-sepia{--tw-backdrop-sepia: sepia(100%);-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-filter{-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-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content: "this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar{display:block;width:var(--scrollbar-width, 16px);height:var(--scrollbar-height, 16px)}.scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar-thin::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar-thin::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar-thin::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar-thin::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar-thin::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar-thin::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar-thin::-webkit-scrollbar{display:block;width:8px;height:8px}.scrollbar-track-bg-light{--scrollbar-track: var(--color-bg-light) !important}.scrollbar-track-bg-light-tone{--scrollbar-track: var(--color-bg-light-tone) !important}.scrollbar-track-blue-100{--scrollbar-track: #E1EFFE !important}.scrollbar-track-gray-200{--scrollbar-track: #E5E7EB !important}.scrollbar-thumb-bg-light-tone{--scrollbar-thumb: var(--color-bg-light-tone) !important}.scrollbar-thumb-bg-light-tone-panel{--scrollbar-thumb: var(--color-bg-light-tone-panel) !important}.scrollbar-thumb-blue-500{--scrollbar-thumb: #3F83F8 !important}.scrollbar-thumb-gray-400{--scrollbar-thumb: #9CA3AF !important}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.display-none{display:none}h1{margin-bottom:1.5rem;font-size:2.25rem;line-height:2.5rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}h1:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}@media (min-width: 768px){h1{font-size:3rem;line-height:1}}h2{margin-bottom:1rem;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}h2:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}h3{margin-bottom:.75rem;font-size:1.5rem;line-height:2rem;font-weight:500;--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}h3:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}h4{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:500;--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}h4:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}h1,h2{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));padding-bottom:.5rem}h1:is(.dark *),h2:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}p{overflow-wrap:break-word;font-family:Inter,Outfit,PTSans,Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:1rem;line-height:1.5rem;line-height:1.625;letter-spacing:-.025em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}@media (min-width: 768px){p{font-size:1.125rem;line-height:1.75rem;line-height:2}}table{border-collapse:collapse;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}table:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}th,td{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));padding:.5rem}th:is(.dark *),td:is(.dark *){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}tr:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}tr:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}ul,ol{margin-top:1rem;margin-bottom:1rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:1.75rem}ul{margin-left:.5rem;list-style-type:disc}ul>: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))}li{position:relative;padding-left:.5rem}ol{margin-left:.5rem;list-style-type:decimal}ol>: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))}ul ul,ol ol,ul ol,ol ul{margin-top:.5rem;margin-bottom:0;margin-left:1.5rem}li::marker{color:#4b5563}:root{--color-primary: #4a90e2;--color-primary-light: #6ab7f1;--color-secondary: #8ab8e0;--color-accent: #3a7ca1;--color-light-text-panel: #ffffff;--color-dark-text-panel: #e0e0e0;--color-bg-light-panel: #f0faff;--color-bg-light: #ffffff;--color-bg-light-tone: #e0f0ff;--color-bg-light-code-block: #f5faff;--color-bg-light-tone-panel: #d0e0f0;--color-bg-light-discussion: #f8faff;--color-bg-light-discussion-odd: #f0faff;--color-bg-dark: #0a0a1a;--color-bg-dark-tone: #151521;--color-bg-dark-tone-panel: #1c1c2a;--color-bg-dark-code-block: #151521;--color-bg-dark-discussion: #0e0e1a;--color-bg-dark-discussion-odd: #0d0d1a}textarea,input,select{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}textarea:is(.dark *),input:is(.dark *),select:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.background-color{min-height:100vh;background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #E1EFFE var(--tw-gradient-from-position);--tw-gradient-to: rgb(225 239 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #CABFFD var(--tw-gradient-to-position)}.background-color:is(.dark *){--tw-gradient-from: #1E429F var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 66 159 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #4A1D96 var(--tw-gradient-to-position)}.toolbar-color{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.toolbar-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.panels-color{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.panels-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.unicolor-panels-color{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.unicolor-panels-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.message{position:relative;margin:.5rem;display:flex;width:100%;flex-grow:1;flex-direction:column;flex-wrap:wrap;overflow:visible;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));padding:1.25rem 1.25rem .75rem;font-size:1.125rem;line-height:1.75rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.message:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}.message{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(35 56 118 / var(--tw-text-opacity))}.message:is(.dark *){background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #233876 var(--tw-gradient-from-position);--tw-gradient-to: rgb(35 56 118 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1E429F var(--tw-gradient-to-position);--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.message:hover{--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.message:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.message:nth-child(2n){--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.message:nth-child(2n):is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.message:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.message:nth-child(odd):is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.message-header{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.message-content{font-size:1.125rem;line-height:1.75rem;line-height:1.625}body{min-height:100vh;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));font-size:1rem;line-height:1.5rem}body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.discussion{margin-right:.5rem;font-size:.75rem;line-height:1rem}.discussion:hover{--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.discussion-hilighted{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));font-size:.75rem;line-height:1rem}.discussion-hilighted:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.bg-gradient-welcome{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #E1EFFE var(--tw-gradient-from-position);--tw-gradient-to: rgb(225 239 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #CABFFD var(--tw-gradient-to-position)}.bg-gradient-welcome:is(.dark *){--tw-gradient-from: #1E429F var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 66 159 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #4A1D96 var(--tw-gradient-to-position)}.bg-gradient-progress{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #C3DDFD var(--tw-gradient-from-position);--tw-gradient-to: rgb(195 221 253 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #A4CAFE var(--tw-gradient-to-position)}.bg-gradient-progress:is(.dark *){--tw-gradient-from: #1A56DB var(--tw-gradient-from-position);--tw-gradient-to: rgb(26 86 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1C64F2 var(--tw-gradient-to-position)}.text-gradient-title{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #1A56DB var(--tw-gradient-from-position);--tw-gradient-to: rgb(26 86 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient-title:is(.dark *){--tw-gradient-from: #A4CAFE var(--tw-gradient-from-position);--tw-gradient-to: rgb(164 202 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.text-subtitle{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.text-subtitle:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.text-author{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.text-author:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.text-loading{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.text-loading:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.text-progress{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.text-progress:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.btn-primary{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-secondary{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.card{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:1.5rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.card:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.input{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));padding:.5rem 1rem}.input:focus{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.input:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.input:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.label{margin-bottom:.25rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.label:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.link{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.link:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.link:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.link:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.navbar-container{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.navbar-container:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.game-menu{position:relative;display:flex;align-items:center;justify-content:center}.text-shadow-custom{text-shadow:1px 1px 0px #e0e0e0,-1px -1px 0px #e0e0e0,1px -1px 0px #e0e0e0,-1px 1px 0px #e0e0e0}.animated-progressbar-bg{position:relative;height:2.5rem;width:100%;overflow:hidden;border-radius:.125rem;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #172554 var(--tw-gradient-from-position);--tw-gradient-to: rgb(23 37 84 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #233876 var(--tw-gradient-to-position);--tw-shadow: 0 0 15px rgba(245,158,11,.2);--tw-shadow-colored: 0 0 15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.animated-progressbar-bg:is(.dark *){--tw-gradient-from: #000000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #172554 var(--tw-gradient-to-position)}.animated-progressbar-fg{position:absolute;top:0;left:0;height:100%;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #3F83F8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #76A9FA var(--tw-gradient-to-position);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.animated-progressbar-fg:is(.dark *){--tw-gradient-from: #76A9FA var(--tw-gradient-from-position);--tw-gradient-to: rgb(118 169 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.menu-item{margin-bottom:.5rem;padding:.5rem 1rem;font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity));transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.menu-item:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.menu-item:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.menu-item:is(.dark *):hover{--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.menu-item.active-link{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-top-left-radius:.375rem;border-top-right-radius:.375rem;--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);text-shadow:1px 1px 0px #e0e0e0,-1px -1px 0px #e0e0e0,1px -1px 0px #e0e0e0,-1px 1px 0px #e0e0e0}.menu-item.active-link:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.menu-item.active-link:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-text-opacity: 1;color:rgb(35 56 118 / var(--tw-text-opacity))}.menu-item.active-link:is(.dark *):hover{--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.menu-item.active-link{text-shadow:0 0 10px rgba(128,128,128,.5)}.menu-item.active-link:before{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:5px;background:linear-gradient(to right,#4a90e2,#8ab8e0,#4a90e2);border-radius:10px;animation:shimmer 2s infinite}.dark .menu-item.active-link:before{background:linear-gradient(to right,#6ab7f1,#aaa,#6ab7f1)}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:100% 0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.feather-emoji{display:inline-block;margin-left:5px;animation:bounce 2s infinite}.app-card{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.app-card:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-card:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.app-card:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}button{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}button:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#76A9FA #C3DDFD}.dark .scrollbar-thin{scrollbar-color:#1C64F2 #1E429F}.scrollbar-thin::-webkit-scrollbar{width:.5rem}.scrollbar-thin::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.scrollbar-thin:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.scrollbar-thin::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.scrollbar-thin:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.scrollbar-thin::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar-thin:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.btn{display:flex;align-items:center;border-radius:.5rem;padding:.5rem 1rem;font-weight:600;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-primary{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-primary: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(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);--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.btn-primary:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.btn-secondary{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.btn-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.btn-secondary: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(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);--tw-ring-opacity: 1;--tw-ring-color: rgb(195 221 253 / var(--tw-ring-opacity))}.btn-secondary:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.btn-secondary:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.btn-secondary:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.search-input{width:100%;border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));background-color:transparent;padding:.5rem 1rem .5rem 2.5rem;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.search-input:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px}.search-input:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.search-input:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar{display:block;width:8px;height:8px}.scrollbar{--scrollbar-track: #C3DDFD;--scrollbar-thumb: #76A9FA;scrollbar-width:thin;scrollbar-color:#76A9FA #C3DDFD}.dark .scrollbar{scrollbar-color:#1C64F2 #1E429F}.scrollbar::-webkit-scrollbar{width:.5rem}.scrollbar::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.scrollbar:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.scrollbar::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.scrollbar:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.scrollbar::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar{--scrollbar-thumb-hover: #3F83F8}.scrollbar:is(.dark *){--scrollbar-track: #1A56DB;--scrollbar-thumb: #1C64F2;--scrollbar-thumb-hover: #3F83F8}.card-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.card-title:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.card-content{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.card-content:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.card-footer{margin-top:1rem;display:flex;align-items:center;justify-content:space-between}.card-footer-button{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.card-footer-button:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.subcard{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity));padding:1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.subcard:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.subcard-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.subcard-title:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.subcard-content{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.subcard-content:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.subcard-footer{margin-top:1rem;display:flex;align-items:center;justify-content:space-between}.subcard-footer-button{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.subcard-footer-button:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.discussion-toolbox{display:flex;--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;gap:.5rem;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.5rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.group:hover .discussion-toolbox{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.discussion-toolbox:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.lollms-title-style{text-shadow:2px 2px 4px rgba(0,0,0,.2),2px 2px 0px white,-2px -2px 0px white,2px -2px 0px white,-2px 2px 0px white;background:linear-gradient(45deg,#f59e0b,#fbbf24);-webkit-background-clip:text;background-clip:text}.chat-bar{position:relative;display:flex;flex-grow:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;gap:.5rem;--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-bar:hover{--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)}.chat-bar:is(.dark *){--tw-border-opacity: 1;border-color:rgb(4 108 78 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(132 225 188 / var(--tw-text-opacity))}.chat-bar{height:50px;transition:all .3s ease}.chat-bar:hover{box-shadow:0 4px 6px -1px #00ff001a,0 2px 4px -1px #00ff000f}.svg-button{border-radius:9999px;padding:.5rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.svg-button:focus{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity));--tw-ring-offset-width: 2px}.svg-button:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.svg-button:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.svg-button:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.svg-button:active{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.svg-button:active:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.nav-button{border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nav-button:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.nav-button:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.nav-button:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.nav-button-active{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.nav-button-active:hover{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.nav-button-active:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.nav-button-active:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-on{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.btn-on:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.btn-off{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.btn-off:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.interesting-facts{margin-top:1.5rem;margin-bottom:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.5rem;background-color:#fffc;padding:1rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.interesting-facts: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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.interesting-facts:is(.dark *){background-color:#1f2937cc}.toolbar-button{cursor:pointer;border-style:none;background-color:transparent;padding:.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.toolbar-button:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.context-menu{position:absolute;background-color:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 10px #0000001a;border-radius:4px;padding:8px 0;min-width:150px;z-index:1000}.context-menu-item{padding:8px 16px;font-size:14px;color:#333;cursor:pointer;transition:background-color .2s ease}.context-menu-item:hover{background-color:#f5f5f5}.context-menu-separator{height:1px;background-color:#e0e0e0;margin:4px 0}.context-menu-item-disabled{color:#999;cursor:not-allowed}.context-menu-item-icon{margin-right:8px}.steps-container{margin-bottom:1rem;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.steps-header{display:flex;cursor:pointer;align-items:center;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding:1rem}.steps-header:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.steps-title{margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}.step-item{margin-bottom:.5rem;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));padding-left:1rem}.steps-container{margin-bottom:1rem;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.steps-container:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.steps-header{display:flex;cursor:pointer;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));padding:1rem}.steps-header:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.steps-icon{margin-right:1rem}.steps-summary{flex-grow:1}.steps-title{margin:0;font-size:1rem;line-height:1.5rem;font-weight:600;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.steps-title:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.steps-status{margin:0;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.steps-status:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.toggle-icon{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-icon:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.steps-content{padding:1rem}.steps-list{margin:0;list-style-type:none;padding:0}.step-item{margin-bottom:.5rem;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding-left:1rem}.step-item:last-child{margin-bottom:0}.step-item:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.step-container{margin-bottom:1rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.step-wrapper{display:flex;align-items:flex-start;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.75rem}.step-wrapper:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.step-icon{margin-right:.75rem;height:1.5rem;width:1.5rem;flex-shrink:0}.icon-success{height:1.5rem;width:1.5rem;--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.icon-fail{height:1.5rem;width:1.5rem;--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.icon-spinner{height:1.5rem;width:1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.icon-spinner{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));border-top-color:transparent}.icon-spinner:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.step-content{flex-grow:1}.step-text{font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.step-text:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.step-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.step-description:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.fade-enter-active,.fade-leave-active{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.fade-enter,.fade-leave-to{opacity:0}.status-icon{cursor:pointer;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.icon{height:1.5rem;width:1.5rem}.icon-success{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.icon-success:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.icon-fail{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.icon-fail:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.icon-text{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.icon-text:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}.sm\:container{max-width:640px}@media (min-width: 768px){.sm\:container{max-width:768px}}@media (min-width: 1024px){.sm\:container{max-width:1024px}}@media (min-width: 1280px){.sm\:container{max-width:1280px}}@media (min-width: 1536px){.sm\:container{max-width:1536px}}}.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))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.last\:mb-0:last-child{margin-bottom:0}.even\:bg-bg-light-discussion-odd:nth-child(2n){background-color:var(--color-bg-light-discussion-odd)}.checked\:translate-x-6:checked{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.checked\:bg-blue-500:checked{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:block{display:block}.group\/item:hover .group-hover\/item\: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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:hover .group-hover\/item\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-secondary{border-color:var(--color-secondary)}.group:hover .group-hover\:bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.group:hover .group-hover\:bg-white\/50{background-color:#ffffff80}.group:hover .group-hover\:bg-opacity-0{--tw-bg-opacity: 0}.group:hover .group-hover\:from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-green-400{--tw-gradient-from: #31C48D var(--tw-gradient-from-position);--tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-pink-500{--tw-gradient-from: #E74694 var(--tw-gradient-from-position);--tw-gradient-to: rgb(231 70 148 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-purple-500{--tw-gradient-from: #9061F9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(144 97 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-purple-600{--tw-gradient-from: #7E3AF2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-red-200{--tw-gradient-from: #FBD5D5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 213 213 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-teal-300{--tw-gradient-from: #7EDCE2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 220 226 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:via-red-300{--tw-gradient-to: rgb(248 180 180 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #F8B4B4 var(--tw-gradient-via-position), var(--tw-gradient-to)}.group:hover .group-hover\:to-blue-500{--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-blue-600{--tw-gradient-to: #1C64F2 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-lime-300{--tw-gradient-to: #bef264 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-orange-400{--tw-gradient-to: #FF8A4C var(--tw-gradient-to-position)}.group:hover .group-hover\:to-pink-500{--tw-gradient-to: #E74694 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-yellow-200{--tw-gradient-to: #FCE96A var(--tw-gradient-to-position)}.group:hover .group-hover\:text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.group\/item:hover .group-hover\/item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:focus .group-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.group:focus .group-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)}.group:focus .group-focus\:ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.peer:checked~.peer-checked\:text-primary{color:var(--color-primary)}.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)) skew(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))}.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.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-blue-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.hover\:z-10:hover{z-index:10}.hover\:z-20:hover{z-index:20}.hover\:h-8:hover{height:2rem}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-x-100:hover{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-2:hover{border-width:2px}.hover\:border-solid:hover{border-style:solid}.hover\:border-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.hover\:border-gray-600:hover{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.hover\:border-green-200:hover{--tw-border-opacity: 1;border-color:rgb(188 240 218 / var(--tw-border-opacity))}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-primary-light:hover{border-color:var(--color-primary-light)}.hover\:border-secondary:hover{border-color:var(--color-secondary)}.hover\:bg-bg-light-tone:hover{background-color:var(--color-bg-light-tone)}.hover\:bg-bg-light-tone-panel:hover{background-color:var(--color-bg-light-tone-panel)}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.hover\:bg-blue-300:hover{--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.hover\:bg-blue-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.hover\:bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(188 240 218 / var(--tw-bg-opacity))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.hover\:bg-green-800:hover{--tw-bg-opacity: 1;background-color:rgb(3 84 63 / var(--tw-bg-opacity))}.hover\:bg-pink-800:hover{--tw-bg-opacity: 1;background-color:rgb(153 21 75 / var(--tw-bg-opacity))}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary-light:hover{background-color:var(--color-primary-light)}.hover\:bg-purple-800:hover{--tw-bg-opacity: 1;background-color:rgb(85 33 181 / var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(253 232 232 / var(--tw-bg-opacity))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(251 213 213 / var(--tw-bg-opacity))}.hover\:bg-red-300:hover{--tw-bg-opacity: 1;background-color:rgb(248 180 180 / var(--tw-bg-opacity))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(253 242 242 / var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.hover\:bg-red-800:hover{--tw-bg-opacity: 1;background-color:rgb(155 28 28 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:bg-yellow-200:hover{--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.hover\:bg-yellow-500:hover{--tw-bg-opacity: 1;background-color:rgb(194 120 3 / var(--tw-bg-opacity))}.hover\:bg-gradient-to-bl:hover{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))}.hover\:bg-gradient-to-br:hover{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.hover\:bg-gradient-to-l:hover{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.hover\:bg-gradient-to-r:hover{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.hover\:from-blue-50:hover{--tw-gradient-from: #EBF5FF var(--tw-gradient-from-position);--tw-gradient-to: rgb(235 245 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-blue-500\/20:hover{--tw-gradient-from: rgb(63 131 248 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-green-500:hover{--tw-gradient-from: #0E9F6E var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-teal-200:hover{--tw-gradient-from: #AFECEF var(--tw-gradient-from-position);--tw-gradient-to: rgb(175 236 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-green-600:hover{--tw-gradient-to: #057A55 var(--tw-gradient-to-position)}.hover\:to-lime-200:hover{--tw-gradient-to: #d9f99d var(--tw-gradient-to-position)}.hover\:to-purple-50:hover{--tw-gradient-to: #F6F5FF var(--tw-gradient-to-position)}.hover\:to-purple-500\/20:hover{--tw-gradient-to: rgb(144 97 249 / .2) var(--tw-gradient-to-position)}.hover\:font-bold:hover{font-weight:700}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-green-500:hover{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:rgb(5 122 85 / var(--tw-text-opacity))}.hover\:text-indigo-600:hover{--tw-text-opacity: 1;color:rgb(88 80 236 / var(--tw-text-opacity))}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-purple-600:hover{--tw-text-opacity: 1;color:rgb(126 58 242 / var(--tw-text-opacity))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(224 36 36 / var(--tw-text-opacity))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(200 30 30 / var(--tw-text-opacity))}.hover\:text-secondary:hover{color:var(--color-secondary)}.hover\:text-teal-600:hover{--tw-text-opacity: 1;color:rgb(4 116 129 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:text-yellow-600:hover{--tw-text-opacity: 1;color:rgb(159 88 10 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-none:hover{--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)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:scrollbar-thumb-primary{--scrollbar-thumb-hover: var(--color-primary) !important}.before\:hover\:text-center:hover:before{content:var(--tw-content);text-align:center}.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.focus\:z-10:focus{z-index:10}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.focus\:border-secondary:focus{border-color:var(--color-secondary)}.focus\:border-transparent:focus{border-color:transparent}.focus\:text-blue-700:focus{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring: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(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.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-4: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(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)}.focus\:ring-blue-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(195 221 253 / var(--tw-ring-opacity))}.focus\:ring-blue-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.focus\:ring-blue-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.focus\:ring-blue-500\/50:focus{--tw-ring-color: rgb(63 131 248 / .5)}.focus\:ring-blue-700:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(26 86 219 / var(--tw-ring-opacity))}.focus\:ring-cyan-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity))}.focus\:ring-cyan-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity))}.focus\:ring-gray-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity))}.focus\:ring-gray-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.focus\:ring-gray-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.focus\:ring-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.focus\:ring-green-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(188 240 218 / var(--tw-ring-opacity))}.focus\:ring-green-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(132 225 188 / var(--tw-ring-opacity))}.focus\:ring-green-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(49 196 141 / var(--tw-ring-opacity))}.focus\:ring-green-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.focus\:ring-lime-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity))}.focus\:ring-lime-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity))}.focus\:ring-pink-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(250 209 232 / var(--tw-ring-opacity))}.focus\:ring-pink-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 180 217 / var(--tw-ring-opacity))}.focus\:ring-primary:focus{--tw-ring-color: var(--color-primary)}.focus\:ring-purple-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(220 215 254 / var(--tw-ring-opacity))}.focus\:ring-purple-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity))}.focus\:ring-red-100:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 232 232 / var(--tw-ring-opacity))}.focus\:ring-red-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity))}.focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.focus\:ring-secondary:focus{--tw-ring-color: var(--color-secondary)}.focus\:ring-teal-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(126 220 226 / var(--tw-ring-opacity))}.focus\:ring-yellow-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(250 202 21 / var(--tw-ring-opacity))}.focus\:ring-yellow-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(227 160 8 / var(--tw-ring-opacity))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:hover\:text-center:hover:focus{text-align:center}.hover\:focus\:text-center:focus:hover{text-align:center}.active\:scale-75:active{--tw-scale-x: .75;--tw-scale-y: .75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-90:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scrollbar-thumb-secondary{--scrollbar-thumb-active: var(--color-secondary) !important}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(55 65 81 / var(--tw-divide-opacity))}.dark\:border-bg-light:is(.dark *){border-color:var(--color-bg-light)}.dark\:border-blue-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 86 219 / var(--tw-border-opacity))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.dark\:border-green-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity))}.dark\:border-pink-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(241 126 184 / var(--tw-border-opacity))}.dark\:border-pink-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(231 70 148 / var(--tw-border-opacity))}.dark\:border-purple-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(172 148 250 / var(--tw-border-opacity))}.dark\:border-purple-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(144 97 249 / var(--tw-border-opacity))}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(240 82 82 / var(--tw-border-opacity))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(155 28 28 / var(--tw-border-opacity))}.dark\:border-transparent:is(.dark *){border-color:transparent}.dark\:border-yellow-300:is(.dark *){--tw-border-opacity: 1;border-color:rgb(250 202 21 / var(--tw-border-opacity))}.dark\:bg-bg-dark:is(.dark *){background-color:var(--color-bg-dark)}.dark\:bg-bg-dark-tone:is(.dark *){background-color:var(--color-bg-dark-tone)}.dark\:bg-bg-dark-tone-panel:is(.dark *){background-color:var(--color-bg-dark-tone-panel)}.dark\:bg-black:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.dark\:bg-blue-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.dark\:bg-blue-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.dark\:bg-blue-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.dark\:bg-blue-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-700\/50:is(.dark *){background-color:#37415180}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-gray-800\/20:is(.dark *){background-color:#1f293733}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark\:bg-gray-900\/95:is(.dark *){background-color:#111827f2}.dark\:bg-green-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(188 240 218 / var(--tw-bg-opacity))}.dark\:bg-green-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 159 110 / var(--tw-bg-opacity))}.dark\:bg-green-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.dark\:bg-green-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 84 63 / var(--tw-bg-opacity))}.dark\:bg-green-900\/20:is(.dark *){background-color:#01473733}.dark\:bg-indigo-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(205 219 254 / var(--tw-bg-opacity))}.dark\:bg-indigo-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(104 117 245 / var(--tw-bg-opacity))}.dark\:bg-orange-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(180 52 3 / var(--tw-bg-opacity))}.dark\:bg-orange-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(138 44 13 / var(--tw-bg-opacity))}.dark\:bg-pink-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(250 209 232 / var(--tw-bg-opacity))}.dark\:bg-pink-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(214 31 105 / var(--tw-bg-opacity))}.dark\:bg-purple-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(220 215 254 / var(--tw-bg-opacity))}.dark\:bg-purple-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(144 97 249 / var(--tw-bg-opacity))}.dark\:bg-purple-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(126 58 242 / var(--tw-bg-opacity))}.dark\:bg-red-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(251 213 213 / var(--tw-bg-opacity))}.dark\:bg-red-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(240 82 82 / var(--tw-bg-opacity))}.dark\:bg-red-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.dark\:bg-red-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(155 28 28 / var(--tw-bg-opacity))}.dark\:bg-red-900\/20:is(.dark *){background-color:#771d1d33}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.dark\:bg-yellow-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.dark\:bg-opacity-70:is(.dark *){--tw-bg-opacity: .7}.dark\:bg-opacity-80:is(.dark *){--tw-bg-opacity: .8}.dark\:from-bg-dark:is(.dark *){--tw-gradient-from: var(--color-bg-dark) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-400\/20:is(.dark *){--tw-gradient-from: rgb(118 169 250 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(118 169 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-indigo-400:is(.dark *){--tw-gradient-from: #8DA2FB var(--tw-gradient-from-position);--tw-gradient-to: rgb(141 162 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-bg-dark:is(.dark *){--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--color-bg-dark) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-purple-400:is(.dark *){--tw-gradient-to: #AC94FA var(--tw-gradient-to-position)}.dark\:to-purple-400\/20:is(.dark *){--tw-gradient-to: rgb(172 148 250 / .2) var(--tw-gradient-to-position)}.dark\:fill-gray-300:is(.dark *){fill:#d1d5db}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.dark\:text-blue-500:is(.dark *){--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.dark\:text-blue-800:is(.dark *){--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.dark\:text-dark-text-panel:is(.dark *){color:var(--color-dark-text-panel)}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.dark\:text-gray-800:is(.dark *){--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.dark\:text-green-200:is(.dark *){--tw-text-opacity: 1;color:rgb(188 240 218 / var(--tw-text-opacity))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.dark\:text-green-500:is(.dark *){--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.dark\:text-green-800:is(.dark *){--tw-text-opacity: 1;color:rgb(3 84 63 / var(--tw-text-opacity))}.dark\:text-green-900:is(.dark *){--tw-text-opacity: 1;color:rgb(1 71 55 / var(--tw-text-opacity))}.dark\:text-indigo-500:is(.dark *){--tw-text-opacity: 1;color:rgb(104 117 245 / var(--tw-text-opacity))}.dark\:text-indigo-900:is(.dark *){--tw-text-opacity: 1;color:rgb(54 47 120 / var(--tw-text-opacity))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(252 217 189 / var(--tw-text-opacity))}.dark\:text-pink-400:is(.dark *){--tw-text-opacity: 1;color:rgb(241 126 184 / var(--tw-text-opacity))}.dark\:text-pink-500:is(.dark *){--tw-text-opacity: 1;color:rgb(231 70 148 / var(--tw-text-opacity))}.dark\:text-pink-900:is(.dark *){--tw-text-opacity: 1;color:rgb(117 26 61 / var(--tw-text-opacity))}.dark\:text-primary:is(.dark *){color:var(--color-primary)}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(172 148 250 / var(--tw-text-opacity))}.dark\:text-purple-500:is(.dark *){--tw-text-opacity: 1;color:rgb(144 97 249 / var(--tw-text-opacity))}.dark\:text-purple-900:is(.dark *){--tw-text-opacity: 1;color:rgb(74 29 150 / var(--tw-text-opacity))}.dark\:text-red-200:is(.dark *){--tw-text-opacity: 1;color:rgb(251 213 213 / var(--tw-text-opacity))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.dark\:text-red-800:is(.dark *){--tw-text-opacity: 1;color:rgb(155 28 28 / var(--tw-text-opacity))}.dark\:text-red-900:is(.dark *){--tw-text-opacity: 1;color:rgb(119 29 29 / var(--tw-text-opacity))}.dark\:text-slate-50:is(.dark *){--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(250 202 21 / var(--tw-text-opacity))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(194 120 3 / var(--tw-text-opacity))}.dark\:text-yellow-800:is(.dark *){--tw-text-opacity: 1;color:rgb(114 59 19 / var(--tw-text-opacity))}.dark\:text-yellow-900:is(.dark *){--tw-text-opacity: 1;color:rgb(99 49 18 / var(--tw-text-opacity))}.dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:shadow-lg:is(.dark *){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-blue-800\/80:is(.dark *){--tw-shadow-color: rgb(30 66 159 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-cyan-800\/80:is(.dark *){--tw-shadow-color: rgb(21 94 117 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-green-800\/80:is(.dark *){--tw-shadow-color: rgb(3 84 63 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-lime-800\/80:is(.dark *){--tw-shadow-color: rgb(63 98 18 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-pink-800\/80:is(.dark *){--tw-shadow-color: rgb(153 21 75 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-purple-800\/80:is(.dark *){--tw-shadow-color: rgb(85 33 181 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-red-800\/80:is(.dark *){--tw-shadow-color: rgb(155 28 28 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-teal-800\/80:is(.dark *){--tw-shadow-color: rgb(5 80 92 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:ring-gray-500:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark\:ring-white:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.dark\:ring-opacity-20:is(.dark *){--tw-ring-opacity: .2}.dark\:ring-offset-gray-700:is(.dark *){--tw-ring-offset-color: #374151}.dark\:ring-offset-gray-800:is(.dark *){--tw-ring-offset-color: #1F2937}.dark\:scrollbar-track-bg-dark:is(.dark *){--scrollbar-track: var(--color-bg-dark) !important}.dark\:scrollbar-track-bg-dark-tone:is(.dark *){--scrollbar-track: var(--color-bg-dark-tone) !important}.dark\:scrollbar-track-gray-700:is(.dark *){--scrollbar-track: #374151 !important}.dark\:scrollbar-track-gray-800:is(.dark *){--scrollbar-track: #1F2937 !important}.dark\:scrollbar-thumb-bg-dark-tone:is(.dark *){--scrollbar-thumb: var(--color-bg-dark-tone) !important}.dark\:scrollbar-thumb-bg-dark-tone-panel:is(.dark *){--scrollbar-thumb: var(--color-bg-dark-tone-panel) !important}.dark\:scrollbar-thumb-gray-500:is(.dark *){--scrollbar-thumb: #6B7280 !important}.dark\:scrollbar-thumb-gray-600:is(.dark *){--scrollbar-thumb: #4B5563 !important}.dark\:even\:bg-bg-dark-discussion-odd:nth-child(2n):is(.dark *){background-color:var(--color-bg-dark-discussion-odd)}.group:hover .dark\:group-hover\:bg-gray-800\/60:is(.dark *){background-color:#1f293799}.group:hover .dark\:group-hover\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.group:focus .dark\:group-focus\:ring-gray-800\/70:is(.dark *){--tw-ring-color: rgb(31 41 55 / .7)}.peer:focus~.dark\:peer-focus\:ring-blue-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity))}.dark\:hover\:border-blue-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}.dark\:hover\:border-gray-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:hover\:border-primary:hover:is(.dark *){border-color:var(--color-primary)}.dark\:hover\:bg-blue-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.dark\:hover\:bg-blue-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.dark\:hover\:bg-blue-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-600\/50:hover:is(.dark *){background-color:#4b556380}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-700\/50:hover:is(.dark *){background-color:#37415180}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:hover\:bg-green-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(132 225 188 / var(--tw-bg-opacity))}.dark\:hover\:bg-green-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.dark\:hover\:bg-green-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.dark\:hover\:bg-pink-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(231 70 148 / var(--tw-bg-opacity))}.dark\:hover\:bg-pink-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(191 18 93 / var(--tw-bg-opacity))}.dark\:hover\:bg-primary:hover:is(.dark *){background-color:var(--color-primary)}.dark\:hover\:bg-purple-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(144 97 249 / var(--tw-bg-opacity))}.dark\:hover\:bg-purple-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(108 43 217 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(248 180 180 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(119 29 29 / var(--tw-bg-opacity))}.dark\:hover\:bg-yellow-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(250 202 21 / var(--tw-bg-opacity))}.dark\:hover\:bg-yellow-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(227 160 8 / var(--tw-bg-opacity))}.hover\:dark\:bg-bg-dark-tone:is(.dark *):hover{background-color:var(--color-bg-dark-tone)}.hover\:dark\:bg-bg-dark-tone-panel:is(.dark *):hover{background-color:var(--color-bg-dark-tone-panel)}.dark\:hover\:from-blue-400\/30:hover:is(.dark *){--tw-gradient-from: rgb(118 169 250 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(118 169 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:hover\:from-blue-900\/30:hover:is(.dark *){--tw-gradient-from: rgb(35 56 118 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(35 56 118 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:hover\:to-purple-400\/30:hover:is(.dark *){--tw-gradient-to: rgb(172 148 250 / .3) var(--tw-gradient-to-position)}.dark\:hover\:to-purple-900\/30:hover:is(.dark *){--tw-gradient-to: rgb(74 29 150 / .3) var(--tw-gradient-to-position)}.dark\:hover\:text-blue-500:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:hover\:text-gray-900:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.dark\:hover\:text-green-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:hover\:scrollbar-thumb-primary:is(.dark *){--scrollbar-thumb-hover: var(--color-primary) !important}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.dark\:focus\:border-secondary:focus:is(.dark *){border-color:var(--color-secondary)}.dark\:focus\:text-white:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:focus\:ring-blue-500:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.dark\:focus\:ring-blue-600:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.dark\:focus\:ring-blue-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity))}.dark\:focus\:ring-cyan-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-500:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-600:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-700:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity))}.dark\:focus\:ring-green-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity))}.dark\:focus\:ring-lime-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity))}.dark\:focus\:ring-pink-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(153 21 75 / var(--tw-ring-opacity))}.dark\:focus\:ring-pink-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(117 26 61 / var(--tw-ring-opacity))}.dark\:focus\:ring-purple-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity))}.dark\:focus\:ring-purple-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity))}.dark\:focus\:ring-red-400:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity))}.dark\:focus\:ring-red-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(155 28 28 / var(--tw-ring-opacity))}.dark\:focus\:ring-red-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity))}.dark\:focus\:ring-secondary:focus:is(.dark *){--tw-ring-color: var(--color-secondary)}.dark\:focus\:ring-teal-700:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(3 102 114 / var(--tw-ring-opacity))}.dark\:focus\:ring-teal-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(5 80 92 / var(--tw-ring-opacity))}.dark\:focus\:ring-yellow-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(99 49 18 / var(--tw-ring-opacity))}.dark\:focus\:ring-offset-gray-700:focus:is(.dark *){--tw-ring-offset-color: #374151}@media (min-width: 640px){.sm\:mb-0{margin-bottom:0}.sm\:mr-4{margin-right:1rem}.sm\:mt-0{margin-top:0}.sm\:h-10{height:2.5rem}.sm\:h-6{height:1.5rem}.sm\:h-64{height:16rem}.sm\:w-1\/4{width:25%}.sm\:w-10{width:2.5rem}.sm\:w-6{width:1.5rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:rounded-lg{border-radius:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:text-center{text-align:center}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.sm\:underline{text-decoration-line:underline}}@media (min-width: 768px){.md\:inset-0{top:0;right:0;bottom:0;left:0}.md\:order-2{order:2}.md\:mr-6{margin-right:1.5rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-2\/3{width:66.666667%}.md\:w-48{width:12rem}.md\:w-auto{width:auto}.md\:max-w-xl{max-width:36rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[300px\,1fr\]{grid-template-columns:300px 1fr}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\: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)))}.md\: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)))}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.md\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.md\:rounded-none{border-radius:0}.md\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.md\:border-0{border-width:0px}.md\:bg-transparent{background-color:transparent}.md\:p-0{padding:0}.md\:p-6{padding:1.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:font-medium{font-weight:500}.md\:text-blue-700{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.md\:hover\:bg-transparent:hover{background-color:transparent}.md\:hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.md\:dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.md\:dark\:hover\:bg-transparent:hover:is(.dark *){background-color:transparent}.md\:dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.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\:flex-row{flex-direction:row}.dark\:lg\:hover\:\[paint-order\:markers\]:hover:is(.dark *){paint-order:markers}}@media (min-width: 1280px){.xl\:h-80{height:20rem}.xl\:w-1\/6{width:16.666667%}}@media (min-width: 1536px){.\32xl\:h-96{height:24rem}} diff --git a/web/dist/assets/index-Dn-Ow83A.js b/web/dist/assets/index-DOAjMF0-.js similarity index 97% rename from web/dist/assets/index-Dn-Ow83A.js rename to web/dist/assets/index-DOAjMF0-.js index 2d8129f7..e5b09ce1 100644 --- a/web/dist/assets/index-Dn-Ow83A.js +++ b/web/dist/assets/index-DOAjMF0-.js @@ -333,11 +333,11 @@ If You are using windows, this will install wsl so you need to activate it. `?(this.message.content=this.message.content.slice(0,e)+"```"+t+"\n\n```\n"+this.message.content.slice(e),e=e+4+t.length):(this.message.content=this.message.content.slice(0,e)+"\n```"+t+"\n\n```\n"+this.message.content.slice(e),e=e+3+t.length):speechSynthesis==0||this.message.content[e-1]==` `?(this.message.content=this.message.content.slice(0,e)+"```"+t+` `+this.message.content.slice(e,n)+"\n```\n"+this.message.content.slice(n),e=e+4+t.length):(this.message.content=this.message.content.slice(0,e)+"\n```"+t+` -`+this.message.content.slice(e,n)+"\n```\n"+this.message.content.slice(n),p=p+3+t.length),this.$refs.mdTextarea.focus(),this.$refs.mdTextarea.selectionStart=this.$refs.mdTextarea.selectionEnd=p},copyContentToClipboard(){this.$emit("copy",this)},deleteMsg(){this.$emit("delete",this.message.id),this.deleteMsgMode=!1},rankUp(){this.$emit("rankUp",this.message.id)},rankDown(){this.$emit("rankDown",this.message.id)},updateMessage(){this.$emit("updateMessage",this.message.id,this.message.content,this.audio_url),this.editMsgMode=!1},resendMessage(t){this.$emit("resendMessage",this.message.id,this.message.content,t)},continueMessage(){this.$emit("continueMessage",this.message.id,this.message.content)},getImgUrl(){return this.avatar?IXn+this.avatar:(console.log("No avatar found"),uo)},defaultImg(t){t.target.src=uo},parseDate(t){let e=new Date(Date.parse(t)),r=Math.floor((new Date-e)/1e3);return r<=1?"just now":r<20?r+" seconds ago":r<40?"half a minute ago":r<60?"less than a minute ago":r<=90?"one minute ago":r<=3540?Math.round(r/60)+" minutes ago":r<=5400?"1 hour ago":r<=86400?Math.round(r/3600)+" hours ago":r<=129600?"1 day ago":r<604800?Math.round(r/86400)+" days ago":r<=777600?"1 week ago":t},prettyDate(t){let e=new Date((t||"").replace(/-/g,"/").replace(/[TZ]/g," ")),n=(new Date().getTime()-e.getTime())/1e3,r=Math.floor(n/86400);if(!(isNaN(r)||r<0||r>=31))return r==0&&(n<60&&"just now"||n<120&&"1 minute ago"||n<3600&&Math.floor(n/60)+" minutes ago"||n<7200&&"1 hour ago"||n<86400&&Math.floor(n/3600)+" hours ago")||r==1&&"Yesterday"||r<7&&r+" days ago"||r<31&&Math.ceil(r/7)+" weeks ago"},checkForFullSentence(){if(this.message.content.trim().split(" ").length>3){this.speak();return}}},watch:{audio_url(t){t&&(this.$refs.audio_player.src=t)},"message.content":function(t){this.$store.state.config.auto_speak&&(this.$store.state.config.xtts_enable&&this.$store.state.config.xtts_use_streaming_mode||this.isSpeaking||this.checkForFullSentence())},"message.ui":function(t){console.log("ui changed to",t),this.ui_componentKey++},showConfirmation(){Re(()=>{$e.replace()})},deleteMsgMode(){Re(()=>{$e.replace()})}},computed:{editMsgMode:{get(){return this.message.hasOwnProperty("open")?this.editMsgMode_||this.message.open:this.editMsgMode_},set(t){this.message.open=t,this.editMsgMode_=t,Re(()=>{$e.replace()})}},isTalking:{get(){return this.isSpeaking}},created_at(){return this.prettyDate(this.message.created_at)},created_at_parsed(){return new Date(Date.parse(this.message.created_at)).toLocaleString()},finished_generating_at_parsed(){return new Date(Date.parse(this.message.finished_generating_at)).toLocaleString()},time_spent(){const t=new Date(Date.parse(this.message.started_generating_at)),e=new Date(Date.parse(this.message.finished_generating_at));if(e.getTime()===t.getTime()||!t.getTime()||!e.getTime())return;let[r,o,i]=this.computeTimeDiff(t,e);function s(l){return l<10&&(l="0"+l),l}return s(r)+"h:"+s(o)+"m:"+s(i)+"s"},warmup_duration(){const t=new Date(Date.parse(this.message.created_at)),e=new Date(Date.parse(this.message.started_generating_at));if(console.log("Computing the warmup duration, ",t," -> ",e),e.getTime()===t.getTime())return 0;if(!t.getTime()||!e.getTime())return;let r,o,i;[r,o,i]=this.computeTimeDiff(t,e);function s(l){return l<10&&(l="0"+l),l}return s(r)+"h:"+s(o)+"m:"+s(i)+"s"},generation_rate(){const t=new Date(Date.parse(this.message.started_generating_at)),e=new Date(Date.parse(this.message.finished_generating_at)),n=this.message.nb_tokens;if(e.getTime()===t.getTime()||!n||!t.getTime()||!e.getTime())return;let o=e.getTime()-t.getTime();const i=Math.floor(o/1e3),s=n/i;return Math.round(s)+" t/s"}}},PXn={class:"relative message w-full group rounded-lg m-2 shadow-lg hover:border-primary dark:hover:border-primary hover:border-solid hover:border-2 border-2 border-transparent flex flex-col flex-grow flex-wrap overflow-visible p-4 pb-2"},VXn={class:"flex flex-row gap-2"},$Xn={class:"flex-shrink-0"},BXn={class:"group/avatar"},FXn=["src","data-popover-target"],UXn={class:"flex flex-col w-full flex-grow-0"},GXn={class:"flex flex-row flex-grow items-start"},qXn={class:"flex flex-col mb-2"},jXn={class:"drop-shadow-sm text-lg text-opacity-95 font-bold grow"},zXn=["title"],YXn={class:"overflow-x-auto w-full overflow-y-auto scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary space-y-2"},WXn={key:1},KXn=["src"],ZXn={class:"message-details w-full max-w-4xl mx-auto"},XXn={key:0,class:"steps-container bg-white/50 dark:bg-gray-800/50 rounded border border-gray-200 dark:border-gray-700 text-sm mb-2"},JXn={class:"text-gray-600 dark:text-gray-300 flex-grow"},eJn={key:0,class:"overflow-hidden"},tJn={class:"px-2 pb-2 space-y-1"},nJn={key:1,class:"flex flex-col items-start w-full overflow-y-auto scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary"},rJn={class:"flex-row justify-end mx-2"},oJn={class:"invisible group-hover:visible flex flex-row"},iJn={key:0},sJn={key:1},aJn={key:2},lJn={key:3},cJn={key:4,class:"flex items-center duration-75"},uJn={class:"flex flex-row items-center"},dJn={class:"flex flex-row items-center"},TJn={key:6,class:"flex flex-row items-center"},fJn=["src"],pJn={class:"text-sm text-gray-400 mt-2"},hJn={class:"flex flex-row items-center gap-2"},mJn={key:0},gJn={class:"font-thin"},_Jn={key:1},QJn={class:"font-thin"},vJn={key:2},yJn={class:"font-thin"},bJn={key:3},EJn=["title"],xJn={key:4},SJn=["title"],LJn={key:5},CJn=["title"],AJn={key:6},wJn=["title"];function OJn(t,e,n,r,o,i){var m;const s=Ke("MarkdownRenderer"),a=Ke("JsonViewer"),l=Ke("DynamicUIRenderer"),c=Ke("StatusIcon"),u=Ke("Step"),d=Ke("RenderHTMLJS"),f=Ke("ToolbarButton"),T=Ke("DropdownSubmenu"),g=Ke("DropdownMenu");return N(),D("div",PXn,[h("div",VXn,[h("div",$Xn,[h("div",BXn,[h("img",{src:i.getImgUrl(),onError:e[0]||(e[0]=_=>i.defaultImg(_)),"data-popover-target":"avatar"+n.message.id,"data-popover-placement":"bottom",class:"w-10 h-10 rounded-full object-fill text-red-700"},null,40,FXn)])]),h("div",UXn,[h("div",GXn,[h("div",qXn,[h("div",jXn,ee(n.message.sender),1),n.message.created_at?(N(),D("div",{key:0,class:"text-sm text-gray-400 font-thin",title:"Created at: "+i.created_at_parsed},ee(i.created_at),9,zXn)):W("",!0)]),e[46]||(e[46]=h("div",{class:"flex-grow"},null,-1))]),h("div",YXn,[i.editMsgMode?W("",!0):(N(),at(s,{key:0,ref:"mdRender",host:n.host,"markdown-text":n.message.content,message_id:n.message.id,discussion_id:n.message.discussion_id,client_id:this.$store.state.client_id},null,8,["host","markdown-text","message_id","discussion_id","client_id"])),h("div",null,[n.message.open?Y((N(),D("textarea",{key:0,ref:"mdTextarea",onKeydown:e[1]||(e[1]=ur(ie((..._)=>i.insertTab&&i.insertTab(..._),["prevent"]),["tab"])),class:"block min-h-[500px] p-2.5 w-full text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500 overflow-y-scroll flex flex-col shadow-lg p-10 pt-0 overflow-y-scroll dark:bg-bg-dark scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary",rows:4,placeholder:"Enter message here...","onUpdate:modelValue":e[2]||(e[2]=_=>n.message.content=_)}," ",544)),[[fe,n.message.content]]):W("",!0)]),n.message.metadata!==null?(N(),D("div",WXn,[(N(!0),D(Ae,null,Ge(((m=n.message.metadata)==null?void 0:m.filter(_=>_!=null&&_.hasOwnProperty("title")&&_.hasOwnProperty("content")))||[],(_,Q)=>(N(),D("div",{key:"json-"+n.message.id+"-"+Q,class:"json font-bold"},[(N(),at(a,{jsonFormText:_.title,jsonData:_.content,key:"msgjson-"+n.message.id},null,8,["jsonFormText","jsonData"]))]))),128))])):W("",!0),n.message.ui?(N(),at(l,{ref:"ui",class:"w-full",ui:n.message.ui,key:"msgui-"+n.message.id},null,8,["ui"])):W("",!0),o.audio_url!=null?(N(),D("audio",{controls:"",key:o.audio_url},[h("source",{src:o.audio_url,type:"audio/wav",ref:"audio_player"},null,8,KXn),e[47]||(e[47]=Be(" Your browser does not support the audio element. "))])):W("",!0),h("div",ZXn,[n.message.steps.length>0?(N(),D("div",XXn,[h("div",{class:"flex items-center p-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors duration-200",onClick:e[3]||(e[3]=(..._)=>i.toggleExpanded&&i.toggleExpanded(..._))},[Z(c,{status:n.message.status_message,icon:!0,class:"w-4 h-4 mr-2"},null,8,["status"]),h("span",JXn,ee(n.message.status_message),1),h("span",{class:Le(["text-xs text-gray-400 transform transition-transform duration-200",{"rotate-180":o.expanded}])},"▼",2)]),Z(lr,{"enter-active-class":"transition-all duration-200 ease-out","leave-active-class":"transition-all duration-150 ease-in","enter-from-class":"opacity-0 max-h-0","enter-to-class":"opacity-100 max-h-[500px]","leave-from-class":"opacity-100 max-h-[500px]","leave-to-class":"opacity-0 max-h-0"},{default:Se(()=>[o.expanded?(N(),D("div",eJn,[h("div",tJn,[(N(!0),D(Ae,null,Ge(n.message.steps,(_,Q)=>(N(),D("div",{key:`step-${n.message.id}-${Q}`,class:"animate-fadeIn",style:zt({animationDelay:`${Q*50}ms`})},[Z(u,{done:_.done,text:_.text,status:_.status,description:_.description,class:"text-xs rounded bg-gray-50/50 dark:bg-gray-700/50 p-2 hover:bg-gray-100 dark:hover:bg-gray-600/50"},null,8,["done","text","status","description"])],4))),128))])])):W("",!0)]),_:1})])):W("",!0),n.message.html_js_s&&n.message.html_js_s.length?(N(),D("div",nJn,[(N(!0),D(Ae,null,Ge(n.message.html_js_s,(_,Q)=>(N(),D("div",{key:`htmljs-${n.message.id}-${Q}`,class:"font-bold animate-fadeIn",style:zt({animationDelay:`${Q*200}ms`})},[Z(d,{htmlContent:_},null,8,["htmlContent"])],4))),128))])):W("",!0)])]),h("div",rJn,[h("div",oJn,[i.editMsgMode?(N(),D("div",iJn,[Z(f,{onClick:e[4]||(e[4]=ie(_=>i.editMsgMode=!1,["stop"])),title:"Cancel edit",icon:"x"}),Z(f,{onClick:ie(i.updateMessage,["stop"]),title:"Update message",icon:"check"},null,8,["onClick"]),Z(g,{title:"Add Block"},{default:Se(()=>[Z(T,{title:"Programming Languages",icon:"code"},{default:Se(()=>[Z(f,{onClick:e[5]||(e[5]=ie(_=>i.addBlock("python"),["stop"])),title:"Python",icon:"python"}),Z(f,{onClick:e[6]||(e[6]=ie(_=>i.addBlock("javascript"),["stop"])),title:"JavaScript",icon:"js"}),Z(f,{onClick:e[7]||(e[7]=ie(_=>i.addBlock("typescript"),["stop"])),title:"TypeScript",icon:"typescript"}),Z(f,{onClick:e[8]||(e[8]=ie(_=>i.addBlock("java"),["stop"])),title:"Java",icon:"java"}),Z(f,{onClick:e[9]||(e[9]=ie(_=>i.addBlock("c++"),["stop"])),title:"C++",icon:"cplusplus"}),Z(f,{onClick:e[10]||(e[10]=ie(_=>i.addBlock("csharp"),["stop"])),title:"C#",icon:"csharp"}),Z(f,{onClick:e[11]||(e[11]=ie(_=>i.addBlock("go"),["stop"])),title:"Go",icon:"go"}),Z(f,{onClick:e[12]||(e[12]=ie(_=>i.addBlock("rust"),["stop"])),title:"Rust",icon:"rust"}),Z(f,{onClick:e[13]||(e[13]=ie(_=>i.addBlock("swift"),["stop"])),title:"Swift",icon:"swift"}),Z(f,{onClick:e[14]||(e[14]=ie(_=>i.addBlock("kotlin"),["stop"])),title:"Kotlin",icon:"kotlin"}),Z(f,{onClick:e[15]||(e[15]=ie(_=>i.addBlock("r"),["stop"])),title:"R",icon:"r-project"})]),_:1}),Z(T,{title:"Web Technologies",icon:"web"},{default:Se(()=>[Z(f,{onClick:e[16]||(e[16]=ie(_=>i.addBlock("html"),["stop"])),title:"HTML",icon:"html5"}),Z(f,{onClick:e[17]||(e[17]=ie(_=>i.addBlock("css"),["stop"])),title:"CSS",icon:"css3"}),Z(f,{onClick:e[18]||(e[18]=ie(_=>i.addBlock("vue"),["stop"])),title:"Vue.js",icon:"vuejs"}),Z(f,{onClick:e[19]||(e[19]=ie(_=>i.addBlock("react"),["stop"])),title:"React",icon:"react"}),Z(f,{onClick:e[20]||(e[20]=ie(_=>i.addBlock("angular"),["stop"])),title:"Angular",icon:"angular"})]),_:1}),Z(T,{title:"Markup and Data",icon:"file-code"},{default:Se(()=>[Z(f,{onClick:e[21]||(e[21]=ie(_=>i.addBlock("xml"),["stop"])),title:"XML",icon:"xml"}),Z(f,{onClick:e[22]||(e[22]=ie(_=>i.addBlock("json"),["stop"])),title:"JSON",icon:"json"}),Z(f,{onClick:e[23]||(e[23]=ie(_=>i.addBlock("yaml"),["stop"])),title:"YAML",icon:"yaml"}),Z(f,{onClick:e[24]||(e[24]=ie(_=>i.addBlock("markdown"),["stop"])),title:"Markdown",icon:"markdown"}),Z(f,{onClick:e[25]||(e[25]=ie(_=>i.addBlock("latex"),["stop"])),title:"LaTeX",icon:"latex"})]),_:1}),Z(T,{title:"Scripting and Shell",icon:"terminal"},{default:Se(()=>[Z(f,{onClick:e[26]||(e[26]=ie(_=>i.addBlock("bash"),["stop"])),title:"Bash",icon:"bash"}),Z(f,{onClick:e[27]||(e[27]=ie(_=>i.addBlock("powershell"),["stop"])),title:"PowerShell",icon:"powershell"}),Z(f,{onClick:e[28]||(e[28]=ie(_=>i.addBlock("perl"),["stop"])),title:"Perl",icon:"perl"})]),_:1}),Z(T,{title:"Diagramming",icon:"sitemap"},{default:Se(()=>[Z(f,{onClick:e[29]||(e[29]=ie(_=>i.addBlock("mermaid"),["stop"])),title:"Mermaid",icon:"mermaid"}),Z(f,{onClick:e[30]||(e[30]=ie(_=>i.addBlock("graphviz"),["stop"])),title:"Graphviz",icon:"graphviz"}),Z(f,{onClick:e[31]||(e[31]=ie(_=>i.addBlock("plantuml"),["stop"])),title:"PlantUML",icon:"plantuml"})]),_:1}),Z(T,{title:"Database",icon:"database"},{default:Se(()=>[Z(f,{onClick:e[32]||(e[32]=ie(_=>i.addBlock("sql"),["stop"])),title:"SQL",icon:"sql"}),Z(f,{onClick:e[33]||(e[33]=ie(_=>i.addBlock("mongodb"),["stop"])),title:"MongoDB",icon:"mongodb"})]),_:1}),Z(f,{onClick:e[34]||(e[34]=ie(_=>i.addBlock(""),["stop"])),title:"Generic Block",icon:"code"})]),_:1})])):(N(),D("div",sJn,[Z(f,{onClick:e[35]||(e[35]=ie(_=>i.editMsgMode=!0,["stop"])),title:"Edit message",icon:"edit"})])),Z(f,{onClick:i.copyContentToClipboard,title:"Copy message to clipboard",icon:"copy"},null,8,["onClick"]),!i.editMsgMode&&n.message.sender!==t.$store.state.mountedPers.name?(N(),D("div",aJn,[Z(f,{onClick:e[36]||(e[36]=ie(_=>i.resendMessage("full_context"),["stop"])),title:"Resend message with full context",icon:"send"}),Z(f,{onClick:e[37]||(e[37]=ie(_=>i.resendMessage("full_context_with_internet"),["stop"])),title:"Resend message with internet search",icon:"globe"}),Z(f,{onClick:e[38]||(e[38]=ie(_=>i.resendMessage("simple_question"),["stop"])),title:"Resend message without context",icon:"sendSimple"})])):W("",!0),!i.editMsgMode&&n.message.sender===t.$store.state.mountedPers.name?(N(),D("div",lJn,[Z(f,{onClick:i.continueMessage,title:"Continue message",icon:"fastForward"},null,8,["onClick"])])):W("",!0),o.deleteMsgMode?(N(),D("div",cJn,[h("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"Cancel removal",type:"button",onClick:e[39]||(e[39]=ie(_=>o.deleteMsgMode=!1,["stop"]))},e[48]||(e[48]=[h("i",{"data-feather":"x"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 p-2 cursor-pointer",title:"Confirm removal",type:"button",onClick:e[40]||(e[40]=ie(_=>i.deleteMsg(),["stop"]))},e[49]||(e[49]=[h("i",{"data-feather":"check"},null,-1)]))])):W("",!0),!i.editMsgMode&&!o.deleteMsgMode?(N(),D("div",{key:5,class:"text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"Remove message",onClick:e[41]||(e[41]=_=>o.deleteMsgMode=!0)},e[50]||(e[50]=[h("i",{"data-feather":"trash"},null,-1)]))):W("",!0),h("div",{class:"text-lg hover:text-secondary duration-75 active:scale-90 p-2 cursor-pointer",title:"Upvote",onClick:e[42]||(e[42]=ie(_=>i.rankUp(),["stop"]))},e[51]||(e[51]=[h("i",{"data-feather":"thumbs-up"},null,-1)])),h("div",uJn,[h("div",{class:"text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"Downvote",onClick:e[43]||(e[43]=ie(_=>i.rankDown(),["stop"]))},e[52]||(e[52]=[h("i",{"data-feather":"thumbs-down"},null,-1)])),n.message.rank!=0?(N(),D("div",{key:0,class:Le(["rounded-full px-2 text-sm flex items-center justify-center font-bold cursor-pointer",n.message.rank>0?"bg-secondary":"bg-red-600"]),title:"Rank"},ee(n.message.rank),3)):W("",!0)]),h("div",dJn,[this.$store.state.config.active_tts_service!="None"?(N(),D("div",{key:0,class:Le(["text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",{"text-red-500":i.isTalking}]),title:"speak",onClick:e[44]||(e[44]=ie(_=>i.speak(),["stop"]))},e[53]||(e[53]=[h("i",{"data-feather":"volume-2"},null,-1)]),2)):W("",!0)]),this.$store.state.config.xtts_enable&&!this.$store.state.config.xtts_use_streaming_mode?(N(),D("div",TJn,[o.isSynthesizingVoice?(N(),D("img",{key:1,src:o.loading_svg},null,8,fJn)):(N(),D("div",{key:0,class:"text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"generate_audio",onClick:e[45]||(e[45]=ie(_=>i.read(),["stop"]))},e[54]||(e[54]=[h("i",{"data-feather":"voicemail"},null,-1)])))])):W("",!0)])]),h("div",pJn,[h("div",hJn,[n.message.binding?(N(),D("p",mJn,[e[55]||(e[55]=Be("Binding: ")),h("span",gJn,ee(n.message.binding),1)])):W("",!0),n.message.model?(N(),D("p",_Jn,[e[56]||(e[56]=Be("Model: ")),h("span",QJn,ee(n.message.model),1)])):W("",!0),n.message.seed?(N(),D("p",vJn,[e[57]||(e[57]=Be("Seed: ")),h("span",yJn,ee(n.message.seed),1)])):W("",!0),n.message.nb_tokens?(N(),D("p",bJn,[e[58]||(e[58]=Be("Number of tokens: ")),h("span",{class:"font-thin",title:"Number of Tokens: "+n.message.nb_tokens},ee(n.message.nb_tokens),9,EJn)])):W("",!0),i.warmup_duration?(N(),D("p",xJn,[e[59]||(e[59]=Be("Warmup duration: ")),h("span",{class:"font-thin",title:"Warmup duration: "+i.warmup_duration},ee(i.warmup_duration),9,SJn)])):W("",!0),i.time_spent?(N(),D("p",LJn,[e[60]||(e[60]=Be("Generation duration: ")),h("span",{class:"font-thin",title:"Finished generating: "+i.time_spent},ee(i.time_spent),9,CJn)])):W("",!0),i.generation_rate?(N(),D("p",AJn,[e[61]||(e[61]=Be("Rate: ")),h("span",{class:"font-thin",title:"Generation rate: "+i.generation_rate},ee(i.generation_rate),9,wJn)])):W("",!0)])])])])])}const iH=Je(HXn,[["render",OJn],["__scopeId","data-v-5c83cd0b"]]);se.defaults.baseURL="/";const MJn={data(){return{loading:!1,showMenu:!1,menuPosition:"below"}},props:{commandsList:Array,sendCommand:Function,icon:{type:String,default:""},highlighted:{type:Boolean,default:!1}},computed:{isAnyCommandChecked(){return this.commandsList.some(t=>t.is_checked)},iconParts(){if(!this.icon)return{type:null,value:null};const[t,...e]=this.icon.split(":");return{type:t,value:e.join(":")}}},methods:{selected(t){t.is_checked!==void 0&&(t.is_checked=!t.is_checked),this.sendCommand(t.value)},toggleMenu(){this.showMenu=!this.showMenu,this.showMenu&&this.$nextTick(()=>{this.calculatePosition()})},calculatePosition(){var o;const t=this.$refs.menuContainer.getBoundingClientRect(),e=((o=this.$refs.menu)==null?void 0:o.offsetHeight)||300,n=window.innerHeight-t.bottom,r=t.top;this.menuPosition=n>e||n>r?"below":"above"},handleClickOutside(t){this.$refs.menuContainer.contains(t.target)||(this.showMenu=!1)}},mounted(){document.addEventListener("click",this.handleClickOutside),window.addEventListener("resize",this.calculatePosition)},beforeUnmount(){document.removeEventListener("click",this.handleClickOutside),window.removeEventListener("resize",this.calculatePosition)}},RJn={key:0,title:"Loading..",class:"flex flex-row flex-grow justify-end"},NJn={key:1,class:"relative",ref:"menuContainer"},DJn=["data-feather"],kJn=["src"],IJn=["src"],HJn={class:"p-2 space-y-1 custom-scrollbar max-h-96 overflow-y-auto"},PJn=["title","onClick"],VJn={key:0,class:"mr-2 relative"},$Jn=["checked","onClick","id"],BJn=["for"],FJn={key:0,class:"h-3 w-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},UJn={key:1,class:"mr-2"},GJn=["data-feather"],qJn=["src"],jJn=["src"],zJn=["innerHTML"],YJn={key:0,class:"border-t border-gray-200 dark:border-gray-700"};function WJn(t,e,n,r,o,i){return o.loading?(N(),D("div",RJn)):(N(),D("div",NJn,[h("button",{onClick:e[0]||(e[0]=(...s)=>i.toggleMenu&&i.toggleMenu(...s)),class:Le(["flex items-center gap-2 px-4 py-2 text-white rounded-lg transition-all duration-300 shadow-md",{"bg-blue-600 hover:bg-blue-700":!i.isAnyCommandChecked,"bg-yellow-400 hover:bg-yellow-500":i.isAnyCommandChecked}])},[n.icon?(N(),D(Ae,{key:0},[i.iconParts.type==="feather"?(N(),D("svg",{key:0,class:"w-4 h-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","data-feather":i.iconParts.value},null,8,DJn)):i.iconParts.type==="img"?(N(),D("img",{key:1,src:i.iconParts.value,class:"w-4 h-4"},null,8,kJn)):i.iconParts.type==="b64"?(N(),D("img",{key:2,src:"data:image/png;base64,"+i.iconParts.value,class:"w-4 h-4"},null,8,IJn)):W("",!0)],64)):W("",!0),(N(),D("svg",{class:Le(["w-4 h-4 transform transition-transform",{"rotate-180":o.showMenu}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},e[1]||(e[1]=[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)]),2))],2),Z(lr,{"enter-active-class":"transition-opacity duration-200 ease-out","leave-active-class":"transition-opacity duration-150 ease-in","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:Se(()=>[o.showMenu?(N(),D("div",{key:0,ref:"menu",class:Le(["absolute z-50 mt-2 w-64 origin-top-right rounded-lg bg-white dark:bg-gray-800 shadow-xl ring-1 ring-black ring-opacity-5 focus:outline-none",o.menuPosition==="above"?"bottom-full mb-2":"top-full"])},[h("div",HJn,[(N(!0),D(Ae,null,Ge(n.commandsList,(s,a)=>(N(),D(Ae,{key:a},[h("button",{title:s.help,onClick:l=>i.selected(s),class:"flex w-full items-center rounded-md px-4 py-2 text-sm text-gray-700 dark:text-gray-200 hover:bg-blue-100 dark:hover:bg-gray-700 transition-colors duration-200"},[s.is_checked!==void 0?(N(),D("span",VJn,[h("input",{type:"checkbox",checked:s.is_checked,onClick:ie(l=>i.selected(s),["stop"]),class:"opacity-0 absolute h-4 w-4",id:`checkbox-${a}`},null,8,$Jn),h("label",{for:`checkbox-${a}`,class:Le(["flex items-center justify-center h-4 w-4 border-2 border-blue-500 rounded-sm cursor-pointer transition-colors duration-200",{"bg-blue-500 border-blue-500":s.is_checked}])},[s.is_checked?(N(),D("svg",FJn,e[2]||(e[2]=[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)]))):W("",!0)],10,BJn)])):W("",!0),s.icon?(N(),D("span",UJn,[s.icon.startsWith("feather:")?(N(),D("i",{key:0,"data-feather":s.icon.replace("feather:","")},null,8,GJn)):s.icon.startsWith("img:")?(N(),D("img",{key:1,src:s.icon.replace("img:",""),class:"w-4 h-4"},null,8,qJn)):s.icon.startsWith("b64:")?(N(),D("img",{key:2,src:`data:image/png;base64,${s.icon.replace("b64:","")}`,class:"w-4 h-4"},null,8,jJn)):W("",!0)])):W("",!0),h("span",{innerHTML:s.name,class:"truncate"},null,8,zJn)],8,PJn),a0},isCommandsValid(){return Array.isArray(this.$store.state.mountedPersArr[this.$store.state.config.active_personality_id].commands)&&this.$store.state.mountedPersArr[this.$store.state.config.active_personality_id].commands.length>0},dataLakeNames(){console.log("rag_databases",this.$store.state.config.datalakes);const t=this.$store.state.config.datalakes.map(e=>(console.log("entry",e),{name:e.alias,value:e.alias||"default_value",is_checked:e.mounted,icon:"",help:"mounts the datalake"}));return console.log("formatted datalake",t),t},functionCalls(){console.log("",this.$store.state.config.function_calls);const t=this.$store.state.config.function_calls.map(e=>(console.log("entry",e),{name:e.name,value:e.value||"default_value",is_checked:e.selected,icon:e.icon,help:e.help}));return console.log("formatted datalake",t),t}},methods:{toggleThinkFirstMode(){this.$store.state.config.think_first_mode=!this.$store.state.config.think_first_mode,this.$store.state.applyConfiguration(),this.$store.state.saveConfiguration()},toggleFunMode(){this.$store.state.config.fun_mode=!this.$store.state.config.fun_mode,this.$store.state.applyConfiguration(),this.$store.state.saveConfiguration()},showSendMenu(){clearTimeout(this.hideSendMenuTimeout),this.isSendMenuVisible=!0},hideSendMenu(){this.hideSendMenuTimeout=setTimeout(()=>{this.isSendMenuVisible=!1},300)},toggleLeftPanel(){console.log(this.$store.state.leftPanelCollapsed),this.$store.commit("setLeftPanelCollapsed",!this.$store.state.leftPanelCollapsed)},async toggleRightPanel(){console.log(this.$store.state.rightPanelCollapsed),this.$store.commit("setRightPanelCollapsed",!this.$store.state.rightPanelCollapsed),this.$store.state.rightPanelCollapsed&&(this.$store.commit("setleftPanelCollapsed",!0),this.$nextTick(()=>{this.extractHtml()})),console.log(this.$store.state.rightPanelCollapsed)},handlePaste(t){const e=(t.clipboardData||t.originalEvent.clipboardData).items;let n=[];for(let r of e)if(r.type.indexOf("image")!==-1){const o=r.getAsFile(),s=`image_${Date.now()+"_"+Math.random().toString(36).substr(2,9)}.png`;console.log("newFileName",s);const a=new File([o],s,{type:o.type});this.addFiles([a])}else if(r.kind==="file"){const o=r.getAsFile();n.push(o)}n.length>0&&this.addFiles(n)},emitloaded(){this.$emit("loaded")},download_files(){se.get("/download_files")},remove_file(t){se.get("/remove_discussion_file",{client_id:this.$store.state.client_id,name:t}).then(e=>{console.log(e)})},clear_files(){se.post("/clear_discussion_files_list",{client_id:this.$store.state.client_id}).then(t=>{console.log(t),t.data.state?(this.$store.state.toast.showToast("File removed successfully",4,!0),this.filesList.length=0,this.isFileSentList.length=0,this.totalSize=0):this.$store.state.toast.showToast("Files couldn't be removed",4,!1)})},send_file(t,e){console.log("Send file triggered");const n=new FileReader,r=24*1024;let o=0,i=0;n.onloadend=()=>{if(n.error){console.error("Error reading file:",n.error);return}const a=n.result,l=o+a.byteLength>=t.size;ze.emit("send_file_chunk",{filename:t.name,chunk:a,offset:o,isLastChunk:l,chunkIndex:i}),o+=a.byteLength,i++,l?(console.log("File sent successfully"),this.isFileSentList[this.filesList.length-1]=!0,console.log(this.isFileSentList),this.$store.state.toast.showToast("File uploaded successfully",4,!0),e()):s()};function s(){const a=t.slice(o,o+r);n.readAsArrayBuffer(a)}console.log("Uploading file"),s()},makeAnEmptyUserMessage(){this.$emit("createEmptyUserMessage",this.message),this.message=""},makeAnEmptyAIMessage(){this.$emit("createEmptyAIMessage")},toggleSendMenu(){this.isSendMenuVisible=!this.isSendMenuVisible},toggleHelpModal(){this.showHelpModal=!this.showHelpModal},updateRT(){console.log("Updating rt status"),this.is_rt?this.stopRTCom():this.startRTCom()},startRTCom(){this.is_rt=!0,console.log("is_rt:",this.is_rt),ze.emit("start_bidirectional_audio_stream"),Re(()=>{$e.replace()})},stopRTCom(){this.is_rt=!1,console.log("is_rt:",this.is_rt),ze.emit("stop_bidirectional_audio_stream"),Re(()=>{$e.replace()})},startSpeechRecognition(){"SpeechRecognition"in window||"webkitSpeechRecognition"in window?(this.recognition=new(window.SpeechRecognition||window.webkitSpeechRecognition),this.recognition.lang=this.$store.state.config.audio_in_language,this.recognition.interimResults=!0,this.recognition.onstart=()=>{this.isListeningToVoice=!0,this.silenceTimer=setTimeout(()=>{this.recognition.stop()},this.silenceTimeout)},this.recognition.onresult=t=>{let e="";for(let n=t.resultIndex;n{this.recognition.stop()},this.silenceTimeout)},this.recognition.onerror=t=>{console.error("Speech recognition error:",t.error),this.isListeningToVoice=!1,clearTimeout(this.silenceTimer)},this.recognition.onend=()=>{console.log("Speech recognition ended."),this.isListeningToVoice=!1,clearTimeout(this.silenceTimer),this.submit()},this.recognition.start()):console.error("Speech recognition is not supported in this browser.")},computedFileSize(t){return Re(()=>{$e.replace()}),Po(t)},removeItem(t){console.log("Removing ",t.name),se.post("/remove_discussion_file",{client_id:this.$store.state.client_id,name:t.name},{headers:this.posts_headers}).then(()=>{this.filesList=this.filesList.filter(e=>e!=t)}),console.log(this.filesList)},sendMessageEvent(t,e="no_internet"){this.$emit("messageSentEvent",t,e)},sendCMDEvent(t){this.$emit("sendCMDEvent",t)},async mountDB(t){console.log("datalake_name:"),console.log(t),await se.post("/toggle_mount_rag_database",{client_id:this.$store.state.client_id,datalake_name:t}),await this.$store.dispatch("refreshConfig"),console.log("Refreshed")},async toggleFunctionCall(t){console.log("function call:"),console.log(t),await se.post("/toggle_mount_rag_database",{client_id:this.$store.state.client_id,datalake_name:t}),await this.$store.dispatch("refreshConfig"),console.log("Refreshed")},addWebLink(){this.isSendMenuVisible=!1,console.log("Emitting addWebLink"),this.$emit("addWebLink")},add_file(){this.isSendMenuVisible=!1;const t=document.createElement("input");t.type="file",t.style.display="none",t.multiple=!0,document.body.appendChild(t),t.addEventListener("change",()=>{console.log("Calling Add file..."),this.addFiles(t.files),document.body.removeChild(t)}),t.click()},takePicture(){this.isSendMenuVisible=!1,ze.emit("take_picture"),ze.on("picture_taken",()=>{se.post("/get_discussion_files_list",{client_id:this.$store.state.client_id}).then(t=>{this.filesList=t.data.files,this.isFileSentList=t.data.files.map(e=>!0),console.log(`Files recovered: ${this.filesList}`)})})},submitOnEnter(t){this.loading||t.which===13&&(t.preventDefault(),t.repeat||(this.sendMessageEvent(this.message),this.message=""))},submit(){console.log("SUBMIT"),this.message&&(this.sendMessageEvent(this.message),this.message="")},submitWithInternetSearch(){console.log("SUBMIT WITH internet"),this.message&&(this.sendMessageEvent(this.message,"internet"),this.message="")},stopGenerating(){this.$emit("stopGenerating")},addFiles(t){console.log("Adding files");const e=[...t];let n=0;const r=()=>{if(n>=e.length){console.log(`Files_list: ${this.filesList}`);return}const o=e[n];this.filesList.push(o),this.isFileSentList.push(!1),this.send_file(o,()=>{n++,r()})};r()}},watch:{installedModels:{immediate:!0,handler(t){this.$nextTick(()=>{this.installedModels=t})}},model_name:{immediate:!0,handler(t){this.$nextTick(()=>{this.model_name=t})}},showfilesList(){Re(()=>{$e.replace()})},loading(t,e){Re(()=>{$e.replace()})},filesList:{handler(t,e){let n=0;if(t.length>0)for(let r=0;r{$e.replace()}),console.log("Chatbar mounted"),ze.on("rtcom_status_changed",t=>{this.$store.dispatch("fetchisRTOn"),console.log("rtcom_status_changed: ",t.status),console.log("active_tts_service: ",this.$store.state.config.active_tts_service),console.log("is_rt_on: ",this.$store.state.is_rt_on)}),this.$store.dispatch("fetchisRTOn")},activated(){Re(()=>{$e.replace()})}},eer={class:"fixed bottom-4 left-1/2 transform -translate-x-1/2 w-full max-w-lg p-3 bg-white/95 dark:bg-gray-900/95 backdrop-blur-sm rounded-xl border border-gray-200 dark:border-gray-700 shadow-2xl"},ter={key:0,class:"mb-3"},ner={class:"flex items-center justify-between mb-2"},rer=["title"],oer={class:"flex items-center gap-2"},ier={class:"text-sm",title:"Total file size and number of files"},ser={class:"flex items-center gap-2 min-w-0"},aer={key:0,class:"animate-spin",title:"Uploading..."},ler=["title"],cer={class:"flex items-center gap-2 flex-shrink-0"},uer=["title"],der=["onClick"],Ter={class:"flex flex-col gap-2"},fer={class:"flex flex-row gap-2 w-full"},per=["title"],her=["data-feather"],mer={class:"relative flex-grow"},ger={class:"absolute inset-y-0 right-0 flex items-center pr-2 space-x-1"},_er=["title"],Qer=["data-feather"],ver={class:"flex items-center justify-between relative"},yer={class:"flex items-center gap-2"},ber={class:"flex items-center gap-2"},Eer={class:"absolute right-0 bottom-full mb-12 w-48 bg-white dark:bg-gray-900 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 z-10"},xer={class:"p-2 space-y-1"},Ser={key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/70"},Ler={class:"bg-white dark:bg-gray-900 rounded-lg p-6 max-w-xl w-full relative overflow-y-auto max-h-[80vh]"};function Cer(t,e,n,r,o,i){const s=Ke("PersonalitiesCommands");return N(),D(Ae,null,[h("div",eer,[e[42]||(e[42]=h("div",{class:"flex items-center justify-between mb-3"},null,-1)),o.filesList.length>0?(N(),D("div",ter,[h("div",ner,[h("button",{class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors",title:o.showfilesList?"Hide file list":"Show file list",onClick:e[0]||(e[0]=ie(a=>o.showfilesList=!o.showfilesList,["stop"]))},e[24]||(e[24]=[h("i",{"data-feather":"list",class:"w-5 h-5"},null,-1)]),8,rer),h("div",oer,[h("span",ier,ee(o.totalSize)+" ("+ee(o.filesList.length)+") ",1),h("button",{onClick:e[1]||(e[1]=(...a)=>i.clear_files&&i.clear_files(...a)),class:"p-2 hover:text-red-500 transition-colors",title:"Clear all files"},e[25]||(e[25]=[h("i",{"data-feather":"trash",class:"w-4 h-4"},null,-1)])),h("button",{onClick:e[2]||(e[2]=(...a)=>i.download_files&&i.download_files(...a)),class:"p-2 hover:text-primary transition-colors",title:"Download all files"},e[26]||(e[26]=[h("i",{"data-feather":"download-cloud",class:"w-4 h-4"},null,-1)]))])]),Y(Z(bi,{name:"list",tag:"div",class:"max-h-40 overflow-y-auto rounded-lg bg-gray-50 dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(o.filesList,(a,l)=>(N(),D("div",{key:l+"-"+a.name,class:"flex items-center justify-between p-2 group hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors"},[h("div",ser,[o.isFileSentList[l]?W("",!0):(N(),D("div",aer,e[27]||(e[27]=[h("i",{"data-feather":"loader",class:"w-4 h-4 text-secondary"},null,-1)]))),e[28]||(e[28]=h("i",{"data-feather":"file",class:"w-4 h-4 flex-shrink-0",title:"File"},null,-1)),h("span",{class:Le(["truncate text-sm",o.isFileSentList[l]?"text-green-500":"text-gray-500"]),title:a.name},ee(a.name),11,ler)]),h("div",cer,[h("span",{class:"text-xs text-gray-500",title:i.computedFileSize(a.size)},ee(i.computedFileSize(a.size)),9,uer),h("button",{onClick:c=>i.removeItem(a),class:"opacity-0 group-hover:opacity-100 p-1 hover:text-red-500 transition-all",title:"Remove file"},e[29]||(e[29]=[h("i",{"data-feather":"x",class:"w-4 h-4"},null,-1)]),8,der)])]))),128))]),_:1},512),[[gt,o.showfilesList]])])):W("",!0),h("div",Ter,[h("div",fer,[h("button",{onClick:e[3]||(e[3]=(...a)=>i.toggleLeftPanel&&i.toggleLeftPanel(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors",title:t.$store.state.leftPanelCollapsed?"Expand Left Panel":"Collapse Left Panel"},[h("i",{"data-feather":t.$store.state.leftPanelCollapsed?"chevron-right":"chevron-left",class:"w-5 h-5"},null,8,her)],8,per),h("div",mer,[Y(h("textarea",{id:"chat","onUpdate:modelValue":e[4]||(e[4]=a=>o.message=a),onPaste:e[5]||(e[5]=(...a)=>i.handlePaste&&i.handlePaste(...a)),onKeydown:e[6]||(e[6]=ur(ie(a=>i.submitOnEnter(a),["exact"]),["enter"])),rows:"1",class:"w-full p-3 pr-24 text-sm rounded-lg bg-gray-100 dark:bg-gray-800 focus:ring-2 focus:ring-primary border border-gray-300 dark:border-gray-700 resize-y min-h-[3rem] max-h-32 overflow-auto transition-colors",placeholder:"Write your message to the AI here...",title:"Enter your message here"},null,544),[[fe,o.message]]),h("div",ger,[n.loading?(N(),D("button",{key:0,onClick:e[7]||(e[7]=(...a)=>i.stopGenerating&&i.stopGenerating(...a)),class:"p-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors",title:"Stop generating"},e[30]||(e[30]=[h("i",{"data-feather":"stop-circle",class:"w-5 h-5"},null,-1)]))):(N(),D(Ae,{key:1},[h("button",{onClick:e[8]||(e[8]=(...a)=>i.submit&&i.submit(...a)),class:"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"Send message"},e[31]||(e[31]=[h("i",{"data-feather":"send",class:"w-5 h-5"},null,-1)])),h("button",{onClick:e[9]||(e[9]=(...a)=>i.submitWithInternetSearch&&i.submitWithInternetSearch(...a)),class:"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"Send with internet search"},e[32]||(e[32]=[h("i",{"data-feather":"globe",class:"w-5 h-5"},null,-1)]))],64))])]),h("button",{onClick:e[10]||(e[10]=(...a)=>i.toggleRightPanel&&i.toggleRightPanel(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors",title:t.$store.state.rightPanelCollapsed?"Expand Right Panel":"Collapse Right Panel"},[h("i",{"data-feather":t.$store.state.rightPanelCollapsed?"chevron-left":"chevron-right",class:"w-5 h-5"},null,8,Qer)],8,_er)]),h("div",ver,[h("div",yer,[i.isCommandsValid?(N(),at(s,{key:0,commandsList:t.$store.state.mountedPersArr[t.$store.state.config.active_personality_id].commands,sendCommand:i.sendCMDEvent,"on-show-toast-message":n.onShowToastMessage,ref:"personalityCMD"},null,8,["commandsList","sendCommand","on-show-toast-message"])):W("",!0),i.isdataLakeNamesValid?(N(),at(s,{key:1,icon:"feather:book",commandsList:i.dataLakeNames,sendCommand:i.mountDB,"on-show-toast-message":n.onShowToastMessage,ref:"databasesList"},null,8,["commandsList","sendCommand","on-show-toast-message"])):W("",!0),Z(s,{icon:"feather:zap",commandsList:i.functionCalls,sendCommand:i.toggleFunctionCall,"on-show-toast-message":n.onShowToastMessage,ref:"functioncalls"},null,8,["commandsList","sendCommand","on-show-toast-message"])]),h("button",{onClick:e[11]||(e[11]=(...a)=>i.toggleThinkFirstMode&&i.toggleThinkFirstMode(...a)),class:Le(["p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",{"text-primary":t.$store.state.config.think_first_mode}]),title:"Toggle Think First Mode"},e[33]||(e[33]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[h("path",{d:"M12 2a6 6 0 0 1 6 6c0 2.42-1.61 4.5-4 5.25V15a2 2 0 0 1-4 0v-1.75C7.61 12.5 6 10.42 6 8a6 6 0 0 1 6-6z"}),h("path",{d:"M9 18h6"}),h("path",{d:"M10 22h4"})],-1)]),2),h("button",{onClick:e[12]||(e[12]=(...a)=>i.toggleFunMode&&i.toggleFunMode(...a)),class:Le(["p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",{"text-primary":t.$store.state.config.fun_mode}]),title:"Toggle Fun Mode"},e[34]||(e[34]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[h("path",{d:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z"}),h("circle",{cx:"12",cy:"12",r:"10"}),h("path",{d:"M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01"})],-1)]),2),h("div",ber,[h("button",{onClick:e[13]||(e[13]=(...a)=>i.startSpeechRecognition&&i.startSpeechRecognition(...a)),class:Le(["p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",{"text-red-500":o.isListeningToVoice}]),title:"Voice input"},e[35]||(e[35]=[h("i",{"data-feather":"mic",class:"w-5 h-5"},null,-1)]),2),t.$store.state.config.active_tts_service!=="None"&&t.$store.state.config.active_tts_service&&t.$store.state.config.active_stt_service!=="None"?(N(),D("button",{key:0,onClick:e[14]||(e[14]=(...a)=>i.updateRT&&i.updateRT(...a)),class:Le(["p-2 rounded-lg transition-colors",o.is_rt?"bg-red-500 text-white":"bg-green-500 text-white"]),title:"Toggle real-time audio mode"}," 🌟 ",2)):W("",!0),h("button",{onClick:e[15]||(e[15]=(...a)=>i.toggleSendMenu&&i.toggleSendMenu(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"More actions (Add file, take picture, etc.)"},e[36]||(e[36]=[h("i",{"data-feather":"plus-circle",class:"w-5 h-5"},null,-1)])),Y(h("div",Eer,[h("div",xer,[h("button",{onClick:e[16]||(e[16]=(...a)=>i.add_file&&i.add_file(...a)),class:"w-full p-2 flex items-center gap-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",title:"Add a file"},e[37]||(e[37]=[h("i",{"data-feather":"file-plus",class:"w-4 h-4"},null,-1),h("span",null,"Add File",-1)])),h("button",{onClick:e[17]||(e[17]=(...a)=>i.takePicture&&i.takePicture(...a)),class:"w-full p-2 flex items-center gap-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",title:"Take a picture"},e[38]||(e[38]=[h("i",{"data-feather":"camera",class:"w-4 h-4"},null,-1),h("span",null,"Take Picture",-1)])),h("button",{onClick:e[18]||(e[18]=(...a)=>i.addWebLink&&i.addWebLink(...a)),class:"w-full p-2 flex items-center gap-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",title:"Add a web link"},e[39]||(e[39]=[h("i",{"data-feather":"link",class:"w-4 h-4"},null,-1),h("span",null,"Add Web Link",-1)]))])],512),[[gt,o.isSendMenuVisible]]),h("button",{onClick:e[19]||(e[19]=(...a)=>i.makeAnEmptyUserMessage&&i.makeAnEmptyUserMessage(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"Insert an empty user message"},e[40]||(e[40]=[h("i",{"data-feather":"message-circle",class:"w-5 h-5"},null,-1)])),h("button",{onClick:e[20]||(e[20]=(...a)=>i.makeAnEmptyAIMessage&&i.makeAnEmptyAIMessage(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors text-red-400",title:"Insert an empty AI message"},e[41]||(e[41]=[h("i",{"data-feather":"cpu",class:"w-5 h-5"},null,-1)]))])])])]),h("input",{type:"file",ref:"fileDialog",onChange:e[21]||(e[21]=(...a)=>i.addFiles&&i.addFiles(...a)),multiple:"",class:"hidden"},null,544),o.showHelpModal?(N(),D("div",Ser,[h("div",Ler,[e[45]||(e[45]=h("h2",{class:"text-2xl font-bold mb-4 text-center"},"Tutorial",-1)),h("button",{onClick:e[22]||(e[22]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"absolute top-2 right-2 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300",title:"Close tutorial"},e[43]||(e[43]=[h("i",{"data-feather":"x",class:"w-6 h-6"},null,-1)])),e[46]||(e[46]=o2('

Below is an overview of the chatbar buttons and what they do.

Sends your message to the AI.
Sends your message with an internet search.
Activates voice input.
Toggles real-time audio mode.
Opens more actions (Add File, Take Picture, Add Web Link).
Opens this tutorial overlay.
Inserts an empty user message.
Inserts an empty AI message.
Toggles the left panel.
Toggles the right panel.
',2)),h("button",{onClick:e[23]||(e[23]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"absolute top-2 right-2 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300",title:"Close tutorial"},e[44]||(e[44]=[h("i",{"data-feather":"x",class:"w-6 h-6"},null,-1)]))])])):W("",!0)],64)}const sH=Je(JJn,[["render",Cer],["__scopeId","data-v-1ce2c78f"]]),Aer={name:"WelcomeComponent",data(){return{videoUrl:"",videoType:"",latestNews:"",error:"",showVideoButton:!1,lastVideoUrl:""}},computed:{getImageForVideoType(){switch(this.videoType.toLowerCase()){case"podcast":return"/podcast.png";case"music":return"/music.png";case"movie":return"/movie.png";case"tutorial":return"/tutorial.png";default:return"/play_video.png"}},logoSrc(){return this.$store.state.config&&this.$store.state.config.app_custom_logo?`/user_infos/${this.$store.state.config.app_custom_logo}`:uo}},methods:{async fetchLatestNews(){try{const t=await se.get("/get_news");this.latestNews=t.data}catch(t){console.error("Failed to fetch latest news:",t),this.error="Unable to fetch the latest news. Please try again later."}},async fetchVideoUrl(){try{const t=await se.get("/get_last_video_url");this.videoUrl=t.data.url,this.videoType=t.data.type,this.checkVideoUpdate()}catch(t){console.error("Failed to fetch video information:",t),this.error="Unable to fetch the latest video information. Please try again later."}},async handleClick(){await se.post("/set_last_viewed_video_url",{client_id:this.$store.state.client_id,last_viewed_video_url:this.videoUrl}),this.showVideoButton=!1},async checkVideoUpdate(){const e=(await se.get("/get_last_viewed_video_url")).data;console.log("storedVideoUrl"),console.log(e),this.videoUrl!==e&&(this.showVideoButton=!0)}},mounted(){this.fetchLatestNews(),this.fetchVideoUrl()}},wer={class:"flex flex-col items-center justify-center w-full h-full min-h-screen p-8"},Oer={class:"text-center max-w-4xl"},Mer={class:"flex items-center justify-center gap-8 mb-12"},Rer={class:"relative w-24 h-24"},Ner=["src"],Der={class:"flex flex-col items-start"},ker={class:"text-6xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 to-purple-600 dark:from-indigo-400 dark:to-purple-400"},Ier={class:"space-y-8 animate-fade-in-up"},Her={class:"text-4xl font-semibold"},Per={class:"text-xl max-w-3xl mx-auto"},Ver={key:0,class:"mt-12 p-6 rounded-lg shadow-md animate-fade-in-up overflow-y-scroll scrollbar-thin"},$er=["innerHTML"],Ber={key:1,class:"mt-6 text-red-500"},Fer={key:0,class:"floating-button-container"},Uer=["href"],Ger=["src","alt"];function qer(t,e,n,r,o,i){return N(),D("div",wer,[h("div",Oer,[h("div",Mer,[h("div",Rer,[h("img",{src:i.logoSrc,alt:"LoLLMS Logo",class:"w-24 h-24 rounded-full absolute animate-rolling-ball"},null,8,Ner)]),h("div",Der,[h("h1",ker,ee(t.$store.state.theme_vars.lollms_title),1),e[1]||(e[1]=h("p",{class:"text-2xl italic mt-2"}," Lord of Large Language And Multimodal Systems ",-1))])]),h("div",Ier,[h("h2",Her,ee(t.$store.state.theme_vars.lollms_welcome_short_message),1),h("p",Per,ee(t.$store.state.theme_vars.lollms_welcome_message),1)]),o.latestNews?(N(),D("div",Ver,[e[2]||(e[2]=h("h3",null,"Latest LoLLMS News",-1)),h("p",{innerHTML:o.latestNews},null,8,$er)])):W("",!0),o.error?(N(),D("div",Ber,ee(o.error),1)):W("",!0)]),o.showVideoButton?(N(),D("div",Fer,[h("a",{href:o.videoUrl,target:"_blank",class:"floating-button",onClick:e[0]||(e[0]=(...s)=>i.handleClick&&i.handleClick(...s))},[e[3]||(e[3]=h("span",{class:"tooltip"},"New ParisNeo Video!",-1)),h("img",{src:i.getImageForVideoType,alt:"New "+o.videoType,class:"w-full h-full object-cover"},null,8,Ger)],8,Uer)])):W("",!0)])}const aH=Je(Aer,[["render",qer],["__scopeId","data-v-d9375d3e"]]);var jer=function(){function t(e,n){n===void 0&&(n=[]),this._eventType=e,this._eventFunctions=n}return t.prototype.init=function(){var e=this;this._eventFunctions.forEach(function(n){typeof window<"u"&&window.addEventListener(e._eventType,n)})},t}(),q0=function(){return q0=Object.assign||function(t){for(var e,n=1,r=arguments.length;n{const e=t.data;console.log("Done"),e.status?(this.currentPersonConfig=e.config,this.showPersonalityEditor=!0):console.error(e.error)}).catch(t=>{console.error(t)})}}},Wer={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50 z-20"},Ker={class:"relative w-full max-h-full bg-bg-light dark:bg-bg-dark"},Zer={class:"w-full h-full relative items-center gap-2 rounded-lg border bg-bg-light dark:bg-bg-dark p-1.5 shadow-sm hover:shadow-none dark:border-gray-800 dark:bg-gray-900"},Xer={class:"justify-center text-center items-center w-full bg-bg-light dark:bg-bg-dark"},Jer={class:"w-full flex flex-row mt-4 text-center justify-center"},etr={class:"w-full max-h-full container bg-bg-light dark:bg-bg-dark"},ttr={class:"mb-4 w-full"},ntr={class:"w-full bg-bg-light dark:bg-bg-dark"};function rtr(t,e,n,r,o,i){return o.show?(N(),D("div",Wer,[h("div",Ker,[h("div",Zer,[h("button",{type:"button",onClick:e[0]||(e[0]=s=>i.hide()),class:"absolute top-1 right-2.5 text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-800 dark:hover:text-white"},e[17]||(e[17]=[h("svg",{"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1),h("span",{class:"sr-only"},"Close modal",-1)])),h("div",Xer,[h("div",Jer,[h("button",{type:"submit",onClick:e[1]||(e[1]=ie((...s)=>i.submitForm&&i.submitForm(...s),["prevent"])),class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"}," Commit AI to Server "),h("button",{onClick:e[2]||(e[2]=ie(s=>i.hide(),["prevent"])),class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"}," Close ")]),h("div",etr,[h("form",ttr,[h("table",ntr,[h("tr",null,[e[18]||(e[18]=h("td",null,[h("label",{for:"personalityConditioning"},"Personality Conditioning:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"personalityConditioning","onUpdate:modelValue":e[3]||(e[3]=s=>n.config.personality_conditioning=s)},null,512),[[fe,n.config.personality_conditioning]])])]),h("tr",null,[e[19]||(e[19]=h("td",null,[h("label",{for:"userMessagePrefix"},"User Message Prefix:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"userMessagePrefix","onUpdate:modelValue":e[4]||(e[4]=s=>n.config.user_message_prefix=s)},null,512),[[fe,n.config.user_message_prefix]])])]),h("tr",null,[e[20]||(e[20]=h("td",null,[h("label",{for:"aiMessagePrefix"},"AI Message Prefix:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"aiMessagePrefix","onUpdate:modelValue":e[5]||(e[5]=s=>n.config.ai_message_prefix=s)},null,512),[[fe,n.config.ai_message_prefix]])])]),h("tr",null,[e[21]||(e[21]=h("td",null,[h("label",{for:"linkText"},"Link Text:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"linkText","onUpdate:modelValue":e[6]||(e[6]=s=>n.config.link_text=s)},null,512),[[fe,n.config.link_text]])])]),h("tr",null,[e[22]||(e[22]=h("td",null,[h("label",{for:"welcomeMessage"},"Welcome Message:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"welcomeMessage","onUpdate:modelValue":e[7]||(e[7]=s=>n.config.welcome_message=s)},null,512),[[fe,n.config.welcome_message]])])]),h("tr",null,[e[23]||(e[23]=h("td",null,[h("label",{for:"modelTemperature"},"Model Temperature:")],-1)),h("td",null,[Y(h("input",{type:"number",id:"modelTemperature","onUpdate:modelValue":e[8]||(e[8]=s=>n.config.model_temperature=s)},null,512),[[fe,n.config.model_temperature]])])]),h("tr",null,[e[24]||(e[24]=h("td",null,[h("label",{for:"modelTopK"},"Model Top K:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelTopK","onUpdate:modelValue":e[9]||(e[9]=s=>n.config.model_top_k=s)},null,512),[[fe,n.config.model_top_k]])])]),h("tr",null,[e[25]||(e[25]=h("td",null,[h("label",{for:"modelTopP"},"Model Top P:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelTopP","onUpdate:modelValue":e[10]||(e[10]=s=>n.config.model_top_p=s)},null,512),[[fe,n.config.model_top_p]])])]),h("tr",null,[e[26]||(e[26]=h("td",null,[h("label",{for:"modelRepeatPenalty"},"Model Repeat Penalty:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelRepeatPenalty","onUpdate:modelValue":e[11]||(e[11]=s=>n.config.model_repeat_penalty=s)},null,512),[[fe,n.config.model_repeat_penalty]])])]),h("tr",null,[e[27]||(e[27]=h("td",null,[h("label",{for:"modelRepeatLastN"},"Model Repeat Last N:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelRepeatLastN","onUpdate:modelValue":e[12]||(e[12]=s=>n.config.model_repeat_last_n=s)},null,512),[[fe,n.config.model_repeat_last_n]])])]),h("tr",null,[e[28]||(e[28]=h("td",null,[h("label",{for:"recommendedBinding"},"Recommended Binding:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"recommendedBinding","onUpdate:modelValue":e[13]||(e[13]=s=>n.config.recommended_binding=s)},null,512),[[fe,n.config.recommended_binding]])])]),h("tr",null,[e[29]||(e[29]=h("td",null,[h("label",{for:"recommendedModel"},"Recommended Model:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"recommendedModel","onUpdate:modelValue":e[14]||(e[14]=s=>n.config.recommended_model=s)},null,512),[[fe,n.config.recommended_model]])])]),h("tr",null,[e[30]||(e[30]=h("td",null,[h("label",{class:"dark:bg-black dark:text-primary w-full",for:"dependencies"},"Dependencies:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"dependencies","onUpdate:modelValue":e[15]||(e[15]=s=>n.config.dependencies=s)},null,512),[[fe,n.config.dependencies]])])]),h("tr",null,[e[31]||(e[31]=h("td",null,[h("label",{for:"antiPrompts"},"Anti Prompts:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"antiPrompts","onUpdate:modelValue":e[16]||(e[16]=s=>n.config.anti_prompts=s)},null,512),[[fe,n.config.anti_prompts]])])])])])])])])])])):W("",!0)}const QH=Je(Yer,[["render",rtr]]),otr={data(){return{showPopup:!1,webpageUrl:"https://lollms.com/"}},methods:{show(){this.showPopup=!0},hide(){this.showPopup=!1},save_configuration(){se.post("/apply_settings",{client_id:this.$store.state.client_id,config:this.$store.state.config}).then(t=>{this.isLoading=!1,t.data.status?(this.$store.state.toast.showToast("Configuration changed successfully.",4,!0),this.settingsChanged=!1):this.$store.state.toast.showToast("Configuration change failed.",4,!1)})}}},itr={key:0,class:"fixed inset-0 flex items-center justify-center z-50"},str={class:"popup-container"},atr=["src"],ltr={class:"checkbox-container"};function ctr(t,e,n,r,o,i){return N(),at(lr,{name:"fade"},{default:Se(()=>[o.showPopup?(N(),D("div",itr,[h("div",str,[h("button",{onClick:e[0]||(e[0]=(...s)=>i.hide&&i.hide(...s)),class:"close-button"}," X "),h("iframe",{src:o.webpageUrl,class:"iframe-content"},null,8,atr),h("div",ltr,[Y(h("input",{type:"checkbox",id:"startup",class:"styled-checkbox","onUpdate:modelValue":e[1]||(e[1]=s=>this.$store.state.config.show_news_panel=s),onChange:e[2]||(e[2]=(...s)=>i.save_configuration&&i.save_configuration(...s))},null,544),[[qe,this.$store.state.config.show_news_panel]]),e[3]||(e[3]=h("label",{for:"startup",class:"checkbox-label"},"Show at startup",-1))])])])):W("",!0)]),_:1})}const vH=Je(otr,[["render",ctr],["__scopeId","data-v-d504dfc9"]]),utr="/assets/fastapi-BQj-rjUJ.png",dtr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20127.14%2096.36'%3e%3cg%20id='图层_2'%20data-name='图层%202'%3e%3cg%20id='Discord_Logos'%20data-name='Discord%20Logos'%3e%3cg%20id='Discord_Logo_-_Large_-_White'%20data-name='Discord%20Logo%20-%20Large%20-%20White'%3e%3cpath%20d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Ttr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%3e%3ccircle%20cx='25'%20cy='25'%20r='20'%20fill='none'%20stroke='black'%20stroke-width='3'%3e%3c/circle%3e%3cline%20x1='25'%20y1='30'%20x2='25'%20y2='15'%20style='stroke:black;stroke-width:3'%3e%3c/line%3e%3ccircle%20cx='25'%20cy='35'%20r='3'%20fill='black'%3e%3c/circle%3e%3c/svg%3e",ftr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%3e%3ccircle%20cx='25'%20cy='25'%20r='20'%20fill='none'%20stroke='black'%20stroke-width='3'%3e%3c/circle%3e%3cline%20x1='25'%20y1='30'%20x2='25'%20y2='15'%20style='stroke:black;stroke-width:3'%3e%3canimate%20attributeName='y1'%20values='30;25;30'%20dur='1s'%20repeatCount='indefinite'%3e%3c/animate%3e%3canimate%20attributeName='y2'%20values='15;20;15'%20dur='1s'%20repeatCount='indefinite'%3e%3c/animate%3e%3c/line%3e%3ccircle%20cx='25'%20cy='35'%20r='3'%20fill='black'%3e%3canimate%20attributeName='cy'%20values='35;30;35'%20dur='1s'%20repeatCount='indefinite'%3e%3c/animate%3e%3c/circle%3e%3c/svg%3e",ptr="data:image/svg+xml,%3c?xml%20version='1.0'%20?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20width='800px'%20height='800px'%20viewBox='0%200%2064%2064'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20data-name='Layer%205'%20id='Layer_5'%3e%3cpath%20d='M47,33H17a1,1,0,0,0-1,1c0,9.93,7.18,18,16,18s16-8.07,16-18A1,1,0,0,0,47,33ZM18,35H46a18,18,0,0,1-.67,4H18.71A18,18,0,0,1,18,35ZM26.7,48.8a6.42,6.42,0,0,1,10.6,0,12.3,12.3,0,0,1-10.6,0Zm12.34-1A8.81,8.81,0,0,0,32,44a8.81,8.81,0,0,0-7,3.81A15.56,15.56,0,0,1,19.43,41H44.57A15.56,15.56,0,0,1,39,47.81ZM36,22a1.1,1.1,0,0,1,0-.18,1.17,1.17,0,0,1,.06-.2s0-.05,0-.07a.28.28,0,0,1,.07-.09.71.71,0,0,1,.28-.28s.06-.06.09-.07l10-5a1,1,0,1,1,.9,1.78L39.24,22l8.21,4.11a1,1,0,0,1,.44,1.34A1,1,0,0,1,47,28a.93.93,0,0,1-.45-.11l-10-5h0a1.18,1.18,0,0,1-.28-.22l0-.06a.65.65,0,0,1-.1-.15s0-.05,0-.07a1.17,1.17,0,0,1-.06-.2A1.1,1.1,0,0,1,36,22ZM16.55,26.11,24.76,22l-8.21-4.11a1,1,0,1,1,.9-1.78l10,5s.06.05.09.07a.71.71,0,0,1,.28.28.28.28,0,0,1,.07.09s0,.05,0,.07a1.17,1.17,0,0,1,.06.2.82.82,0,0,1,0,.36,1.17,1.17,0,0,1-.06.2s0,.05,0,.07a.65.65,0,0,1-.1.15.21.21,0,0,0,0,.06,1.18,1.18,0,0,1-.28.22h0l-10,5A.93.93,0,0,1,17,28a1,1,0,0,1-.89-.55A1,1,0,0,1,16.55,26.11ZM60.66,36.45A29.69,29.69,0,0,0,61,32,29,29,0,0,0,3,32a29.69,29.69,0,0,0,.34,4.45,4.65,4.65,0,0,0,2.39,7.82,29,29,0,0,0,52.54,0,4.65,4.65,0,0,0,2.39-7.82ZM4.78,41.58a2.91,2.91,0,0,1-.24-.27A2.62,2.62,0,0,1,4,39.71a.61.61,0,0,1,0-.14,2.58,2.58,0,0,1,.77-1.73,4.38,4.38,0,0,1,.74-.55C7,36.38,10,34.9,12.69,33.67c-1.52,3.3-3.42,7.17-4.17,7.91a2.59,2.59,0,0,1-1.47.72A2.66,2.66,0,0,1,4.78,41.58ZM32,59A27,27,0,0,1,7.92,44.18a4.56,4.56,0,0,0,2-1.18c1.48-1.49,5-9.36,5.66-10.92a1,1,0,0,0-1.32-1.32c-.78.34-3.14,1.39-5.49,2.53-1.29.63-2.58,1.29-3.6,1.88A25.58,25.58,0,0,1,5,32a27,27,0,0,1,54,0,25.58,25.58,0,0,1-.19,3.17c-2.88-1.66-7.88-3.88-9.09-4.41a1,1,0,0,0-1.32,1.32c.69,1.56,4.18,9.43,5.66,10.92a4.56,4.56,0,0,0,2,1.18A27,27,0,0,1,32,59ZM59.46,41.31a2.91,2.91,0,0,1-.24.27A2.66,2.66,0,0,1,57,42.3a2.59,2.59,0,0,1-1.47-.72c-.75-.74-2.65-4.61-4.17-7.91,1.65.76,3.44,1.61,4.91,2.37.91.47,1.7.9,2.26,1.25a4.38,4.38,0,0,1,.74.55A2.58,2.58,0,0,1,60,39.57a.61.61,0,0,1,0,.14A2.62,2.62,0,0,1,59.46,41.31Z'/%3e%3c/g%3e%3c/svg%3e",htr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20height='800px'%20width='800px'%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20512.001%20512.001'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M256.001,0C114.841,0,0,114.841,0,256.001s114.841,256.001,256.001,256.001S512.001,397.16,512.001,256.001%20S397.16,0,256.001,0z%20M256.001,493.701c-131.069,0-237.702-106.631-237.702-237.7S124.932,18.299,256.001,18.299%20s237.702,106.632,237.702,237.702S387.068,493.701,256.001,493.701z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M371.284,296.658H138.275c-5.054,0-9.15,4.097-9.15,9.15s4.095,9.15,9.15,9.15h233.008c5.054,0,9.15-4.097,9.15-9.15%20C380.433,300.754,376.337,296.658,371.284,296.658z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M297.481,330.816h-85.403c-5.054,0-9.15,4.097-9.15,9.15s4.095,9.15,9.15,9.15h85.403c5.054,0,9.15-4.097,9.15-9.15%20S302.534,330.816,297.481,330.816z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M146.725,192.982c-18.666,0-33.852,15.186-33.852,33.852c0,18.666,15.186,33.852,33.852,33.852%20c18.666,0,33.852-15.186,33.852-33.852C180.577,208.168,165.391,192.982,146.725,192.982z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M365.275,192.982c-18.666,0-33.852,15.186-33.852,33.852c0,18.666,15.186,33.852,33.852,33.852%20s33.852-15.186,33.852-33.852C399.128,208.168,383.942,192.982,365.275,192.982z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cg%3e%3ccircle%20cx='155.969'%20cy='219.735'%20r='9.15'/%3e%3ccircle%20cx='374.338'%20cy='219.735'%20r='9.15'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",mtr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20height='800px'%20width='800px'%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20299.92%20299.92'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cg%3e%3cpath%20d='M293.4,65.2H6.52C2.914,65.2,0,68.114,0,71.72v117.36c0,3.606,2.914,6.52,6.52,6.52h6.52v32.6%20c0,3.606,2.914,6.52,6.52,6.52h260.8c3.606,0,6.52-2.914,6.52-6.52v-32.6h6.52c3.606,0,6.52-2.914,6.52-6.52V71.72%20C299.92,68.114,297.006,65.2,293.4,65.2z%20M273.84,221.68h-19.56H228.2h-26.08h-26.08h-26.08h-26.08H97.8H71.72H45.64H26.08V195.6%20h19.56h26.08H97.8h26.08h26.08h26.08h26.08h26.08h26.08h19.56V221.68z%20M286.88,182.56h-6.52H19.56h-6.52V78.24h273.84V182.56z'/%3e%3cpath%20d='M32.6,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H32.6c-3.606,0-6.52,2.914-6.52,6.52%20V163C26.08,166.606,28.994,169.52,32.6,169.52z%20M39.12,104.32H65.2v52.16H39.12V104.32z'/%3e%3cpath%20d='M97.8,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H97.8c-3.606,0-6.52,2.914-6.52,6.52%20V163C91.28,166.606,94.194,169.52,97.8,169.52z%20M104.32,104.32h26.08v52.16h-26.08V104.32z'/%3e%3cpath%20d='M163,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H163c-3.606,0-6.52,2.914-6.52,6.52%20V163C156.48,166.606,159.394,169.52,163,169.52z%20M169.52,104.32h26.08v52.16h-26.08V104.32z'/%3e%3cpath%20d='M228.2,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H228.2%20c-3.606,0-6.52,2.914-6.52,6.52V163C221.68,166.606,224.594,169.52,228.2,169.52z%20M234.72,104.32h26.08v52.16h-26.08V104.32z'/%3e%3cpath%20d='M52.16,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C49.246,221.68,52.16,218.766,52.16,215.16z'/%3e%3cpath%20d='M78.24,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C75.326,221.68,78.24,218.766,78.24,215.16z'/%3e%3cpath%20d='M104.32,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C101.406,221.68,104.32,218.766,104.32,215.16z'/%3e%3cpath%20d='M130.4,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C127.486,221.68,130.4,218.766,130.4,215.16z'/%3e%3cpath%20d='M156.48,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52s-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20S156.48,218.766,156.48,215.16z'/%3e%3cpath%20d='M182.56,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C179.646,221.68,182.56,218.766,182.56,215.16z'/%3e%3cpath%20d='M208.64,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C205.726,221.68,208.64,218.766,208.64,215.16z'/%3e%3cpath%20d='M234.72,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C231.806,221.68,234.72,218.766,234.72,215.16z'/%3e%3cpath%20d='M260.8,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C257.886,221.68,260.8,218.766,260.8,215.16z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",gtr="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='50'%20cy='50'%20r='40'%20stroke='green'%20stroke-width='4'%20fill='green'%20/%3e%3cpath%20stroke='white'%20stroke-width='4'%20d='M40%2050%20l10%2010%2020%20-20'%20fill='none'%20/%3e%3c/svg%3e",_tr="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='50'%20cy='50'%20r='40'%20stroke='red'%20stroke-width='4'%20fill='red'%20/%3e%3cline%20x1='35'%20y1='35'%20x2='65'%20y2='65'%20stroke='white'%20stroke-width='4'%20/%3e%3cline%20x1='65'%20y1='35'%20x2='35'%20y2='65'%20stroke='white'%20stroke-width='4'%20/%3e%3c/svg%3e",Qtr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20fill='%23000000'%20version='1.1'%20id='Capa_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='800px'%20height='800px'%20viewBox='0%200%20461.759%20461.759'%20xml:space='preserve'%3e%3cg%3e%3cpath%20d='M0,301.058h147.916v147.919H0V301.058z%20M194.432,448.977H342.35V301.058H194.432V448.977z%20M2.802,257.347h147.916V109.434%20H2.802V257.347z%20M325.476,92.219l-51.603-79.437l-79.441,51.601l51.604,79.437L325.476,92.219z%20M219.337,213.733l71.045,62.663%20l62.66-71.039l-71.044-62.669L219.337,213.733z%20M412.107,57.967l-80.668,49.656l49.652,80.666l80.668-49.65L412.107,57.967z'/%3e%3c/g%3e%3c/svg%3e",vtr="/assets/robot-CQPaMbxU.svg",ytr="/";se.defaults.baseURL="/";const btr={name:"MountedPersonalities",props:{onShowPersList:Function,onReady:Function},components:{Toast:o_,UniversalForm:vI},data(){return{bUrl:ytr,isMounted:!1,show:!1}},async mounted(){await this.constructor(),this.isMounted=!0},async activated(){this.isMounted&&await this.constructor()},computed:{configFile:{get(){return this.$store.state.config},set(t){this.$store.commit("setConfig",t)}},mountedPers:{get(){return console.log("asked for:",this.$store.state.mountedPers),this.$store.state.mountedPers},set(t){this.$store.commit("setMountedPers",t)}},personalities:{get(){return this.$store.state.personalities},set(t){this.$store.commit("setPersonalities",t)}},mountedPersArr:{get(){return this.$store.state.mountedPersArr},set(t){this.$store.commit("setMountedPers",t)}}},methods:{async handleOnTalk(){const t=this.mountedPers;console.log("pers:",t),this.isGenerating=!0;let e=await se.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(o=>o===t.full_path),r={client_id:this.$store.state.client_id,id:n};e=await se.post("/select_personality",r),console.log("Generating message from ",e.data.status),ze.emit("generate_msg_from",{id:-1})}},async remount_personality(){const t=this.mountedPers;if(console.log("Remounting personality ",t),!t)return{status:!1,error:"no personality - mount_personality"};try{console.log("before");const e={client_id:this.$store.state.client_id,category:t.category,folder:t.folder,language:t.language};console.log("after");const n=await se.post("/remount_personality",e);if(console.log("Remounting personality executed:",n),n)return console.log("Remounting personality res"),this.$store.state.toast.showToast("Personality remounted",4,!0),n.data;console.log("failed remount_personality")}catch(e){console.log(e.message,"remount_personality - settings");return}},onSettingsPersonality(t){try{se.get("/get_active_personality_settings").then(e=>{e&&(console.log("pers sett",e),e.data&&Object.keys(e.data).length>0?this.$refs.universalForm.showForm(e.data,"Personality settings - "+t.name,"Save changes","Cancel").then(n=>{try{se.post("/set_active_personality_settings",n).then(r=>{r&&r.data?(console.log("personality set with new settings",r.data),this.$store.state.toast.showToast("Personality settings updated successfully!",4,!0)):this.$store.state.toast.showToast(`Did not get Personality settings responses. +`+this.message.content.slice(e,n)+"\n```\n"+this.message.content.slice(n),p=p+3+t.length),this.$refs.mdTextarea.focus(),this.$refs.mdTextarea.selectionStart=this.$refs.mdTextarea.selectionEnd=p},copyContentToClipboard(){this.$emit("copy",this)},deleteMsg(){this.$emit("delete",this.message.id),this.deleteMsgMode=!1},rankUp(){this.$emit("rankUp",this.message.id)},rankDown(){this.$emit("rankDown",this.message.id)},updateMessage(){this.$emit("updateMessage",this.message.id,this.message.content,this.audio_url),this.editMsgMode=!1},resendMessage(t){this.$emit("resendMessage",this.message.id,this.message.content,t)},continueMessage(){this.$emit("continueMessage",this.message.id,this.message.content)},getImgUrl(){return this.avatar?IXn+this.avatar:(console.log("No avatar found"),uo)},defaultImg(t){t.target.src=uo},parseDate(t){let e=new Date(Date.parse(t)),r=Math.floor((new Date-e)/1e3);return r<=1?"just now":r<20?r+" seconds ago":r<40?"half a minute ago":r<60?"less than a minute ago":r<=90?"one minute ago":r<=3540?Math.round(r/60)+" minutes ago":r<=5400?"1 hour ago":r<=86400?Math.round(r/3600)+" hours ago":r<=129600?"1 day ago":r<604800?Math.round(r/86400)+" days ago":r<=777600?"1 week ago":t},prettyDate(t){let e=new Date((t||"").replace(/-/g,"/").replace(/[TZ]/g," ")),n=(new Date().getTime()-e.getTime())/1e3,r=Math.floor(n/86400);if(!(isNaN(r)||r<0||r>=31))return r==0&&(n<60&&"just now"||n<120&&"1 minute ago"||n<3600&&Math.floor(n/60)+" minutes ago"||n<7200&&"1 hour ago"||n<86400&&Math.floor(n/3600)+" hours ago")||r==1&&"Yesterday"||r<7&&r+" days ago"||r<31&&Math.ceil(r/7)+" weeks ago"},checkForFullSentence(){if(this.message.content.trim().split(" ").length>3){this.speak();return}}},watch:{audio_url(t){t&&(this.$refs.audio_player.src=t)},"message.content":function(t){this.$store.state.config.auto_speak&&(this.$store.state.config.xtts_enable&&this.$store.state.config.xtts_use_streaming_mode||this.isSpeaking||this.checkForFullSentence())},"message.ui":function(t){console.log("ui changed to",t),this.ui_componentKey++},showConfirmation(){Re(()=>{$e.replace()})},deleteMsgMode(){Re(()=>{$e.replace()})}},computed:{editMsgMode:{get(){return this.message.hasOwnProperty("open")?this.editMsgMode_||this.message.open:this.editMsgMode_},set(t){this.message.open=t,this.editMsgMode_=t,Re(()=>{$e.replace()})}},isTalking:{get(){return this.isSpeaking}},created_at(){return this.prettyDate(this.message.created_at)},created_at_parsed(){return new Date(Date.parse(this.message.created_at)).toLocaleString()},finished_generating_at_parsed(){return new Date(Date.parse(this.message.finished_generating_at)).toLocaleString()},time_spent(){const t=new Date(Date.parse(this.message.started_generating_at)),e=new Date(Date.parse(this.message.finished_generating_at));if(e.getTime()===t.getTime()||!t.getTime()||!e.getTime())return;let[r,o,i]=this.computeTimeDiff(t,e);function s(l){return l<10&&(l="0"+l),l}return s(r)+"h:"+s(o)+"m:"+s(i)+"s"},warmup_duration(){const t=new Date(Date.parse(this.message.created_at)),e=new Date(Date.parse(this.message.started_generating_at));if(console.log("Computing the warmup duration, ",t," -> ",e),e.getTime()===t.getTime())return 0;if(!t.getTime()||!e.getTime())return;let r,o,i;[r,o,i]=this.computeTimeDiff(t,e);function s(l){return l<10&&(l="0"+l),l}return s(r)+"h:"+s(o)+"m:"+s(i)+"s"},generation_rate(){const t=new Date(Date.parse(this.message.started_generating_at)),e=new Date(Date.parse(this.message.finished_generating_at)),n=this.message.nb_tokens;if(e.getTime()===t.getTime()||!n||!t.getTime()||!e.getTime())return;let o=e.getTime()-t.getTime();const i=Math.floor(o/1e3),s=n/i;return Math.round(s)+" t/s"}}},PXn={class:"relative message w-full group rounded-lg m-2 shadow-lg hover:border-primary dark:hover:border-primary hover:border-solid hover:border-2 border-2 border-transparent flex flex-col flex-grow flex-wrap overflow-visible p-4 pb-2"},VXn={class:"flex flex-row gap-2"},$Xn={class:"flex-shrink-0"},BXn={class:"group/avatar"},FXn=["src","data-popover-target"],UXn={class:"flex flex-col w-full flex-grow-0"},GXn={class:"flex flex-row flex-grow items-start"},qXn={class:"flex flex-col mb-2"},jXn={class:"drop-shadow-sm text-lg text-opacity-95 font-bold grow"},zXn=["title"],YXn={class:"overflow-x-auto w-full overflow-y-auto scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary space-y-2"},WXn={key:1},KXn=["src"],ZXn={class:"message-details w-full max-w-4xl mx-auto"},XXn={key:0,class:"steps-container bg-white/50 dark:bg-gray-800/50 rounded border border-gray-200 dark:border-gray-700 text-sm mb-2"},JXn={class:"text-gray-600 dark:text-gray-300 flex-grow"},eJn={key:0,class:"overflow-hidden"},tJn={class:"px-2 pb-2 space-y-1"},nJn={key:1,class:"flex flex-col items-start w-full overflow-y-auto scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary"},rJn={class:"flex-row justify-end mx-2"},oJn={class:"invisible group-hover:visible flex flex-row"},iJn={key:0},sJn={key:1},aJn={key:2},lJn={key:3},cJn={key:4,class:"flex items-center duration-75"},uJn={class:"flex flex-row items-center"},dJn={class:"flex flex-row items-center"},TJn={key:6,class:"flex flex-row items-center"},fJn=["src"],pJn={class:"text-sm text-gray-400 mt-2"},hJn={class:"flex flex-row items-center gap-2"},mJn={key:0},gJn={class:"font-thin"},_Jn={key:1},QJn={class:"font-thin"},vJn={key:2},yJn={class:"font-thin"},bJn={key:3},EJn=["title"],xJn={key:4},SJn=["title"],LJn={key:5},CJn=["title"],AJn={key:6},wJn=["title"];function OJn(t,e,n,r,o,i){var m;const s=Ke("MarkdownRenderer"),a=Ke("JsonViewer"),l=Ke("DynamicUIRenderer"),c=Ke("StatusIcon"),u=Ke("Step"),d=Ke("RenderHTMLJS"),f=Ke("ToolbarButton"),T=Ke("DropdownSubmenu"),g=Ke("DropdownMenu");return N(),D("div",PXn,[h("div",VXn,[h("div",$Xn,[h("div",BXn,[h("img",{src:i.getImgUrl(),onError:e[0]||(e[0]=_=>i.defaultImg(_)),"data-popover-target":"avatar"+n.message.id,"data-popover-placement":"bottom",class:"w-10 h-10 rounded-full object-fill text-red-700"},null,40,FXn)])]),h("div",UXn,[h("div",GXn,[h("div",qXn,[h("div",jXn,ee(n.message.sender),1),n.message.created_at?(N(),D("div",{key:0,class:"text-sm text-gray-400 font-thin",title:"Created at: "+i.created_at_parsed},ee(i.created_at),9,zXn)):W("",!0)]),e[46]||(e[46]=h("div",{class:"flex-grow"},null,-1))]),h("div",YXn,[i.editMsgMode?W("",!0):(N(),at(s,{key:0,ref:"mdRender",host:n.host,"markdown-text":n.message.content,message_id:n.message.id,discussion_id:n.message.discussion_id,client_id:this.$store.state.client_id},null,8,["host","markdown-text","message_id","discussion_id","client_id"])),h("div",null,[n.message.open?Y((N(),D("textarea",{key:0,ref:"mdTextarea",onKeydown:e[1]||(e[1]=ur(ie((..._)=>i.insertTab&&i.insertTab(..._),["prevent"]),["tab"])),class:"block min-h-[500px] p-2.5 w-full text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500 overflow-y-scroll flex flex-col shadow-lg p-10 pt-0 overflow-y-scroll dark:bg-bg-dark scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary",rows:4,placeholder:"Enter message here...","onUpdate:modelValue":e[2]||(e[2]=_=>n.message.content=_)}," ",544)),[[fe,n.message.content]]):W("",!0)]),n.message.metadata!==null?(N(),D("div",WXn,[(N(!0),D(Ae,null,Ge(((m=n.message.metadata)==null?void 0:m.filter(_=>_!=null&&_.hasOwnProperty("title")&&_.hasOwnProperty("content")))||[],(_,Q)=>(N(),D("div",{key:"json-"+n.message.id+"-"+Q,class:"json font-bold"},[(N(),at(a,{jsonFormText:_.title,jsonData:_.content,key:"msgjson-"+n.message.id},null,8,["jsonFormText","jsonData"]))]))),128))])):W("",!0),n.message.ui?(N(),at(l,{ref:"ui",class:"w-full",ui:n.message.ui,key:"msgui-"+n.message.id},null,8,["ui"])):W("",!0),o.audio_url!=null?(N(),D("audio",{controls:"",key:o.audio_url},[h("source",{src:o.audio_url,type:"audio/wav",ref:"audio_player"},null,8,KXn),e[47]||(e[47]=Be(" Your browser does not support the audio element. "))])):W("",!0),h("div",ZXn,[n.message.steps.length>0?(N(),D("div",XXn,[h("div",{class:"flex items-center p-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors duration-200",onClick:e[3]||(e[3]=(..._)=>i.toggleExpanded&&i.toggleExpanded(..._))},[Z(c,{status:n.message.status_message,icon:!0,class:"w-4 h-4 mr-2"},null,8,["status"]),h("span",JXn,ee(n.message.status_message),1),h("span",{class:Le(["text-xs text-gray-400 transform transition-transform duration-200",{"rotate-180":o.expanded}])},"▼",2)]),Z(lr,{"enter-active-class":"transition-all duration-200 ease-out","leave-active-class":"transition-all duration-150 ease-in","enter-from-class":"opacity-0 max-h-0","enter-to-class":"opacity-100 max-h-[500px]","leave-from-class":"opacity-100 max-h-[500px]","leave-to-class":"opacity-0 max-h-0"},{default:Se(()=>[o.expanded?(N(),D("div",eJn,[h("div",tJn,[(N(!0),D(Ae,null,Ge(n.message.steps,(_,Q)=>(N(),D("div",{key:`step-${n.message.id}-${Q}`,class:"animate-fadeIn",style:zt({animationDelay:`${Q*50}ms`})},[Z(u,{done:_.done,text:_.text,status:_.status,description:_.description,class:"text-xs rounded bg-gray-50/50 dark:bg-gray-700/50 p-2 hover:bg-gray-100 dark:hover:bg-gray-600/50"},null,8,["done","text","status","description"])],4))),128))])])):W("",!0)]),_:1})])):W("",!0),n.message.html_js_s&&n.message.html_js_s.length?(N(),D("div",nJn,[(N(!0),D(Ae,null,Ge(n.message.html_js_s,(_,Q)=>(N(),D("div",{key:`htmljs-${n.message.id}-${Q}`,class:"font-bold animate-fadeIn",style:zt({animationDelay:`${Q*200}ms`})},[Z(d,{htmlContent:_},null,8,["htmlContent"])],4))),128))])):W("",!0)])]),h("div",rJn,[h("div",oJn,[i.editMsgMode?(N(),D("div",iJn,[Z(f,{onClick:e[4]||(e[4]=ie(_=>i.editMsgMode=!1,["stop"])),title:"Cancel edit",icon:"x"}),Z(f,{onClick:ie(i.updateMessage,["stop"]),title:"Update message",icon:"check"},null,8,["onClick"]),Z(g,{title:"Add Block"},{default:Se(()=>[Z(T,{title:"Programming Languages",icon:"code"},{default:Se(()=>[Z(f,{onClick:e[5]||(e[5]=ie(_=>i.addBlock("python"),["stop"])),title:"Python",icon:"python"}),Z(f,{onClick:e[6]||(e[6]=ie(_=>i.addBlock("javascript"),["stop"])),title:"JavaScript",icon:"js"}),Z(f,{onClick:e[7]||(e[7]=ie(_=>i.addBlock("typescript"),["stop"])),title:"TypeScript",icon:"typescript"}),Z(f,{onClick:e[8]||(e[8]=ie(_=>i.addBlock("java"),["stop"])),title:"Java",icon:"java"}),Z(f,{onClick:e[9]||(e[9]=ie(_=>i.addBlock("c++"),["stop"])),title:"C++",icon:"cplusplus"}),Z(f,{onClick:e[10]||(e[10]=ie(_=>i.addBlock("csharp"),["stop"])),title:"C#",icon:"csharp"}),Z(f,{onClick:e[11]||(e[11]=ie(_=>i.addBlock("go"),["stop"])),title:"Go",icon:"go"}),Z(f,{onClick:e[12]||(e[12]=ie(_=>i.addBlock("rust"),["stop"])),title:"Rust",icon:"rust"}),Z(f,{onClick:e[13]||(e[13]=ie(_=>i.addBlock("swift"),["stop"])),title:"Swift",icon:"swift"}),Z(f,{onClick:e[14]||(e[14]=ie(_=>i.addBlock("kotlin"),["stop"])),title:"Kotlin",icon:"kotlin"}),Z(f,{onClick:e[15]||(e[15]=ie(_=>i.addBlock("r"),["stop"])),title:"R",icon:"r-project"})]),_:1}),Z(T,{title:"Web Technologies",icon:"web"},{default:Se(()=>[Z(f,{onClick:e[16]||(e[16]=ie(_=>i.addBlock("html"),["stop"])),title:"HTML",icon:"html5"}),Z(f,{onClick:e[17]||(e[17]=ie(_=>i.addBlock("css"),["stop"])),title:"CSS",icon:"css3"}),Z(f,{onClick:e[18]||(e[18]=ie(_=>i.addBlock("vue"),["stop"])),title:"Vue.js",icon:"vuejs"}),Z(f,{onClick:e[19]||(e[19]=ie(_=>i.addBlock("react"),["stop"])),title:"React",icon:"react"}),Z(f,{onClick:e[20]||(e[20]=ie(_=>i.addBlock("angular"),["stop"])),title:"Angular",icon:"angular"})]),_:1}),Z(T,{title:"Markup and Data",icon:"file-code"},{default:Se(()=>[Z(f,{onClick:e[21]||(e[21]=ie(_=>i.addBlock("xml"),["stop"])),title:"XML",icon:"xml"}),Z(f,{onClick:e[22]||(e[22]=ie(_=>i.addBlock("json"),["stop"])),title:"JSON",icon:"json"}),Z(f,{onClick:e[23]||(e[23]=ie(_=>i.addBlock("yaml"),["stop"])),title:"YAML",icon:"yaml"}),Z(f,{onClick:e[24]||(e[24]=ie(_=>i.addBlock("markdown"),["stop"])),title:"Markdown",icon:"markdown"}),Z(f,{onClick:e[25]||(e[25]=ie(_=>i.addBlock("latex"),["stop"])),title:"LaTeX",icon:"latex"})]),_:1}),Z(T,{title:"Scripting and Shell",icon:"terminal"},{default:Se(()=>[Z(f,{onClick:e[26]||(e[26]=ie(_=>i.addBlock("bash"),["stop"])),title:"Bash",icon:"bash"}),Z(f,{onClick:e[27]||(e[27]=ie(_=>i.addBlock("powershell"),["stop"])),title:"PowerShell",icon:"powershell"}),Z(f,{onClick:e[28]||(e[28]=ie(_=>i.addBlock("perl"),["stop"])),title:"Perl",icon:"perl"})]),_:1}),Z(T,{title:"Diagramming",icon:"sitemap"},{default:Se(()=>[Z(f,{onClick:e[29]||(e[29]=ie(_=>i.addBlock("mermaid"),["stop"])),title:"Mermaid",icon:"mermaid"}),Z(f,{onClick:e[30]||(e[30]=ie(_=>i.addBlock("graphviz"),["stop"])),title:"Graphviz",icon:"graphviz"}),Z(f,{onClick:e[31]||(e[31]=ie(_=>i.addBlock("plantuml"),["stop"])),title:"PlantUML",icon:"plantuml"})]),_:1}),Z(T,{title:"Database",icon:"database"},{default:Se(()=>[Z(f,{onClick:e[32]||(e[32]=ie(_=>i.addBlock("sql"),["stop"])),title:"SQL",icon:"sql"}),Z(f,{onClick:e[33]||(e[33]=ie(_=>i.addBlock("mongodb"),["stop"])),title:"MongoDB",icon:"mongodb"})]),_:1}),Z(f,{onClick:e[34]||(e[34]=ie(_=>i.addBlock(""),["stop"])),title:"Generic Block",icon:"code"})]),_:1})])):(N(),D("div",sJn,[Z(f,{onClick:e[35]||(e[35]=ie(_=>i.editMsgMode=!0,["stop"])),title:"Edit message",icon:"edit"})])),Z(f,{onClick:i.copyContentToClipboard,title:"Copy message to clipboard",icon:"copy"},null,8,["onClick"]),!i.editMsgMode&&n.message.sender!==t.$store.state.mountedPers.name?(N(),D("div",aJn,[Z(f,{onClick:e[36]||(e[36]=ie(_=>i.resendMessage("full_context"),["stop"])),title:"Resend message with full context",icon:"send"}),Z(f,{onClick:e[37]||(e[37]=ie(_=>i.resendMessage("full_context_with_internet"),["stop"])),title:"Resend message with internet search",icon:"globe"}),Z(f,{onClick:e[38]||(e[38]=ie(_=>i.resendMessage("simple_question"),["stop"])),title:"Resend message without context",icon:"sendSimple"})])):W("",!0),!i.editMsgMode&&n.message.sender===t.$store.state.mountedPers.name?(N(),D("div",lJn,[Z(f,{onClick:i.continueMessage,title:"Continue message",icon:"fastForward"},null,8,["onClick"])])):W("",!0),o.deleteMsgMode?(N(),D("div",cJn,[h("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"Cancel removal",type:"button",onClick:e[39]||(e[39]=ie(_=>o.deleteMsgMode=!1,["stop"]))},e[48]||(e[48]=[h("i",{"data-feather":"x"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 p-2 cursor-pointer",title:"Confirm removal",type:"button",onClick:e[40]||(e[40]=ie(_=>i.deleteMsg(),["stop"]))},e[49]||(e[49]=[h("i",{"data-feather":"check"},null,-1)]))])):W("",!0),!i.editMsgMode&&!o.deleteMsgMode?(N(),D("div",{key:5,class:"text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"Remove message",onClick:e[41]||(e[41]=_=>o.deleteMsgMode=!0)},e[50]||(e[50]=[h("i",{"data-feather":"trash"},null,-1)]))):W("",!0),h("div",{class:"text-lg hover:text-secondary duration-75 active:scale-90 p-2 cursor-pointer",title:"Upvote",onClick:e[42]||(e[42]=ie(_=>i.rankUp(),["stop"]))},e[51]||(e[51]=[h("i",{"data-feather":"thumbs-up"},null,-1)])),h("div",uJn,[h("div",{class:"text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"Downvote",onClick:e[43]||(e[43]=ie(_=>i.rankDown(),["stop"]))},e[52]||(e[52]=[h("i",{"data-feather":"thumbs-down"},null,-1)])),n.message.rank!=0?(N(),D("div",{key:0,class:Le(["rounded-full px-2 text-sm flex items-center justify-center font-bold cursor-pointer",n.message.rank>0?"bg-secondary":"bg-red-600"]),title:"Rank"},ee(n.message.rank),3)):W("",!0)]),h("div",dJn,[this.$store.state.config.active_tts_service!="None"?(N(),D("div",{key:0,class:Le(["text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",{"text-red-500":i.isTalking}]),title:"speak",onClick:e[44]||(e[44]=ie(_=>i.speak(),["stop"]))},e[53]||(e[53]=[h("i",{"data-feather":"volume-2"},null,-1)]),2)):W("",!0)]),this.$store.state.config.xtts_enable&&!this.$store.state.config.xtts_use_streaming_mode?(N(),D("div",TJn,[o.isSynthesizingVoice?(N(),D("img",{key:1,src:o.loading_svg},null,8,fJn)):(N(),D("div",{key:0,class:"text-lg hover:text-red-600 duration-75 active:scale-90 p-2 cursor-pointer",title:"generate_audio",onClick:e[45]||(e[45]=ie(_=>i.read(),["stop"]))},e[54]||(e[54]=[h("i",{"data-feather":"voicemail"},null,-1)])))])):W("",!0)])]),h("div",pJn,[h("div",hJn,[n.message.binding?(N(),D("p",mJn,[e[55]||(e[55]=Be("Binding: ")),h("span",gJn,ee(n.message.binding),1)])):W("",!0),n.message.model?(N(),D("p",_Jn,[e[56]||(e[56]=Be("Model: ")),h("span",QJn,ee(n.message.model),1)])):W("",!0),n.message.seed?(N(),D("p",vJn,[e[57]||(e[57]=Be("Seed: ")),h("span",yJn,ee(n.message.seed),1)])):W("",!0),n.message.nb_tokens?(N(),D("p",bJn,[e[58]||(e[58]=Be("Number of tokens: ")),h("span",{class:"font-thin",title:"Number of Tokens: "+n.message.nb_tokens},ee(n.message.nb_tokens),9,EJn)])):W("",!0),i.warmup_duration?(N(),D("p",xJn,[e[59]||(e[59]=Be("Warmup duration: ")),h("span",{class:"font-thin",title:"Warmup duration: "+i.warmup_duration},ee(i.warmup_duration),9,SJn)])):W("",!0),i.time_spent?(N(),D("p",LJn,[e[60]||(e[60]=Be("Generation duration: ")),h("span",{class:"font-thin",title:"Finished generating: "+i.time_spent},ee(i.time_spent),9,CJn)])):W("",!0),i.generation_rate?(N(),D("p",AJn,[e[61]||(e[61]=Be("Rate: ")),h("span",{class:"font-thin",title:"Generation rate: "+i.generation_rate},ee(i.generation_rate),9,wJn)])):W("",!0)])])])])])}const iH=Je(HXn,[["render",OJn],["__scopeId","data-v-5c83cd0b"]]);se.defaults.baseURL="/";const MJn={data(){return{loading:!1,showMenu:!1,menuPosition:"below"}},props:{commandsList:Array,sendCommand:Function,help:{type:String,default:""},icon:{type:String,default:""},highlighted:{type:Boolean,default:!1}},computed:{isAnyCommandChecked(){return this.commandsList.some(t=>t.is_checked)},iconParts(){if(!this.icon)return{type:null,value:null};const[t,...e]=this.icon.split(":");return{type:t,value:e.join(":")}}},methods:{selected(t){t.is_checked!==void 0&&(t.is_checked=!t.is_checked),this.sendCommand(t.value)},toggleMenu(){this.showMenu=!this.showMenu,this.showMenu&&this.$nextTick(()=>{this.calculatePosition()})},calculatePosition(){var o;const t=this.$refs.menuContainer.getBoundingClientRect(),e=((o=this.$refs.menu)==null?void 0:o.offsetHeight)||300,n=window.innerHeight-t.bottom,r=t.top;this.menuPosition=n>e||n>r?"below":"above"},handleClickOutside(t){this.$refs.menuContainer.contains(t.target)||(this.showMenu=!1)}},mounted(){document.addEventListener("click",this.handleClickOutside),window.addEventListener("resize",this.calculatePosition)},beforeUnmount(){document.removeEventListener("click",this.handleClickOutside),window.removeEventListener("resize",this.calculatePosition)}},RJn={key:0,title:"Loading..",class:"flex flex-row flex-grow justify-end"},NJn={key:1,class:"relative",ref:"menuContainer"},DJn=["title"],kJn=["data-feather"],IJn=["src"],HJn=["src"],PJn={class:"p-2 space-y-1 custom-scrollbar max-h-96 overflow-y-auto"},VJn=["title","onClick"],$Jn={key:0,class:"mr-2 relative"},BJn=["checked","onClick","id"],FJn=["for"],UJn={key:0,class:"h-3 w-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},GJn={key:1,class:"mr-2"},qJn=["data-feather"],jJn=["src"],zJn=["src"],YJn=["innerHTML"],WJn={key:0,class:"border-t border-gray-200 dark:border-gray-700"};function KJn(t,e,n,r,o,i){return o.loading?(N(),D("div",RJn)):(N(),D("div",NJn,[h("button",{onClick:e[0]||(e[0]=(...s)=>i.toggleMenu&&i.toggleMenu(...s)),class:Le(["flex items-center gap-2 px-4 py-2 text-white rounded-lg transition-all duration-300 shadow-md",{"bg-blue-600 hover:bg-blue-700":!i.isAnyCommandChecked,"bg-yellow-400 hover:bg-yellow-500":i.isAnyCommandChecked}]),title:n.help},[n.icon?(N(),D(Ae,{key:0},[i.iconParts.type==="feather"?(N(),D("svg",{key:0,class:"w-4 h-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","data-feather":i.iconParts.value},null,8,kJn)):i.iconParts.type==="img"?(N(),D("img",{key:1,src:i.iconParts.value,class:"w-4 h-4"},null,8,IJn)):i.iconParts.type==="b64"?(N(),D("img",{key:2,src:"data:image/png;base64,"+i.iconParts.value,class:"w-4 h-4"},null,8,HJn)):W("",!0)],64)):W("",!0),(N(),D("svg",{class:Le(["w-4 h-4 transform transition-transform",{"rotate-180":o.showMenu}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},e[1]||(e[1]=[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)]),2))],10,DJn),Z(lr,{"enter-active-class":"transition-opacity duration-200 ease-out","leave-active-class":"transition-opacity duration-150 ease-in","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:Se(()=>[o.showMenu?(N(),D("div",{key:0,ref:"menu",class:Le(["absolute z-50 mt-2 w-64 origin-top-right rounded-lg bg-white dark:bg-gray-800 shadow-xl ring-1 ring-black ring-opacity-5 focus:outline-none",o.menuPosition==="above"?"bottom-full mb-2":"top-full"])},[h("div",PJn,[(N(!0),D(Ae,null,Ge(n.commandsList,(s,a)=>(N(),D(Ae,{key:a},[h("button",{title:s.help,onClick:l=>i.selected(s),class:"flex w-full items-center rounded-md px-4 py-2 text-sm text-gray-700 dark:text-gray-200 hover:bg-blue-100 dark:hover:bg-gray-700 transition-colors duration-200"},[s.is_checked!==void 0?(N(),D("span",$Jn,[h("input",{type:"checkbox",checked:s.is_checked,onClick:ie(l=>i.selected(s),["stop"]),class:"opacity-0 absolute h-4 w-4",id:`checkbox-${a}`},null,8,BJn),h("label",{for:`checkbox-${a}`,class:Le(["flex items-center justify-center h-4 w-4 border-2 border-blue-500 rounded-sm cursor-pointer transition-colors duration-200",{"bg-blue-500 border-blue-500":s.is_checked}])},[s.is_checked?(N(),D("svg",UJn,e[2]||(e[2]=[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)]))):W("",!0)],10,FJn)])):W("",!0),s.icon?(N(),D("span",GJn,[s.icon.startsWith("feather:")?(N(),D("i",{key:0,"data-feather":s.icon.replace("feather:","")},null,8,qJn)):s.icon.startsWith("img:")?(N(),D("img",{key:1,src:s.icon.replace("img:",""),class:"w-4 h-4"},null,8,jJn)):s.icon.startsWith("b64:")?(N(),D("img",{key:2,src:`data:image/png;base64,${s.icon.replace("b64:","")}`,class:"w-4 h-4"},null,8,zJn)):W("",!0)])):W("",!0),h("span",{innerHTML:s.name,class:"truncate"},null,8,YJn)],8,VJn),a0},isCommandsValid(){return Array.isArray(this.$store.state.mountedPersArr[this.$store.state.config.active_personality_id].commands)&&this.$store.state.mountedPersArr[this.$store.state.config.active_personality_id].commands.length>0},dataLakeNames(){console.log("rag_databases",this.$store.state.config.datalakes);const t=this.$store.state.config.datalakes.map(e=>(console.log("entry",e),{name:e.alias,value:e.alias||"default_value",is_checked:e.mounted,icon:"",help:"mounts the datalake"}));return console.log("formatted datalake",t),t},functionCalls(){console.log("",this.$store.state.config.function_calls);const t=this.$store.state.config.function_calls.map(e=>(console.log("entry",e),{name:e.name,value:e.value||"default_value",is_checked:e.selected,icon:e.icon,help:e.help}));return console.log("formatted datalake",t),t}},methods:{toggleThinkFirstMode(){this.$store.state.config.think_first_mode=!this.$store.state.config.think_first_mode,this.$store.state.applyConfiguration(),this.$store.state.saveConfiguration()},toggleFunMode(){this.$store.state.config.fun_mode=!this.$store.state.config.fun_mode,this.$store.state.applyConfiguration(),this.$store.state.saveConfiguration()},showSendMenu(){clearTimeout(this.hideSendMenuTimeout),this.isSendMenuVisible=!0},hideSendMenu(){this.hideSendMenuTimeout=setTimeout(()=>{this.isSendMenuVisible=!1},300)},toggleLeftPanel(){console.log(this.$store.state.leftPanelCollapsed),this.$store.commit("setLeftPanelCollapsed",!this.$store.state.leftPanelCollapsed)},async toggleRightPanel(){console.log(this.$store.state.rightPanelCollapsed),this.$store.commit("setRightPanelCollapsed",!this.$store.state.rightPanelCollapsed),this.$store.state.rightPanelCollapsed&&(this.$store.commit("setleftPanelCollapsed",!0),this.$nextTick(()=>{this.extractHtml()})),console.log(this.$store.state.rightPanelCollapsed)},handlePaste(t){const e=(t.clipboardData||t.originalEvent.clipboardData).items;let n=[];for(let r of e)if(r.type.indexOf("image")!==-1){const o=r.getAsFile(),s=`image_${Date.now()+"_"+Math.random().toString(36).substr(2,9)}.png`;console.log("newFileName",s);const a=new File([o],s,{type:o.type});this.addFiles([a])}else if(r.kind==="file"){const o=r.getAsFile();n.push(o)}n.length>0&&this.addFiles(n)},emitloaded(){this.$emit("loaded")},download_files(){se.get("/download_files")},remove_file(t){se.get("/remove_discussion_file",{client_id:this.$store.state.client_id,name:t}).then(e=>{console.log(e)})},clear_files(){se.post("/clear_discussion_files_list",{client_id:this.$store.state.client_id}).then(t=>{console.log(t),t.data.state?(this.$store.state.toast.showToast("File removed successfully",4,!0),this.filesList.length=0,this.isFileSentList.length=0,this.totalSize=0):this.$store.state.toast.showToast("Files couldn't be removed",4,!1)})},send_file(t,e){console.log("Send file triggered");const n=new FileReader,r=24*1024;let o=0,i=0;n.onloadend=()=>{if(n.error){console.error("Error reading file:",n.error);return}const a=n.result,l=o+a.byteLength>=t.size;ze.emit("send_file_chunk",{filename:t.name,chunk:a,offset:o,isLastChunk:l,chunkIndex:i}),o+=a.byteLength,i++,l?(console.log("File sent successfully"),this.isFileSentList[this.filesList.length-1]=!0,console.log(this.isFileSentList),this.$store.state.toast.showToast("File uploaded successfully",4,!0),e()):s()};function s(){const a=t.slice(o,o+r);n.readAsArrayBuffer(a)}console.log("Uploading file"),s()},makeAnEmptyUserMessage(){this.$emit("createEmptyUserMessage",this.message),this.message=""},makeAnEmptyAIMessage(){this.$emit("createEmptyAIMessage")},toggleSendMenu(){this.isSendMenuVisible=!this.isSendMenuVisible},toggleHelpModal(){this.showHelpModal=!this.showHelpModal},updateRT(){console.log("Updating rt status"),this.is_rt?this.stopRTCom():this.startRTCom()},startRTCom(){this.is_rt=!0,console.log("is_rt:",this.is_rt),ze.emit("start_bidirectional_audio_stream"),Re(()=>{$e.replace()})},stopRTCom(){this.is_rt=!1,console.log("is_rt:",this.is_rt),ze.emit("stop_bidirectional_audio_stream"),Re(()=>{$e.replace()})},startSpeechRecognition(){"SpeechRecognition"in window||"webkitSpeechRecognition"in window?(this.recognition=new(window.SpeechRecognition||window.webkitSpeechRecognition),this.recognition.lang=this.$store.state.config.audio_in_language,this.recognition.interimResults=!0,this.recognition.onstart=()=>{this.isListeningToVoice=!0,this.silenceTimer=setTimeout(()=>{this.recognition.stop()},this.silenceTimeout)},this.recognition.onresult=t=>{let e="";for(let n=t.resultIndex;n{this.recognition.stop()},this.silenceTimeout)},this.recognition.onerror=t=>{console.error("Speech recognition error:",t.error),this.isListeningToVoice=!1,clearTimeout(this.silenceTimer)},this.recognition.onend=()=>{console.log("Speech recognition ended."),this.isListeningToVoice=!1,clearTimeout(this.silenceTimer),this.submit()},this.recognition.start()):console.error("Speech recognition is not supported in this browser.")},computedFileSize(t){return Re(()=>{$e.replace()}),Po(t)},removeItem(t){console.log("Removing ",t.name),se.post("/remove_discussion_file",{client_id:this.$store.state.client_id,name:t.name},{headers:this.posts_headers}).then(()=>{this.filesList=this.filesList.filter(e=>e!=t)}),console.log(this.filesList)},sendMessageEvent(t,e="no_internet"){this.$emit("messageSentEvent",t,e)},sendCMDEvent(t){this.$emit("sendCMDEvent",t)},async mountDB(t){console.log("datalake_name:"),console.log(t),await se.post("/toggle_mount_rag_database",{client_id:this.$store.state.client_id,datalake_name:t}),await this.$store.dispatch("refreshConfig"),console.log("Refreshed")},async toggleFunctionCall(t){console.log("function call:"),console.log(t),await se.post("/toggle_mount_rag_database",{client_id:this.$store.state.client_id,datalake_name:t}),await this.$store.dispatch("refreshConfig"),console.log("Refreshed")},addWebLink(){this.isSendMenuVisible=!1,console.log("Emitting addWebLink"),this.$emit("addWebLink")},add_file(){this.isSendMenuVisible=!1;const t=document.createElement("input");t.type="file",t.style.display="none",t.multiple=!0,document.body.appendChild(t),t.addEventListener("change",()=>{console.log("Calling Add file..."),this.addFiles(t.files),document.body.removeChild(t)}),t.click()},takePicture(){this.isSendMenuVisible=!1,ze.emit("take_picture"),ze.on("picture_taken",()=>{se.post("/get_discussion_files_list",{client_id:this.$store.state.client_id}).then(t=>{this.filesList=t.data.files,this.isFileSentList=t.data.files.map(e=>!0),console.log(`Files recovered: ${this.filesList}`)})})},submitOnEnter(t){this.loading||t.which===13&&(t.preventDefault(),t.repeat||(this.sendMessageEvent(this.message),this.message=""))},submit(){console.log("SUBMIT"),this.message&&(this.sendMessageEvent(this.message),this.message="")},submitWithInternetSearch(){console.log("SUBMIT WITH internet"),this.message&&(this.sendMessageEvent(this.message,"internet"),this.message="")},stopGenerating(){this.$emit("stopGenerating")},addFiles(t){console.log("Adding files");const e=[...t];let n=0;const r=()=>{if(n>=e.length){console.log(`Files_list: ${this.filesList}`);return}const o=e[n];this.filesList.push(o),this.isFileSentList.push(!1),this.send_file(o,()=>{n++,r()})};r()}},watch:{installedModels:{immediate:!0,handler(t){this.$nextTick(()=>{this.installedModels=t})}},model_name:{immediate:!0,handler(t){this.$nextTick(()=>{this.model_name=t})}},showfilesList(){Re(()=>{$e.replace()})},loading(t,e){Re(()=>{$e.replace()})},filesList:{handler(t,e){let n=0;if(t.length>0)for(let r=0;r{$e.replace()}),console.log("Chatbar mounted"),ze.on("rtcom_status_changed",t=>{this.$store.dispatch("fetchisRTOn"),console.log("rtcom_status_changed: ",t.status),console.log("active_tts_service: ",this.$store.state.config.active_tts_service),console.log("is_rt_on: ",this.$store.state.is_rt_on)}),this.$store.dispatch("fetchisRTOn")},activated(){Re(()=>{$e.replace()})}},ter={class:"fixed bottom-8 left-1/2 transform -translate-x-1/2 w-full max-w-2xl p-6 bg-white/95 dark:bg-gray-900/95 backdrop-blur-sm rounded-xl border border-gray-200 dark:border-gray-700 shadow-2xl"},ner={key:0,class:"mb-3"},rer={class:"flex items-center justify-between mb-2"},oer=["title"],ier={class:"flex items-center gap-2"},ser={class:"text-sm",title:"Total file size and number of files"},aer={class:"flex items-center gap-2 min-w-0"},ler={key:0,class:"animate-spin",title:"Uploading..."},cer=["title"],uer={class:"flex items-center gap-2 flex-shrink-0"},der=["title"],Ter=["onClick"],fer={class:"flex flex-col gap-2"},per={class:"flex flex-row gap-2 w-full"},her=["title"],mer=["data-feather"],ger={class:"relative flex-grow"},_er={class:"absolute inset-y-0 right-0 flex items-center pr-2 space-x-1"},Qer=["title"],ver=["data-feather"],yer={class:"flex items-center justify-between relative"},ber={class:"flex items-center gap-2"},Eer={class:"flex items-center gap-2"},xer={class:"absolute right-0 bottom-full mb-12 w-48 bg-white dark:bg-gray-900 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 z-10"},Ser={class:"p-2 space-y-1"},Ler={key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/70"},Cer={class:"bg-white dark:bg-gray-900 rounded-lg p-6 max-w-xl w-full relative overflow-y-auto max-h-[80vh]"};function Aer(t,e,n,r,o,i){const s=Ke("PersonalitiesCommands");return N(),D(Ae,null,[h("div",ter,[o.filesList.length>0?(N(),D("div",ner,[h("div",rer,[h("button",{class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors",title:o.showfilesList?"Hide file list":"Show file list",onClick:e[0]||(e[0]=ie(a=>o.showfilesList=!o.showfilesList,["stop"]))},e[24]||(e[24]=[h("i",{"data-feather":"list",class:"w-5 h-5"},null,-1)]),8,oer),h("div",ier,[h("span",ser,ee(o.totalSize)+" ("+ee(o.filesList.length)+") ",1),h("button",{onClick:e[1]||(e[1]=(...a)=>i.clear_files&&i.clear_files(...a)),class:"p-2 hover:text-red-500 transition-colors",title:"Clear all files"},e[25]||(e[25]=[h("i",{"data-feather":"trash",class:"w-4 h-4"},null,-1)])),h("button",{onClick:e[2]||(e[2]=(...a)=>i.download_files&&i.download_files(...a)),class:"p-2 hover:text-primary transition-colors",title:"Download all files"},e[26]||(e[26]=[h("i",{"data-feather":"download-cloud",class:"w-4 h-4"},null,-1)]))])]),Y(Z(bi,{name:"list",tag:"div",class:"max-h-40 overflow-y-auto rounded-lg bg-gray-50 dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(o.filesList,(a,l)=>(N(),D("div",{key:l+"-"+a.name,class:"flex items-center justify-between p-2 group hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors"},[h("div",aer,[o.isFileSentList[l]?W("",!0):(N(),D("div",ler,e[27]||(e[27]=[h("i",{"data-feather":"loader",class:"w-4 h-4 text-secondary"},null,-1)]))),e[28]||(e[28]=h("i",{"data-feather":"file",class:"w-4 h-4 flex-shrink-0",title:"File"},null,-1)),h("span",{class:Le(["truncate text-sm",o.isFileSentList[l]?"text-green-500":"text-gray-500"]),title:a.name},ee(a.name),11,cer)]),h("div",uer,[h("span",{class:"text-xs text-gray-500",title:i.computedFileSize(a.size)},ee(i.computedFileSize(a.size)),9,der),h("button",{onClick:c=>i.removeItem(a),class:"opacity-0 group-hover:opacity-100 p-1 hover:text-red-500 transition-all",title:"Remove file"},e[29]||(e[29]=[h("i",{"data-feather":"x",class:"w-4 h-4"},null,-1)]),8,Ter)])]))),128))]),_:1},512),[[gt,o.showfilesList]])])):W("",!0),h("div",fer,[h("div",per,[h("button",{onClick:e[3]||(e[3]=(...a)=>i.toggleLeftPanel&&i.toggleLeftPanel(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors",title:t.$store.state.leftPanelCollapsed?"Expand Left Panel":"Collapse Left Panel"},[h("i",{"data-feather":t.$store.state.leftPanelCollapsed?"chevron-right":"chevron-left",class:"w-5 h-5"},null,8,mer)],8,her),h("div",ger,[Y(h("textarea",{id:"chat","onUpdate:modelValue":e[4]||(e[4]=a=>o.message=a),onPaste:e[5]||(e[5]=(...a)=>i.handlePaste&&i.handlePaste(...a)),onKeydown:e[6]||(e[6]=ur(ie(a=>i.submitOnEnter(a),["exact"]),["enter"])),rows:"1",class:"w-full p-3 pr-24 text-sm rounded-lg bg-gray-100 dark:bg-gray-800 focus:ring-2 focus:ring-primary border border-gray-300 dark:border-gray-700 resize-y min-h-[3rem] max-h-32 overflow-auto transition-colors",placeholder:"Write your message to the AI here...",title:"Enter your message here"},null,544),[[fe,o.message]]),h("div",_er,[n.loading?(N(),D("button",{key:0,onClick:e[7]||(e[7]=(...a)=>i.stopGenerating&&i.stopGenerating(...a)),class:"p-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors",title:"Stop generating"},e[30]||(e[30]=[h("i",{"data-feather":"stop-circle",class:"w-5 h-5"},null,-1)]))):(N(),D(Ae,{key:1},[h("button",{onClick:e[8]||(e[8]=(...a)=>i.submit&&i.submit(...a)),class:"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"Send message"},e[31]||(e[31]=[h("i",{"data-feather":"send",class:"w-5 h-5"},null,-1)])),h("button",{onClick:e[9]||(e[9]=(...a)=>i.submitWithInternetSearch&&i.submitWithInternetSearch(...a)),class:"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"Send with internet search"},e[32]||(e[32]=[h("i",{"data-feather":"globe",class:"w-5 h-5"},null,-1)]))],64))])]),h("button",{onClick:e[10]||(e[10]=(...a)=>i.toggleRightPanel&&i.toggleRightPanel(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors",title:t.$store.state.rightPanelCollapsed?"Expand Right Panel":"Collapse Right Panel"},[h("i",{"data-feather":t.$store.state.rightPanelCollapsed?"chevron-left":"chevron-right",class:"w-5 h-5"},null,8,ver)],8,Qer)]),h("div",yer,[h("div",ber,[i.isCommandsValid?(N(),at(s,{key:0,help:"Personality commands",commandsList:t.$store.state.mountedPersArr[t.$store.state.config.active_personality_id].commands,sendCommand:i.sendCMDEvent,"on-show-toast-message":n.onShowToastMessage,ref:"personalityCMD"},null,8,["commandsList","sendCommand","on-show-toast-message"])):W("",!0),i.isdataLakeNamesValid?(N(),at(s,{key:1,help:"Datalakes",icon:"feather:book",commandsList:i.dataLakeNames,sendCommand:i.mountDB,"on-show-toast-message":n.onShowToastMessage,ref:"databasesList"},null,8,["commandsList","sendCommand","on-show-toast-message"])):W("",!0),Z(s,{icon:"feather:zap",help:"Function calls (WIP)",commandsList:i.functionCalls,sendCommand:i.toggleFunctionCall,"on-show-toast-message":n.onShowToastMessage,ref:"functioncalls"},null,8,["commandsList","sendCommand","on-show-toast-message"])]),h("button",{onClick:e[11]||(e[11]=(...a)=>i.toggleThinkFirstMode&&i.toggleThinkFirstMode(...a)),class:Le(["p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",{"text-primary":t.$store.state.config.think_first_mode}]),title:"Toggle Think First Mode"},e[33]||(e[33]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[h("path",{d:"M12 2a6 6 0 0 1 6 6c0 2.42-1.61 4.5-4 5.25V15a2 2 0 0 1-4 0v-1.75C7.61 12.5 6 10.42 6 8a6 6 0 0 1 6-6z"}),h("path",{d:"M9 18h6"}),h("path",{d:"M10 22h4"})],-1)]),2),h("button",{onClick:e[12]||(e[12]=(...a)=>i.toggleFunMode&&i.toggleFunMode(...a)),class:Le(["p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",{"text-primary":t.$store.state.config.fun_mode}]),title:"Toggle Fun Mode"},e[34]||(e[34]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[h("path",{d:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z"}),h("circle",{cx:"12",cy:"12",r:"10"}),h("path",{d:"M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01"})],-1)]),2),h("div",Eer,[h("button",{onClick:e[13]||(e[13]=(...a)=>i.startSpeechRecognition&&i.startSpeechRecognition(...a)),class:Le(["p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",{"text-red-500":o.isListeningToVoice}]),title:"Voice input"},e[35]||(e[35]=[h("i",{"data-feather":"mic",class:"w-5 h-5"},null,-1)]),2),t.$store.state.config.active_tts_service!=="None"&&t.$store.state.config.active_tts_service&&t.$store.state.config.active_stt_service!=="None"?(N(),D("button",{key:0,onClick:e[14]||(e[14]=(...a)=>i.updateRT&&i.updateRT(...a)),class:Le(["p-2 rounded-lg transition-colors",o.is_rt?"bg-red-500 text-white":"bg-green-500 text-white"]),title:"Toggle real-time audio mode"}," 🌟 ",2)):W("",!0),h("button",{onClick:e[15]||(e[15]=(...a)=>i.toggleSendMenu&&i.toggleSendMenu(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"More actions (Add file, take picture, etc.)"},e[36]||(e[36]=[h("i",{"data-feather":"plus-circle",class:"w-5 h-5"},null,-1)])),Y(h("div",xer,[h("div",Ser,[h("button",{onClick:e[16]||(e[16]=(...a)=>i.add_file&&i.add_file(...a)),class:"w-full p-2 flex items-center gap-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",title:"Add a file"},e[37]||(e[37]=[h("i",{"data-feather":"file-plus",class:"w-4 h-4"},null,-1),h("span",null,"Add File",-1)])),h("button",{onClick:e[17]||(e[17]=(...a)=>i.takePicture&&i.takePicture(...a)),class:"w-full p-2 flex items-center gap-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",title:"Take a picture"},e[38]||(e[38]=[h("i",{"data-feather":"camera",class:"w-4 h-4"},null,-1),h("span",null,"Take Picture",-1)])),h("button",{onClick:e[18]||(e[18]=(...a)=>i.addWebLink&&i.addWebLink(...a)),class:"w-full p-2 flex items-center gap-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",title:"Add a web link"},e[39]||(e[39]=[h("i",{"data-feather":"link",class:"w-4 h-4"},null,-1),h("span",null,"Add Web Link",-1)]))])],512),[[gt,o.isSendMenuVisible]]),h("button",{onClick:e[19]||(e[19]=(...a)=>i.makeAnEmptyUserMessage&&i.makeAnEmptyUserMessage(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",title:"Insert an empty user message"},e[40]||(e[40]=[h("i",{"data-feather":"message-circle",class:"w-5 h-5"},null,-1)])),h("button",{onClick:e[20]||(e[20]=(...a)=>i.makeAnEmptyAIMessage&&i.makeAnEmptyAIMessage(...a)),class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors text-red-400",title:"Insert an empty AI message"},e[41]||(e[41]=[h("i",{"data-feather":"cpu",class:"w-5 h-5"},null,-1)]))])])])]),h("input",{type:"file",ref:"fileDialog",onChange:e[21]||(e[21]=(...a)=>i.addFiles&&i.addFiles(...a)),multiple:"",class:"hidden"},null,544),o.showHelpModal?(N(),D("div",Ler,[h("div",Cer,[e[44]||(e[44]=h("h2",{class:"text-2xl font-bold mb-4 text-center"},"Tutorial",-1)),h("button",{onClick:e[22]||(e[22]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"absolute top-2 right-2 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300",title:"Close tutorial"},e[42]||(e[42]=[h("i",{"data-feather":"x",class:"w-6 h-6"},null,-1)])),e[45]||(e[45]=o2('

Below is an overview of the chatbar buttons and what they do.

Sends your message to the AI.
Sends your message with an internet search.
Activates voice input.
Toggles real-time audio mode.
Opens more actions (Add File, Take Picture, Add Web Link).
Opens this tutorial overlay.
Inserts an empty user message.
Inserts an empty AI message.
Toggles the left panel.
Toggles the right panel.
',2)),h("button",{onClick:e[23]||(e[23]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"absolute top-2 right-2 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300",title:"Close tutorial"},e[43]||(e[43]=[h("i",{"data-feather":"x",class:"w-6 h-6"},null,-1)]))])])):W("",!0)],64)}const sH=Je(eer,[["render",Aer],["__scopeId","data-v-3071a639"]]),wer={name:"WelcomeComponent",data(){return{videoUrl:"",videoType:"",latestNews:"",error:"",showVideoButton:!1,lastVideoUrl:""}},computed:{getImageForVideoType(){switch(this.videoType.toLowerCase()){case"podcast":return"/podcast.png";case"music":return"/music.png";case"movie":return"/movie.png";case"tutorial":return"/tutorial.png";default:return"/play_video.png"}},logoSrc(){return this.$store.state.config&&this.$store.state.config.app_custom_logo?`/user_infos/${this.$store.state.config.app_custom_logo}`:uo}},methods:{async fetchLatestNews(){try{const t=await se.get("/get_news");this.latestNews=t.data}catch(t){console.error("Failed to fetch latest news:",t),this.error="Unable to fetch the latest news. Please try again later."}},async fetchVideoUrl(){try{const t=await se.get("/get_last_video_url");this.videoUrl=t.data.url,this.videoType=t.data.type,this.checkVideoUpdate()}catch(t){console.error("Failed to fetch video information:",t),this.error="Unable to fetch the latest video information. Please try again later."}},async handleClick(){await se.post("/set_last_viewed_video_url",{client_id:this.$store.state.client_id,last_viewed_video_url:this.videoUrl}),this.showVideoButton=!1},async checkVideoUpdate(){const e=(await se.get("/get_last_viewed_video_url")).data;console.log("storedVideoUrl"),console.log(e),this.videoUrl!==e&&(this.showVideoButton=!0)}},mounted(){this.fetchLatestNews(),this.fetchVideoUrl()}},Oer={class:"flex flex-col items-center justify-center w-full h-full min-h-screen p-8"},Mer={class:"text-center max-w-4xl"},Rer={class:"flex items-center justify-center gap-8 mb-12"},Ner={class:"relative w-24 h-24"},Der=["src"],ker={class:"flex flex-col items-start"},Ier={class:"text-6xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 to-purple-600 dark:from-indigo-400 dark:to-purple-400"},Her={class:"space-y-8 animate-fade-in-up"},Per={class:"text-4xl font-semibold"},Ver={class:"text-xl max-w-3xl mx-auto"},$er={key:0,class:"mt-12 p-6 rounded-lg shadow-md animate-fade-in-up overflow-y-scroll scrollbar-thin"},Ber=["innerHTML"],Fer={key:1,class:"mt-6 text-red-500"},Uer={key:0,class:"floating-button-container"},Ger=["href"],qer=["src","alt"];function jer(t,e,n,r,o,i){return N(),D("div",Oer,[h("div",Mer,[h("div",Rer,[h("div",Ner,[h("img",{src:i.logoSrc,alt:"LoLLMS Logo",class:"w-24 h-24 rounded-full absolute animate-rolling-ball"},null,8,Der)]),h("div",ker,[h("h1",Ier,ee(t.$store.state.theme_vars.lollms_title),1),e[1]||(e[1]=h("p",{class:"text-2xl italic mt-2"}," Lord of Large Language And Multimodal Systems ",-1))])]),h("div",Her,[h("h2",Per,ee(t.$store.state.theme_vars.lollms_welcome_short_message),1),h("p",Ver,ee(t.$store.state.theme_vars.lollms_welcome_message),1)]),o.latestNews?(N(),D("div",$er,[e[2]||(e[2]=h("h3",null,"Latest LoLLMS News",-1)),h("p",{innerHTML:o.latestNews},null,8,Ber)])):W("",!0),o.error?(N(),D("div",Fer,ee(o.error),1)):W("",!0)]),o.showVideoButton?(N(),D("div",Uer,[h("a",{href:o.videoUrl,target:"_blank",class:"floating-button",onClick:e[0]||(e[0]=(...s)=>i.handleClick&&i.handleClick(...s))},[e[3]||(e[3]=h("span",{class:"tooltip"},"New ParisNeo Video!",-1)),h("img",{src:i.getImageForVideoType,alt:"New "+o.videoType,class:"w-full h-full object-cover"},null,8,qer)],8,Ger)])):W("",!0)])}const aH=Je(wer,[["render",jer],["__scopeId","data-v-d9375d3e"]]);var zer=function(){function t(e,n){n===void 0&&(n=[]),this._eventType=e,this._eventFunctions=n}return t.prototype.init=function(){var e=this;this._eventFunctions.forEach(function(n){typeof window<"u"&&window.addEventListener(e._eventType,n)})},t}(),q0=function(){return q0=Object.assign||function(t){for(var e,n=1,r=arguments.length;n{const e=t.data;console.log("Done"),e.status?(this.currentPersonConfig=e.config,this.showPersonalityEditor=!0):console.error(e.error)}).catch(t=>{console.error(t)})}}},Ker={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50 z-20"},Zer={class:"relative w-full max-h-full bg-bg-light dark:bg-bg-dark"},Xer={class:"w-full h-full relative items-center gap-2 rounded-lg border bg-bg-light dark:bg-bg-dark p-1.5 shadow-sm hover:shadow-none dark:border-gray-800 dark:bg-gray-900"},Jer={class:"justify-center text-center items-center w-full bg-bg-light dark:bg-bg-dark"},etr={class:"w-full flex flex-row mt-4 text-center justify-center"},ttr={class:"w-full max-h-full container bg-bg-light dark:bg-bg-dark"},ntr={class:"mb-4 w-full"},rtr={class:"w-full bg-bg-light dark:bg-bg-dark"};function otr(t,e,n,r,o,i){return o.show?(N(),D("div",Ker,[h("div",Zer,[h("div",Xer,[h("button",{type:"button",onClick:e[0]||(e[0]=s=>i.hide()),class:"absolute top-1 right-2.5 text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-800 dark:hover:text-white"},e[17]||(e[17]=[h("svg",{"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1),h("span",{class:"sr-only"},"Close modal",-1)])),h("div",Jer,[h("div",etr,[h("button",{type:"submit",onClick:e[1]||(e[1]=ie((...s)=>i.submitForm&&i.submitForm(...s),["prevent"])),class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"}," Commit AI to Server "),h("button",{onClick:e[2]||(e[2]=ie(s=>i.hide(),["prevent"])),class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"}," Close ")]),h("div",ttr,[h("form",ntr,[h("table",rtr,[h("tr",null,[e[18]||(e[18]=h("td",null,[h("label",{for:"personalityConditioning"},"Personality Conditioning:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"personalityConditioning","onUpdate:modelValue":e[3]||(e[3]=s=>n.config.personality_conditioning=s)},null,512),[[fe,n.config.personality_conditioning]])])]),h("tr",null,[e[19]||(e[19]=h("td",null,[h("label",{for:"userMessagePrefix"},"User Message Prefix:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"userMessagePrefix","onUpdate:modelValue":e[4]||(e[4]=s=>n.config.user_message_prefix=s)},null,512),[[fe,n.config.user_message_prefix]])])]),h("tr",null,[e[20]||(e[20]=h("td",null,[h("label",{for:"aiMessagePrefix"},"AI Message Prefix:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"aiMessagePrefix","onUpdate:modelValue":e[5]||(e[5]=s=>n.config.ai_message_prefix=s)},null,512),[[fe,n.config.ai_message_prefix]])])]),h("tr",null,[e[21]||(e[21]=h("td",null,[h("label",{for:"linkText"},"Link Text:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"linkText","onUpdate:modelValue":e[6]||(e[6]=s=>n.config.link_text=s)},null,512),[[fe,n.config.link_text]])])]),h("tr",null,[e[22]||(e[22]=h("td",null,[h("label",{for:"welcomeMessage"},"Welcome Message:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"welcomeMessage","onUpdate:modelValue":e[7]||(e[7]=s=>n.config.welcome_message=s)},null,512),[[fe,n.config.welcome_message]])])]),h("tr",null,[e[23]||(e[23]=h("td",null,[h("label",{for:"modelTemperature"},"Model Temperature:")],-1)),h("td",null,[Y(h("input",{type:"number",id:"modelTemperature","onUpdate:modelValue":e[8]||(e[8]=s=>n.config.model_temperature=s)},null,512),[[fe,n.config.model_temperature]])])]),h("tr",null,[e[24]||(e[24]=h("td",null,[h("label",{for:"modelTopK"},"Model Top K:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelTopK","onUpdate:modelValue":e[9]||(e[9]=s=>n.config.model_top_k=s)},null,512),[[fe,n.config.model_top_k]])])]),h("tr",null,[e[25]||(e[25]=h("td",null,[h("label",{for:"modelTopP"},"Model Top P:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelTopP","onUpdate:modelValue":e[10]||(e[10]=s=>n.config.model_top_p=s)},null,512),[[fe,n.config.model_top_p]])])]),h("tr",null,[e[26]||(e[26]=h("td",null,[h("label",{for:"modelRepeatPenalty"},"Model Repeat Penalty:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelRepeatPenalty","onUpdate:modelValue":e[11]||(e[11]=s=>n.config.model_repeat_penalty=s)},null,512),[[fe,n.config.model_repeat_penalty]])])]),h("tr",null,[e[27]||(e[27]=h("td",null,[h("label",{for:"modelRepeatLastN"},"Model Repeat Last N:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"number",id:"modelRepeatLastN","onUpdate:modelValue":e[12]||(e[12]=s=>n.config.model_repeat_last_n=s)},null,512),[[fe,n.config.model_repeat_last_n]])])]),h("tr",null,[e[28]||(e[28]=h("td",null,[h("label",{for:"recommendedBinding"},"Recommended Binding:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"recommendedBinding","onUpdate:modelValue":e[13]||(e[13]=s=>n.config.recommended_binding=s)},null,512),[[fe,n.config.recommended_binding]])])]),h("tr",null,[e[29]||(e[29]=h("td",null,[h("label",{for:"recommendedModel"},"Recommended Model:")],-1)),h("td",null,[Y(h("input",{class:"dark:bg-black dark:text-primary w-full",type:"text",id:"recommendedModel","onUpdate:modelValue":e[14]||(e[14]=s=>n.config.recommended_model=s)},null,512),[[fe,n.config.recommended_model]])])]),h("tr",null,[e[30]||(e[30]=h("td",null,[h("label",{class:"dark:bg-black dark:text-primary w-full",for:"dependencies"},"Dependencies:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"dependencies","onUpdate:modelValue":e[15]||(e[15]=s=>n.config.dependencies=s)},null,512),[[fe,n.config.dependencies]])])]),h("tr",null,[e[31]||(e[31]=h("td",null,[h("label",{for:"antiPrompts"},"Anti Prompts:")],-1)),h("td",null,[Y(h("textarea",{class:"dark:bg-black dark:text-primary w-full",id:"antiPrompts","onUpdate:modelValue":e[16]||(e[16]=s=>n.config.anti_prompts=s)},null,512),[[fe,n.config.anti_prompts]])])])])])])])])])])):W("",!0)}const QH=Je(Wer,[["render",otr]]),itr={data(){return{showPopup:!1,webpageUrl:"https://lollms.com/"}},methods:{show(){this.showPopup=!0},hide(){this.showPopup=!1},save_configuration(){se.post("/apply_settings",{client_id:this.$store.state.client_id,config:this.$store.state.config}).then(t=>{this.isLoading=!1,t.data.status?(this.$store.state.toast.showToast("Configuration changed successfully.",4,!0),this.settingsChanged=!1):this.$store.state.toast.showToast("Configuration change failed.",4,!1)})}}},str={key:0,class:"fixed inset-0 flex items-center justify-center z-50"},atr={class:"popup-container"},ltr=["src"],ctr={class:"checkbox-container"};function utr(t,e,n,r,o,i){return N(),at(lr,{name:"fade"},{default:Se(()=>[o.showPopup?(N(),D("div",str,[h("div",atr,[h("button",{onClick:e[0]||(e[0]=(...s)=>i.hide&&i.hide(...s)),class:"close-button"}," X "),h("iframe",{src:o.webpageUrl,class:"iframe-content"},null,8,ltr),h("div",ctr,[Y(h("input",{type:"checkbox",id:"startup",class:"styled-checkbox","onUpdate:modelValue":e[1]||(e[1]=s=>this.$store.state.config.show_news_panel=s),onChange:e[2]||(e[2]=(...s)=>i.save_configuration&&i.save_configuration(...s))},null,544),[[qe,this.$store.state.config.show_news_panel]]),e[3]||(e[3]=h("label",{for:"startup",class:"checkbox-label"},"Show at startup",-1))])])])):W("",!0)]),_:1})}const vH=Je(itr,[["render",utr],["__scopeId","data-v-d504dfc9"]]),dtr="/assets/fastapi-BQj-rjUJ.png",Ttr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20127.14%2096.36'%3e%3cg%20id='图层_2'%20data-name='图层%202'%3e%3cg%20id='Discord_Logos'%20data-name='Discord%20Logos'%3e%3cg%20id='Discord_Logo_-_Large_-_White'%20data-name='Discord%20Logo%20-%20Large%20-%20White'%3e%3cpath%20d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",ftr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%3e%3ccircle%20cx='25'%20cy='25'%20r='20'%20fill='none'%20stroke='black'%20stroke-width='3'%3e%3c/circle%3e%3cline%20x1='25'%20y1='30'%20x2='25'%20y2='15'%20style='stroke:black;stroke-width:3'%3e%3c/line%3e%3ccircle%20cx='25'%20cy='35'%20r='3'%20fill='black'%3e%3c/circle%3e%3c/svg%3e",ptr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%3e%3ccircle%20cx='25'%20cy='25'%20r='20'%20fill='none'%20stroke='black'%20stroke-width='3'%3e%3c/circle%3e%3cline%20x1='25'%20y1='30'%20x2='25'%20y2='15'%20style='stroke:black;stroke-width:3'%3e%3canimate%20attributeName='y1'%20values='30;25;30'%20dur='1s'%20repeatCount='indefinite'%3e%3c/animate%3e%3canimate%20attributeName='y2'%20values='15;20;15'%20dur='1s'%20repeatCount='indefinite'%3e%3c/animate%3e%3c/line%3e%3ccircle%20cx='25'%20cy='35'%20r='3'%20fill='black'%3e%3canimate%20attributeName='cy'%20values='35;30;35'%20dur='1s'%20repeatCount='indefinite'%3e%3c/animate%3e%3c/circle%3e%3c/svg%3e",htr="data:image/svg+xml,%3c?xml%20version='1.0'%20?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20width='800px'%20height='800px'%20viewBox='0%200%2064%2064'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20data-name='Layer%205'%20id='Layer_5'%3e%3cpath%20d='M47,33H17a1,1,0,0,0-1,1c0,9.93,7.18,18,16,18s16-8.07,16-18A1,1,0,0,0,47,33ZM18,35H46a18,18,0,0,1-.67,4H18.71A18,18,0,0,1,18,35ZM26.7,48.8a6.42,6.42,0,0,1,10.6,0,12.3,12.3,0,0,1-10.6,0Zm12.34-1A8.81,8.81,0,0,0,32,44a8.81,8.81,0,0,0-7,3.81A15.56,15.56,0,0,1,19.43,41H44.57A15.56,15.56,0,0,1,39,47.81ZM36,22a1.1,1.1,0,0,1,0-.18,1.17,1.17,0,0,1,.06-.2s0-.05,0-.07a.28.28,0,0,1,.07-.09.71.71,0,0,1,.28-.28s.06-.06.09-.07l10-5a1,1,0,1,1,.9,1.78L39.24,22l8.21,4.11a1,1,0,0,1,.44,1.34A1,1,0,0,1,47,28a.93.93,0,0,1-.45-.11l-10-5h0a1.18,1.18,0,0,1-.28-.22l0-.06a.65.65,0,0,1-.1-.15s0-.05,0-.07a1.17,1.17,0,0,1-.06-.2A1.1,1.1,0,0,1,36,22ZM16.55,26.11,24.76,22l-8.21-4.11a1,1,0,1,1,.9-1.78l10,5s.06.05.09.07a.71.71,0,0,1,.28.28.28.28,0,0,1,.07.09s0,.05,0,.07a1.17,1.17,0,0,1,.06.2.82.82,0,0,1,0,.36,1.17,1.17,0,0,1-.06.2s0,.05,0,.07a.65.65,0,0,1-.1.15.21.21,0,0,0,0,.06,1.18,1.18,0,0,1-.28.22h0l-10,5A.93.93,0,0,1,17,28a1,1,0,0,1-.89-.55A1,1,0,0,1,16.55,26.11ZM60.66,36.45A29.69,29.69,0,0,0,61,32,29,29,0,0,0,3,32a29.69,29.69,0,0,0,.34,4.45,4.65,4.65,0,0,0,2.39,7.82,29,29,0,0,0,52.54,0,4.65,4.65,0,0,0,2.39-7.82ZM4.78,41.58a2.91,2.91,0,0,1-.24-.27A2.62,2.62,0,0,1,4,39.71a.61.61,0,0,1,0-.14,2.58,2.58,0,0,1,.77-1.73,4.38,4.38,0,0,1,.74-.55C7,36.38,10,34.9,12.69,33.67c-1.52,3.3-3.42,7.17-4.17,7.91a2.59,2.59,0,0,1-1.47.72A2.66,2.66,0,0,1,4.78,41.58ZM32,59A27,27,0,0,1,7.92,44.18a4.56,4.56,0,0,0,2-1.18c1.48-1.49,5-9.36,5.66-10.92a1,1,0,0,0-1.32-1.32c-.78.34-3.14,1.39-5.49,2.53-1.29.63-2.58,1.29-3.6,1.88A25.58,25.58,0,0,1,5,32a27,27,0,0,1,54,0,25.58,25.58,0,0,1-.19,3.17c-2.88-1.66-7.88-3.88-9.09-4.41a1,1,0,0,0-1.32,1.32c.69,1.56,4.18,9.43,5.66,10.92a4.56,4.56,0,0,0,2,1.18A27,27,0,0,1,32,59ZM59.46,41.31a2.91,2.91,0,0,1-.24.27A2.66,2.66,0,0,1,57,42.3a2.59,2.59,0,0,1-1.47-.72c-.75-.74-2.65-4.61-4.17-7.91,1.65.76,3.44,1.61,4.91,2.37.91.47,1.7.9,2.26,1.25a4.38,4.38,0,0,1,.74.55A2.58,2.58,0,0,1,60,39.57a.61.61,0,0,1,0,.14A2.62,2.62,0,0,1,59.46,41.31Z'/%3e%3c/g%3e%3c/svg%3e",mtr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20height='800px'%20width='800px'%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20512.001%20512.001'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M256.001,0C114.841,0,0,114.841,0,256.001s114.841,256.001,256.001,256.001S512.001,397.16,512.001,256.001%20S397.16,0,256.001,0z%20M256.001,493.701c-131.069,0-237.702-106.631-237.702-237.7S124.932,18.299,256.001,18.299%20s237.702,106.632,237.702,237.702S387.068,493.701,256.001,493.701z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M371.284,296.658H138.275c-5.054,0-9.15,4.097-9.15,9.15s4.095,9.15,9.15,9.15h233.008c5.054,0,9.15-4.097,9.15-9.15%20C380.433,300.754,376.337,296.658,371.284,296.658z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M297.481,330.816h-85.403c-5.054,0-9.15,4.097-9.15,9.15s4.095,9.15,9.15,9.15h85.403c5.054,0,9.15-4.097,9.15-9.15%20S302.534,330.816,297.481,330.816z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M146.725,192.982c-18.666,0-33.852,15.186-33.852,33.852c0,18.666,15.186,33.852,33.852,33.852%20c18.666,0,33.852-15.186,33.852-33.852C180.577,208.168,165.391,192.982,146.725,192.982z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M365.275,192.982c-18.666,0-33.852,15.186-33.852,33.852c0,18.666,15.186,33.852,33.852,33.852%20s33.852-15.186,33.852-33.852C399.128,208.168,383.942,192.982,365.275,192.982z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cg%3e%3ccircle%20cx='155.969'%20cy='219.735'%20r='9.15'/%3e%3ccircle%20cx='374.338'%20cy='219.735'%20r='9.15'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",gtr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20height='800px'%20width='800px'%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20299.92%20299.92'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cg%3e%3cpath%20d='M293.4,65.2H6.52C2.914,65.2,0,68.114,0,71.72v117.36c0,3.606,2.914,6.52,6.52,6.52h6.52v32.6%20c0,3.606,2.914,6.52,6.52,6.52h260.8c3.606,0,6.52-2.914,6.52-6.52v-32.6h6.52c3.606,0,6.52-2.914,6.52-6.52V71.72%20C299.92,68.114,297.006,65.2,293.4,65.2z%20M273.84,221.68h-19.56H228.2h-26.08h-26.08h-26.08h-26.08H97.8H71.72H45.64H26.08V195.6%20h19.56h26.08H97.8h26.08h26.08h26.08h26.08h26.08h26.08h19.56V221.68z%20M286.88,182.56h-6.52H19.56h-6.52V78.24h273.84V182.56z'/%3e%3cpath%20d='M32.6,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H32.6c-3.606,0-6.52,2.914-6.52,6.52%20V163C26.08,166.606,28.994,169.52,32.6,169.52z%20M39.12,104.32H65.2v52.16H39.12V104.32z'/%3e%3cpath%20d='M97.8,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H97.8c-3.606,0-6.52,2.914-6.52,6.52%20V163C91.28,166.606,94.194,169.52,97.8,169.52z%20M104.32,104.32h26.08v52.16h-26.08V104.32z'/%3e%3cpath%20d='M163,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H163c-3.606,0-6.52,2.914-6.52,6.52%20V163C156.48,166.606,159.394,169.52,163,169.52z%20M169.52,104.32h26.08v52.16h-26.08V104.32z'/%3e%3cpath%20d='M228.2,169.52h39.12c3.606,0,6.52-2.914,6.52-6.52V97.8c0-3.606-2.914-6.52-6.52-6.52H228.2%20c-3.606,0-6.52,2.914-6.52,6.52V163C221.68,166.606,224.594,169.52,228.2,169.52z%20M234.72,104.32h26.08v52.16h-26.08V104.32z'/%3e%3cpath%20d='M52.16,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C49.246,221.68,52.16,218.766,52.16,215.16z'/%3e%3cpath%20d='M78.24,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C75.326,221.68,78.24,218.766,78.24,215.16z'/%3e%3cpath%20d='M104.32,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C101.406,221.68,104.32,218.766,104.32,215.16z'/%3e%3cpath%20d='M130.4,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C127.486,221.68,130.4,218.766,130.4,215.16z'/%3e%3cpath%20d='M156.48,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52s-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20S156.48,218.766,156.48,215.16z'/%3e%3cpath%20d='M182.56,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C179.646,221.68,182.56,218.766,182.56,215.16z'/%3e%3cpath%20d='M208.64,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C205.726,221.68,208.64,218.766,208.64,215.16z'/%3e%3cpath%20d='M234.72,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C231.806,221.68,234.72,218.766,234.72,215.16z'/%3e%3cpath%20d='M260.8,215.16v-13.04c0-3.606-2.914-6.52-6.52-6.52c-3.606,0-6.52,2.914-6.52,6.52v13.04c0,3.606,2.914,6.52,6.52,6.52%20C257.886,221.68,260.8,218.766,260.8,215.16z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",_tr="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='50'%20cy='50'%20r='40'%20stroke='green'%20stroke-width='4'%20fill='green'%20/%3e%3cpath%20stroke='white'%20stroke-width='4'%20d='M40%2050%20l10%2010%2020%20-20'%20fill='none'%20/%3e%3c/svg%3e",Qtr="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='50'%20cy='50'%20r='40'%20stroke='red'%20stroke-width='4'%20fill='red'%20/%3e%3cline%20x1='35'%20y1='35'%20x2='65'%20y2='65'%20stroke='white'%20stroke-width='4'%20/%3e%3cline%20x1='65'%20y1='35'%20x2='35'%20y2='65'%20stroke='white'%20stroke-width='4'%20/%3e%3c/svg%3e",vtr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20fill='%23000000'%20version='1.1'%20id='Capa_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='800px'%20height='800px'%20viewBox='0%200%20461.759%20461.759'%20xml:space='preserve'%3e%3cg%3e%3cpath%20d='M0,301.058h147.916v147.919H0V301.058z%20M194.432,448.977H342.35V301.058H194.432V448.977z%20M2.802,257.347h147.916V109.434%20H2.802V257.347z%20M325.476,92.219l-51.603-79.437l-79.441,51.601l51.604,79.437L325.476,92.219z%20M219.337,213.733l71.045,62.663%20l62.66-71.039l-71.044-62.669L219.337,213.733z%20M412.107,57.967l-80.668,49.656l49.652,80.666l80.668-49.65L412.107,57.967z'/%3e%3c/g%3e%3c/svg%3e",ytr="/assets/robot-CQPaMbxU.svg",btr="/";se.defaults.baseURL="/";const Etr={name:"MountedPersonalities",props:{onShowPersList:Function,onReady:Function},components:{Toast:o_,UniversalForm:vI},data(){return{bUrl:btr,isMounted:!1,show:!1}},async mounted(){await this.constructor(),this.isMounted=!0},async activated(){this.isMounted&&await this.constructor()},computed:{configFile:{get(){return this.$store.state.config},set(t){this.$store.commit("setConfig",t)}},mountedPers:{get(){return console.log("asked for:",this.$store.state.mountedPers),this.$store.state.mountedPers},set(t){this.$store.commit("setMountedPers",t)}},personalities:{get(){return this.$store.state.personalities},set(t){this.$store.commit("setPersonalities",t)}},mountedPersArr:{get(){return this.$store.state.mountedPersArr},set(t){this.$store.commit("setMountedPers",t)}}},methods:{async handleOnTalk(){const t=this.mountedPers;console.log("pers:",t),this.isGenerating=!0;let e=await se.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(o=>o===t.full_path),r={client_id:this.$store.state.client_id,id:n};e=await se.post("/select_personality",r),console.log("Generating message from ",e.data.status),ze.emit("generate_msg_from",{id:-1})}},async remount_personality(){const t=this.mountedPers;if(console.log("Remounting personality ",t),!t)return{status:!1,error:"no personality - mount_personality"};try{console.log("before");const e={client_id:this.$store.state.client_id,category:t.category,folder:t.folder,language:t.language};console.log("after");const n=await se.post("/remount_personality",e);if(console.log("Remounting personality executed:",n),n)return console.log("Remounting personality res"),this.$store.state.toast.showToast("Personality remounted",4,!0),n.data;console.log("failed remount_personality")}catch(e){console.log(e.message,"remount_personality - settings");return}},onSettingsPersonality(t){try{se.get("/get_active_personality_settings").then(e=>{e&&(console.log("pers sett",e),e.data&&Object.keys(e.data).length>0?this.$refs.universalForm.showForm(e.data,"Personality settings - "+t.name,"Save changes","Cancel").then(n=>{try{se.post("/set_active_personality_settings",n).then(r=>{r&&r.data?(console.log("personality set with new settings",r.data),this.$store.state.toast.showToast("Personality settings updated successfully!",4,!0)):this.$store.state.toast.showToast(`Did not get Personality settings responses. `+r,4,!1)})}catch(r){this.$store.state.toast.showToast(`Did not get Personality settings responses. - Endpoint error: `+r.message,4,!1)}}):this.$store.state.toast.showToast("Personality has no settings",4,!1))})}catch(e){this.$store.state.toast.showToast("Could not open personality settings. Endpoint error: "+e.message,4,!1)}},async constructor(){for(Re(()=>{$e.replace()});this.$store.state.ready===!1;)await new Promise(t=>setTimeout(t,100));this.onReady()},async api_get_req(t){try{const e=await se.get("/"+t);if(e)return e.data}catch(e){console.log(e.message,"api_get_req - mountedPersonalities");return}},personalityImgPlacehodler(t){t.target.src=Q_}}},Etr={class:"relative group/item"},xtr=["src","alt"],Str={class:"absolute bottom-6 left-0 w-full flex items-center justify-center opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 p-1"},Ltr={class:"p-1 bg-gray-500 rounded-full text-white hover:bg-gray-600 focus:outline-none ml-1",title:"Show more"},Ctr={class:"text-xs font-bold"};function Atr(t,e,n,r,o,i){const s=Ke("UniversalForm");return N(),D(Ae,null,[h("div",Etr,[h("button",{onClick:e[1]||(e[1]=ie((...a)=>i.onSettingsPersonality&&i.onSettingsPersonality(...a),["prevent"])),class:Le(["w-6 h-6 rounded-full overflow-hidden transition-transform duration-200 transform group-hover/item:scale-110 focus:outline-none relative",{"glow-effect":t.$store.state.config.activate_skills_lib}])},[h("img",{src:i.mountedPers.avatar,onError:e[0]||(e[0]=(...a)=>i.personalityImgPlacehodler&&i.personalityImgPlacehodler(...a)),alt:i.mountedPers.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":t.isActive}])},null,42,xtr)],2),h("div",Str,[h("button",{onClick:e[2]||(e[2]=ie(a=>i.remount_personality(),["prevent"])),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Remount"},e[4]||(e[4]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1)])),h("button",{onClick:e[3]||(e[3]=ie(a=>i.handleOnTalk(),["prevent"])),class:"p-1 bg-green-500 rounded-full text-white hover:bg-green-600 focus:outline-none ml-1",title:"Talk"},e[5]||(e[5]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})],-1)])),h("button",Ltr,[h("span",Ctr,"+"+ee(i.mountedPersArr.length-1),1)])])]),Z(s,{ref:"universalForm",class:"z-50"},null,512)],64)}const yH=Je(btr,[["render",Atr],["__scopeId","data-v-85f3dede"]]),wtr={name:"ChangelogPopup",data(){return{showChangelogPopup:!1,changelogContent:"",currentVersion:"0.0.0"}},computed:{parsedChangelogContent(){return DN.sanitize(Mt(this.changelogContent))}},async mounted(){await this.checkChangelogUpdate()},methods:{async checkChangelogUpdate(){try{const t=await se.get("/get_changelog");this.changelogContent=t.data;let e=await se.get("/get_lollms_webui_version",{});e&&(e=e.data,e.version_type!=""?this.$store.state.version=`${e.version_main}.${e.version_secondary} ${e.version_type} (${e.version_codename})`:this.$store.state.version=`${e.version_main}.${e.version_secondary} (${e.version_codename})`),this.currentVersion=this.$store.state.version,console.log("checkChangelogUpdate"),console.log(this.$store.state.version);const r=(await se.get("/get_last_viewed_changelog_version")).data;this.currentVersion!==r&&(console.log("Showing changelog"),this.showChangelogPopup=!0)}catch(t){console.error("Error checking changelog:",t)}},async handleUnderstand(){try{await se.post("/set_last_viewed_changelog_version",{client_id:this.$store.state.client_id,version:this.currentVersion}),this.closePopup()}catch(t){console.error("Error setting changelog version:",t)}},closePopup(){this.showChangelogPopup=!1}}},Otr={key:0,class:"changelog-popup-overlay"},Mtr={class:"changelog-popup"},Rtr={class:"changelog-header"},Ntr=["innerHTML"],Dtr={class:"changelog-footer"};function ktr(t,e,n,r,o,i){return o.showChangelogPopup?(N(),D("div",Otr,[h("div",Mtr,[h("div",Rtr,[e[2]||(e[2]=h("h2",null,"What's New in LoLLMs",-1)),h("button",{class:"close-button",onClick:e[0]||(e[0]=(...s)=>i.closePopup&&i.closePopup(...s))},"×")]),h("div",{class:"changelog-content markdown-body",innerHTML:i.parsedChangelogContent},null,8,Ntr),h("div",Dtr,[h("button",{class:"understood-button",onClick:e[1]||(e[1]=(...s)=>i.handleUnderstand&&i.handleUnderstand(...s))}," I understood ")])])])):W("",!0)}const bH=Je(wtr,[["render",ktr],["__scopeId","data-v-f9c6a52e"]]),Itr={key:0,class:"fixed top-0 left-0 w-screen h-screen flex items-center justify-center overflow-hidden"},Htr={key:0,class:"absolute inset-0 pointer-events-none overflow-hidden"},Ptr={class:"flex flex-col items-center text-center max-w-4xl w-full px-4 relative z-10"},Vtr={class:"mb-8 w-full"},$tr={class:"text-5xl md:text-6xl font-bold mb-2 hover:scale-105 transition-transform lollms-title-style"},Btr={class:"bottom-0 text-2xl italic"},Ftr={class:"text-lg"},Utr=["innerHTML"],Gtr={class:"animated-progressbar-bg"},qtr={class:"w-full max-w-2xl"},jtr={role:"status",class:"w-full"},ztr={class:"text-xl"},Ytr={class:"text-2xl font-bold mt-2"},Wtr={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-[16rem]"},Ktr={class:"logo-container"},Ztr=["src"],Xtr={class:"toolbar discussion"},Jtr={class:"toolbar-container"},enr={class:"p-4 flex flex-wrap gap-2 items-center"},tnr={class:"p-4 flex flex-wrap gap-2 items-center"},nnr={class:"relative"},rnr={class:"relative"},onr={key:0,title:"Loading..",class:"flex justify-center"},inr={key:1,class:"flex justify-center space-x-4"},snr={key:2,class:"flex flex-col space-y-2"},anr={class:"relative inline-block"},lnr={class:"p-2 border-b border-gray-200 dark:border-gray-700"},cnr={class:"p-4 grid grid-cols-3 gap-4 max-h-80 overflow-y-auto custom-scrollbar"},unr={class:"flex flex-col items-center hover:bg-blue-100 dark:hover:bg-blue-900 p-2 rounded-md w-full cursor-pointer"},dnr=["onClick","title"],Tnr=["src","alt"],fnr=["title"],pnr={class:"absolute top-0 left-0 w-full h-full opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 bg-white dark:bg-gray-900 rounded-md shadow-md p-2 flex flex-col items-center justify-center"},hnr=["onClick"],mnr={class:"flex space-x-1"},gnr=["onClick"],_nr=["src","title"],Qnr={class:"relative inline-block"},vnr={class:"p-2 border-b border-gray-200 dark:border-gray-700"},ynr={class:"p-4 grid grid-cols-3 gap-4 max-h-80 overflow-y-auto custom-scrollbar"},bnr={class:"flex flex-col items-center hover:bg-blue-100 dark:hover:bg-blue-900 p-2 rounded-md w-full cursor-pointer"},Enr=["onClick","title"],xnr=["src","alt"],Snr=["title"],Lnr={class:"absolute top-0 left-0 w-full h-full opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 bg-white dark:bg-gray-900 rounded-md shadow-md p-2 flex flex-col items-center justify-center"},Cnr=["onClick"],Anr={class:"flex space-x-1"},wnr=["onClick"],Onr=["src","title"],Mnr={class:"relative inline-block"},Rnr={class:"p-2 border-b border-gray-200 dark:border-gray-700"},Nnr={class:"p-4 grid grid-cols-3 gap-4 max-h-80 overflow-y-auto custom-scrollbar"},Dnr={class:"flex flex-col items-center hover:bg-blue-100 dark:hover:bg-blue-900 p-2 rounded-md w-full cursor-pointer"},knr=["onClick","title"],Inr=["src","alt"],Hnr=["title"],Pnr={class:"absolute top-0 left-0 w-full h-full opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 bg-white dark:bg-gray-900 rounded-md shadow-md p-2 flex flex-col items-center justify-center"},Vnr=["onClick"],$nr={class:"flex space-x-1"},Bnr=["onClick"],Fnr=["onClick"],Unr=["onClick"],Gnr={class:"personalities-container"},qnr={class:"w-auto max-w-md mx-auto p-2"},jnr={class:"flex items-center"},znr={class:"relative flex-grow"},Ynr={key:0,class:"w-full p-4 bg-bg-light dark:bg-bg-dark"},Wnr={class:"flex flex-col space-y-2"},Knr={key:0},Znr={key:1,class:"flex space-x-2"},Xnr={key:1,class:"flex space-x-2"},Jnr={class:"flex space-x-2"},err={class:"relative flex flex-row flex-grow mb-10 z-0 w-full"},trr={key:1,class:"gap-2 py-2 my-2 hover:shadow-md hover:bg-primary-light dark:hover:bg-primary rounded-md p-2 duration-75 group cursor-pointer"},nrr={class:"flex flex-row items-center justify-center panels-color"},rrr={class:"text-center font-large font-bold text-l drop-shadow-md align-middle"},orr={key:0,class:"relative flex flex-col flex-grow"},irr={class:"container pt-4 pb-50 mb-50 w-full"},srr={key:0,class:"w-full rounded-lg m-2 shadow-lg hover:border-primary dark:hover:border-primary hover:border-solid hover:border-2 border-2 border-transparent even:bg-bg-light-discussion-odd dark:even:bg-bg-dark-discussion-odd flex flex-col overflow-hidden p-4 pb-2"},arr={class:"overflow-x-auto flex-grow scrollbar-thin scrollbar-thumb-gray-400 dark:scrollbar-thumb-gray-600 scrollbar-track-gray-200 dark:scrollbar-track-gray-800 scrollbar-thumb-rounded-full scrollbar-track-rounded-full"},lrr={class:"flex flex-nowrap gap-6 p-4 min-w-full"},crr=["title","onClick"],urr={class:"space-y-3"},drr=["title"],Trr=["title"],frr={key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"},prr={class:"bg-white dark:bg-gray-800 p-6 rounded-lg shadow-xl max-w-4xl w-full max-h-[90vh] flex flex-col"},hrr={class:"flex-1 flex flex-col min-h-0"},mrr={class:"mb-4 p-4 bg-gray-100 dark:bg-gray-700 rounded-lg"},grr={class:"flex-1 h-[200px] overflow-y-auto scrollbar scrollbar-thumb-gray-400 dark:scrollbar-thumb-gray-500 scrollbar-track-gray-200 dark:scrollbar-track-gray-700 scrollbar-thin rounded-md"},_rr={class:"text-base whitespace-pre-wrap"},Qrr={class:"flex-1 overflow-y-auto"},vrr={class:"space-y-4"},yrr=["for"],brr=["id","onUpdate:modelValue","placeholder"],Err=["id","onUpdate:modelValue"],xrr=["id","onUpdate:modelValue"],Srr=["id","onUpdate:modelValue"],Lrr={key:4,class:"border rounded-md overflow-hidden"},Crr={class:"bg-gray-200 dark:bg-gray-900 p-2 text-sm"},Arr=["id","onUpdate:modelValue"],wrr=["id","onUpdate:modelValue"],Orr=["value"],Mrr={class:"mt-6 flex justify-end space-x-4"},Rrr={key:0,class:"flex flex-row items-center justify-center h-10"},Nrr={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-1/2 bg-bg-light-tone dark:bg-bg-dark-tone h-full"},Drr={ref:"isolatedContent",class:"h-full"},krr={role:"status",class:"fixed m-0 p-2 left-2 bottom-2 min-w-[24rem] max-w-[24rem] h-20 flex flex-col justify-center items-center pb-4 bg-blue-500 rounded-lg shadow-lg z-50 background-a"},Irr={class:"text-2xl animate-pulse mt-2 text-white"},Hrr={id:"app"},Prr=t=>{const e=t.replace("[","").replace("]","").split("::"),n=e[0];if(e.length===1)return{label:n,type:"text",fullText:t};const r=e[1],o={label:n,type:r,fullText:t};switch(r){case"int":case"float":case"multiline":break;case"code":o.language=e[2]||"plaintext";break;case"options":o.options=e[2]?e[2].split(",").map(i=>i.trim()):[];break;default:o.type="text"}return o},Vrr="/",$rr={setup(){},data(){return{interestingFacts:["ParisNeo, the creator of LoLLMs, originally built his high-performance PC to play Cyberpunk 2077. However, his passion for AI took an unexpected turn, leading him to develop LoLLMs instead. Ironically, he never found the time to actually play the game that inspired his powerful setup!","Saïph, version 14 of LoLLMs, is named after a star in Orion's constellation (Kappa Orionis), representing bright guidance in AI!","At 12, ParisNeo coded 'Saif14' in BASIC on a Tandy 1000, an 'all-in-one' suite named with a friend. LoLLMs v14 'Saïph' - a star in Orion - echoes this BASIC creation's spirit and hints at OpenAI's future.",`The new AI Village app in LoLLMs, simulating AI agents believing they're human, mirrors "The Hitchhiker's Guide to the Galaxy" (ParisNeo's favorite) where Earth was a simulation to compute the Ultimate Question. Both explore the idea of unsuspecting inhabitants participating in a grand cosmic calculation!`,'Once upon a time, young ParisNeo dove so deep into "The Matrix" that he watched it 60 times in two months, practically becoming a human DVD player! Fast forward to today, and this same Matrix-obsessed kid grew up to create LoLLMs, where AI personas are like digital kung-fu masters, and users are the chosen ones. Talk about life imitating art - ParisNeo went from "I know kung fu" to "I code AI"! Who knew binge-watching could lead to bending the rules of AI reality?',"Did you know? The first computer programmer was a woman - Ada Lovelace!","Large Language Models (LLMs) have evolved from having millions of parameters to hundreds of billions in just a few years.","LoLLMs (Lord of Large Language Multimodal Systems) is an open-source AI assistant platform created by ParisNeo.","Saïph (κ Orionis) is a blue-white supergiant star approximately 650 light-years away from Earth.","Neural networks were first proposed in 1943 by Warren McCulloch and Walter Pitts.","Modern LLMs like GPT-4 can understand and generate multiple languages, code, and even analyze images.","LoLLMs supports multiple AI models and can perform tasks like code interpretation, image analysis, and internet searches.","The term 'transformer' in AI, which powers most modern LLMs, was introduced in the 'Attention is All You Need' paper in 2017.","LoLLMs can generate various types of diagrams, including SVG, Graphviz, and Mermaid diagrams.","The Python programming language was named after Monty Python.","LoLLMs features a built-in code interpreter that can execute multiple programming languages.","Quantum computers can perform calculations in minutes that would take classical computers thousands of years.","LoLLMs supports multimodal interactions, allowing users to work with both text and images.","The name Saïph in Arabic (سيف) means 'sword', symbolizing cutting-edge AI technology.",'
',"LoLLMs' version naming often contains clever easter eggs and references to AI advancements.","The 'Strawberry' version of LoLLMs was a playful nod to ChatGPT's internal codename for one of its versions.","The 'Saïph' version name was an intentional reference to Orion, anticipating OpenAI's rumored AGI-capable model codenamed 'Orion'.","LoLLMs' evolution can be traced through its version names: Warp, Starship, Robot, Brainwave, Strawberry, Feather, Saïph, Nexus, Pulsar.","Each LoLLMs version name reflects either technological advancement or pays homage to significant developments in AI.","'Warp' and 'Starship' versions symbolized the quantum leap in AI capabilities and speed improvements.","'Robot' represented the system's growing autonomy and ability to perform complex tasks.","'Brainwave' highlighted the neural network aspects and cognitive capabilities of the system.","LoLLMs' version naming shows ParisNeo's keen awareness of industry trends and playful approach to development.","LoLLMs can generate and visualize mathematical equations using LaTeX, making it a powerful tool for scientific documentation.","The system's multimodel capabilities allow it to analyze medical images, architectural blueprints, and technical diagrams.","LoLLMs includes a unique feature called 'personality system' that allows it to adapt its communication style and expertise.","Did you know? LoLLMs can process and generate music notation using ABC notation or LilyPond formats.","LoLLMs supports over 2000 different AI models, making it one of the most versatile open-source AI platforms.","The system can generate realistic 3D scenes descriptions that can be rendered using tools like Blender.","LoLLMs features a unique 'model fusion' capability, combining strengths of different AI models for better results.","The platform includes specialized modules for scientific computing, allowing it to solve complex mathematical problems.","LoLLMs can analyze and generate code in over 20 programming languages, including rare ones like COBOL and Fortran.","The system includes advanced prompt engineering tools, helping users get better results from AI models.","LoLLMs can generate and interpret QR codes, making it useful for creating interactive marketing materials.","The platform supports real-time voice interaction through its advanced speech-to-text and text-to-speech capabilities.","LoLLMs can analyze satellite imagery for environmental monitoring and urban planning applications.","The system includes specialized modules for protein folding prediction and molecular visualization.","LoLLMs features a built-in 'ethical AI' framework that ensures responsible and bias-aware AI interactions.","The platform can generate realistic synthetic data while preserving privacy and maintaining statistical properties.","LoLLMs includes advanced natural language processing capabilities in over 100 languages.","The system can perform sentiment analysis on social media trends and customer feedback in real-time.","LoLLMs features a unique 'time-aware' context system that understands and reasons about temporal relationships.","The world's first computer programmer was a woman named Ada Lovelace.","There are more possible iterations of a game of chess than there are atoms in the known universe.","The first AI program was written in 1951 to play checkers.","The Internet was originally called ARPANET and was developed by the US Department of Defense.","The concept of zero as a number was developed in ancient India, with the earliest known text using it dating to 458 CE.","Light from the Sun takes about 8 minutes and 20 seconds to reach Earth.","The first mobile phone call was made in 1973 by Martin Cooper.","The human brain processes images 60,000 times faster than text.","The most powerful supercomputer today can perform about 442 quadrillion calculations per second.","The ancient Egyptians invented the 365-day calendar we still use today.","Mathematicians have calculated pi to over 62 trillion digits.","Quantum computers can theoretically solve certain problems in seconds that would take classical computers billions of years.","The first email was sent in 1971 by Ray Tomlinson.","The Hubble Space Telescope can see galaxies so far away, it's like looking back in time billions of years.","The largest known prime number has over 24 million digits.","AI can now generate realistic images, music, and even write stories.","The Great Wall of China is not visible from space with the naked eye, contrary to popular belief.","There are more possible ways to shuffle a deck of 52 cards than there are atoms on Earth.","The first computer virus was created in 1983 as an experiment.","The speed of light in a vacuum is exactly 299,792,458 meters per second.",`In version 18 (Matrix), the changelog contained a binary secret message from ParisNeo. + Endpoint error: `+r.message,4,!1)}}):this.$store.state.toast.showToast("Personality has no settings",4,!1))})}catch(e){this.$store.state.toast.showToast("Could not open personality settings. Endpoint error: "+e.message,4,!1)}},async constructor(){for(Re(()=>{$e.replace()});this.$store.state.ready===!1;)await new Promise(t=>setTimeout(t,100));this.onReady()},async api_get_req(t){try{const e=await se.get("/"+t);if(e)return e.data}catch(e){console.log(e.message,"api_get_req - mountedPersonalities");return}},personalityImgPlacehodler(t){t.target.src=Q_}}},xtr={class:"relative group/item"},Str=["src","alt"],Ltr={class:"absolute bottom-6 left-0 w-full flex items-center justify-center opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 p-1"},Ctr={class:"p-1 bg-gray-500 rounded-full text-white hover:bg-gray-600 focus:outline-none ml-1",title:"Show more"},Atr={class:"text-xs font-bold"};function wtr(t,e,n,r,o,i){const s=Ke("UniversalForm");return N(),D(Ae,null,[h("div",xtr,[h("button",{onClick:e[1]||(e[1]=ie((...a)=>i.onSettingsPersonality&&i.onSettingsPersonality(...a),["prevent"])),class:Le(["w-6 h-6 rounded-full overflow-hidden transition-transform duration-200 transform group-hover/item:scale-110 focus:outline-none relative",{"glow-effect":t.$store.state.config.activate_skills_lib}])},[h("img",{src:i.mountedPers.avatar,onError:e[0]||(e[0]=(...a)=>i.personalityImgPlacehodler&&i.personalityImgPlacehodler(...a)),alt:i.mountedPers.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":t.isActive}])},null,42,Str)],2),h("div",Ltr,[h("button",{onClick:e[2]||(e[2]=ie(a=>i.remount_personality(),["prevent"])),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Remount"},e[4]||(e[4]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1)])),h("button",{onClick:e[3]||(e[3]=ie(a=>i.handleOnTalk(),["prevent"])),class:"p-1 bg-green-500 rounded-full text-white hover:bg-green-600 focus:outline-none ml-1",title:"Talk"},e[5]||(e[5]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})],-1)])),h("button",Ctr,[h("span",Atr,"+"+ee(i.mountedPersArr.length-1),1)])])]),Z(s,{ref:"universalForm",class:"z-50"},null,512)],64)}const yH=Je(Etr,[["render",wtr],["__scopeId","data-v-85f3dede"]]),Otr={name:"ChangelogPopup",data(){return{showChangelogPopup:!1,changelogContent:"",currentVersion:"0.0.0"}},computed:{parsedChangelogContent(){return DN.sanitize(Mt(this.changelogContent))}},async mounted(){await this.checkChangelogUpdate()},methods:{async checkChangelogUpdate(){try{const t=await se.get("/get_changelog");this.changelogContent=t.data;let e=await se.get("/get_lollms_webui_version",{});e&&(e=e.data,e.version_type!=""?this.$store.state.version=`${e.version_main}.${e.version_secondary} ${e.version_type} (${e.version_codename})`:this.$store.state.version=`${e.version_main}.${e.version_secondary} (${e.version_codename})`),this.currentVersion=this.$store.state.version,console.log("checkChangelogUpdate"),console.log(this.$store.state.version);const r=(await se.get("/get_last_viewed_changelog_version")).data;this.currentVersion!==r&&(console.log("Showing changelog"),this.showChangelogPopup=!0)}catch(t){console.error("Error checking changelog:",t)}},async handleUnderstand(){try{await se.post("/set_last_viewed_changelog_version",{client_id:this.$store.state.client_id,version:this.currentVersion}),this.closePopup()}catch(t){console.error("Error setting changelog version:",t)}},closePopup(){this.showChangelogPopup=!1}}},Mtr={key:0,class:"changelog-popup-overlay"},Rtr={class:"changelog-popup"},Ntr={class:"changelog-header"},Dtr=["innerHTML"],ktr={class:"changelog-footer"};function Itr(t,e,n,r,o,i){return o.showChangelogPopup?(N(),D("div",Mtr,[h("div",Rtr,[h("div",Ntr,[e[2]||(e[2]=h("h2",null,"What's New in LoLLMs",-1)),h("button",{class:"close-button",onClick:e[0]||(e[0]=(...s)=>i.closePopup&&i.closePopup(...s))},"×")]),h("div",{class:"changelog-content markdown-body",innerHTML:i.parsedChangelogContent},null,8,Dtr),h("div",ktr,[h("button",{class:"understood-button",onClick:e[1]||(e[1]=(...s)=>i.handleUnderstand&&i.handleUnderstand(...s))}," I understood ")])])])):W("",!0)}const bH=Je(Otr,[["render",Itr],["__scopeId","data-v-f9c6a52e"]]),Htr={key:0,class:"fixed top-0 left-0 w-screen h-screen flex items-center justify-center overflow-hidden"},Ptr={key:0,class:"absolute inset-0 pointer-events-none overflow-hidden"},Vtr={class:"flex flex-col items-center text-center max-w-4xl w-full px-4 relative z-10"},$tr={class:"mb-8 w-full"},Btr={class:"text-5xl md:text-6xl font-bold mb-2 hover:scale-105 transition-transform lollms-title-style"},Ftr={class:"bottom-0 text-2xl italic"},Utr={class:"text-lg"},Gtr=["innerHTML"],qtr={class:"animated-progressbar-bg"},jtr={class:"w-full max-w-2xl"},ztr={role:"status",class:"w-full"},Ytr={class:"text-xl"},Wtr={class:"text-2xl font-bold mt-2"},Ktr={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-[16rem]"},Ztr={class:"logo-container"},Xtr=["src"],Jtr={class:"toolbar discussion"},enr={class:"toolbar-container"},tnr={class:"p-4 flex flex-wrap gap-2 items-center"},nnr={class:"p-4 flex flex-wrap gap-2 items-center"},rnr={class:"relative"},onr={class:"relative"},inr={key:0,title:"Loading..",class:"flex justify-center"},snr={key:1,class:"flex justify-center space-x-4"},anr={key:2,class:"flex flex-col space-y-2"},lnr={class:"relative inline-block"},cnr={class:"p-2 border-b border-gray-200 dark:border-gray-700"},unr={class:"p-4 grid grid-cols-3 gap-4 max-h-80 overflow-y-auto custom-scrollbar"},dnr={class:"flex flex-col items-center hover:bg-blue-100 dark:hover:bg-blue-900 p-2 rounded-md w-full cursor-pointer"},Tnr=["onClick","title"],fnr=["src","alt"],pnr=["title"],hnr={class:"absolute top-0 left-0 w-full h-full opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 bg-white dark:bg-gray-900 rounded-md shadow-md p-2 flex flex-col items-center justify-center"},mnr=["onClick"],gnr={class:"flex space-x-1"},_nr=["onClick"],Qnr=["src","title"],vnr={class:"relative inline-block"},ynr={class:"p-2 border-b border-gray-200 dark:border-gray-700"},bnr={class:"p-4 grid grid-cols-3 gap-4 max-h-80 overflow-y-auto custom-scrollbar"},Enr={class:"flex flex-col items-center hover:bg-blue-100 dark:hover:bg-blue-900 p-2 rounded-md w-full cursor-pointer"},xnr=["onClick","title"],Snr=["src","alt"],Lnr=["title"],Cnr={class:"absolute top-0 left-0 w-full h-full opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 bg-white dark:bg-gray-900 rounded-md shadow-md p-2 flex flex-col items-center justify-center"},Anr=["onClick"],wnr={class:"flex space-x-1"},Onr=["onClick"],Mnr=["src","title"],Rnr={class:"relative inline-block"},Nnr={class:"p-2 border-b border-gray-200 dark:border-gray-700"},Dnr={class:"p-4 grid grid-cols-3 gap-4 max-h-80 overflow-y-auto custom-scrollbar"},knr={class:"flex flex-col items-center hover:bg-blue-100 dark:hover:bg-blue-900 p-2 rounded-md w-full cursor-pointer"},Inr=["onClick","title"],Hnr=["src","alt"],Pnr=["title"],Vnr={class:"absolute top-0 left-0 w-full h-full opacity-0 group-hover/item:opacity-100 transition-opacity duration-200 bg-white dark:bg-gray-900 rounded-md shadow-md p-2 flex flex-col items-center justify-center"},$nr=["onClick"],Bnr={class:"flex space-x-1"},Fnr=["onClick"],Unr=["onClick"],Gnr=["onClick"],qnr={class:"personalities-container"},jnr={class:"w-auto max-w-md mx-auto p-2"},znr={class:"flex items-center"},Ynr={class:"relative flex-grow"},Wnr={key:0,class:"w-full p-4 bg-bg-light dark:bg-bg-dark"},Knr={class:"flex flex-col space-y-2"},Znr={key:0},Xnr={key:1,class:"flex space-x-2"},Jnr={key:1,class:"flex space-x-2"},err={class:"flex space-x-2"},trr={class:"relative flex flex-row flex-grow mb-10 z-0 w-full"},nrr={key:1,class:"gap-2 py-2 my-2 hover:shadow-md hover:bg-primary-light dark:hover:bg-primary rounded-md p-2 duration-75 group cursor-pointer"},rrr={class:"flex flex-row items-center justify-center panels-color"},orr={class:"text-center font-large font-bold text-l drop-shadow-md align-middle"},irr={key:0,class:"relative flex flex-col flex-grow"},srr={class:"container pt-4 pb-50 mb-50 w-full"},arr={key:0,class:"w-full rounded-lg m-2 shadow-lg hover:border-primary dark:hover:border-primary hover:border-solid hover:border-2 border-2 border-transparent even:bg-bg-light-discussion-odd dark:even:bg-bg-dark-discussion-odd flex flex-col overflow-hidden p-4 pb-2"},lrr={class:"overflow-x-auto flex-grow scrollbar-thin scrollbar-thumb-gray-400 dark:scrollbar-thumb-gray-600 scrollbar-track-gray-200 dark:scrollbar-track-gray-800 scrollbar-thumb-rounded-full scrollbar-track-rounded-full"},crr={class:"flex flex-nowrap gap-6 p-4 min-w-full"},urr=["title","onClick"],drr={class:"space-y-3"},Trr=["title"],frr=["title"],prr={key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"},hrr={class:"bg-white dark:bg-gray-800 p-6 rounded-lg shadow-xl max-w-4xl w-full max-h-[90vh] flex flex-col"},mrr={class:"flex-1 flex flex-col min-h-0"},grr={class:"mb-4 p-4 bg-gray-100 dark:bg-gray-700 rounded-lg"},_rr={class:"flex-1 h-[200px] overflow-y-auto scrollbar scrollbar-thumb-gray-400 dark:scrollbar-thumb-gray-500 scrollbar-track-gray-200 dark:scrollbar-track-gray-700 scrollbar-thin rounded-md"},Qrr={class:"text-base whitespace-pre-wrap"},vrr={class:"flex-1 overflow-y-auto"},yrr={class:"space-y-4"},brr=["for"],Err=["id","onUpdate:modelValue","placeholder"],xrr=["id","onUpdate:modelValue"],Srr=["id","onUpdate:modelValue"],Lrr=["id","onUpdate:modelValue"],Crr={key:4,class:"border rounded-md overflow-hidden"},Arr={class:"bg-gray-200 dark:bg-gray-900 p-2 text-sm"},wrr=["id","onUpdate:modelValue"],Orr=["id","onUpdate:modelValue"],Mrr=["value"],Rrr={class:"mt-6 flex justify-end space-x-4"},Nrr={key:0,class:"flex flex-row items-center justify-center h-10"},Drr={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-1/2 bg-bg-light-tone dark:bg-bg-dark-tone h-full"},krr={ref:"isolatedContent",class:"h-full"},Irr={role:"status",class:"fixed m-0 p-2 left-2 bottom-2 min-w-[24rem] max-w-[24rem] h-20 flex flex-col justify-center items-center pb-4 bg-blue-500 rounded-lg shadow-lg z-50 background-a"},Hrr={class:"text-2xl animate-pulse mt-2 text-white"},Prr={id:"app"},Vrr=t=>{const e=t.replace("[","").replace("]","").split("::"),n=e[0];if(e.length===1)return{label:n,type:"text",fullText:t};const r=e[1],o={label:n,type:r,fullText:t};switch(r){case"int":case"float":case"multiline":break;case"code":o.language=e[2]||"plaintext";break;case"options":o.options=e[2]?e[2].split(",").map(i=>i.trim()):[];break;default:o.type="text"}return o},$rr="/",Brr={setup(){},data(){return{interestingFacts:["ParisNeo, the creator of LoLLMs, originally built his high-performance PC to play Cyberpunk 2077. However, his passion for AI took an unexpected turn, leading him to develop LoLLMs instead. Ironically, he never found the time to actually play the game that inspired his powerful setup!","Saïph, version 14 of LoLLMs, is named after a star in Orion's constellation (Kappa Orionis), representing bright guidance in AI!","At 12, ParisNeo coded 'Saif14' in BASIC on a Tandy 1000, an 'all-in-one' suite named with a friend. LoLLMs v14 'Saïph' - a star in Orion - echoes this BASIC creation's spirit and hints at OpenAI's future.",`The new AI Village app in LoLLMs, simulating AI agents believing they're human, mirrors "The Hitchhiker's Guide to the Galaxy" (ParisNeo's favorite) where Earth was a simulation to compute the Ultimate Question. Both explore the idea of unsuspecting inhabitants participating in a grand cosmic calculation!`,'Once upon a time, young ParisNeo dove so deep into "The Matrix" that he watched it 60 times in two months, practically becoming a human DVD player! Fast forward to today, and this same Matrix-obsessed kid grew up to create LoLLMs, where AI personas are like digital kung-fu masters, and users are the chosen ones. Talk about life imitating art - ParisNeo went from "I know kung fu" to "I code AI"! Who knew binge-watching could lead to bending the rules of AI reality?',"Did you know? The first computer programmer was a woman - Ada Lovelace!","Large Language Models (LLMs) have evolved from having millions of parameters to hundreds of billions in just a few years.","LoLLMs (Lord of Large Language Multimodal Systems) is an open-source AI assistant platform created by ParisNeo.","Saïph (κ Orionis) is a blue-white supergiant star approximately 650 light-years away from Earth.","Neural networks were first proposed in 1943 by Warren McCulloch and Walter Pitts.","Modern LLMs like GPT-4 can understand and generate multiple languages, code, and even analyze images.","LoLLMs supports multiple AI models and can perform tasks like code interpretation, image analysis, and internet searches.","The term 'transformer' in AI, which powers most modern LLMs, was introduced in the 'Attention is All You Need' paper in 2017.","LoLLMs can generate various types of diagrams, including SVG, Graphviz, and Mermaid diagrams.","The Python programming language was named after Monty Python.","LoLLMs features a built-in code interpreter that can execute multiple programming languages.","Quantum computers can perform calculations in minutes that would take classical computers thousands of years.","LoLLMs supports multimodal interactions, allowing users to work with both text and images.","The name Saïph in Arabic (سيف) means 'sword', symbolizing cutting-edge AI technology.",'
',"LoLLMs' version naming often contains clever easter eggs and references to AI advancements.","The 'Strawberry' version of LoLLMs was a playful nod to ChatGPT's internal codename for one of its versions.","The 'Saïph' version name was an intentional reference to Orion, anticipating OpenAI's rumored AGI-capable model codenamed 'Orion'.","LoLLMs' evolution can be traced through its version names: Warp, Starship, Robot, Brainwave, Strawberry, Feather, Saïph, Nexus, Pulsar.","Each LoLLMs version name reflects either technological advancement or pays homage to significant developments in AI.","'Warp' and 'Starship' versions symbolized the quantum leap in AI capabilities and speed improvements.","'Robot' represented the system's growing autonomy and ability to perform complex tasks.","'Brainwave' highlighted the neural network aspects and cognitive capabilities of the system.","LoLLMs' version naming shows ParisNeo's keen awareness of industry trends and playful approach to development.","LoLLMs can generate and visualize mathematical equations using LaTeX, making it a powerful tool for scientific documentation.","The system's multimodel capabilities allow it to analyze medical images, architectural blueprints, and technical diagrams.","LoLLMs includes a unique feature called 'personality system' that allows it to adapt its communication style and expertise.","Did you know? LoLLMs can process and generate music notation using ABC notation or LilyPond formats.","LoLLMs supports over 2000 different AI models, making it one of the most versatile open-source AI platforms.","The system can generate realistic 3D scenes descriptions that can be rendered using tools like Blender.","LoLLMs features a unique 'model fusion' capability, combining strengths of different AI models for better results.","The platform includes specialized modules for scientific computing, allowing it to solve complex mathematical problems.","LoLLMs can analyze and generate code in over 20 programming languages, including rare ones like COBOL and Fortran.","The system includes advanced prompt engineering tools, helping users get better results from AI models.","LoLLMs can generate and interpret QR codes, making it useful for creating interactive marketing materials.","The platform supports real-time voice interaction through its advanced speech-to-text and text-to-speech capabilities.","LoLLMs can analyze satellite imagery for environmental monitoring and urban planning applications.","The system includes specialized modules for protein folding prediction and molecular visualization.","LoLLMs features a built-in 'ethical AI' framework that ensures responsible and bias-aware AI interactions.","The platform can generate realistic synthetic data while preserving privacy and maintaining statistical properties.","LoLLMs includes advanced natural language processing capabilities in over 100 languages.","The system can perform sentiment analysis on social media trends and customer feedback in real-time.","LoLLMs features a unique 'time-aware' context system that understands and reasons about temporal relationships.","The world's first computer programmer was a woman named Ada Lovelace.","There are more possible iterations of a game of chess than there are atoms in the known universe.","The first AI program was written in 1951 to play checkers.","The Internet was originally called ARPANET and was developed by the US Department of Defense.","The concept of zero as a number was developed in ancient India, with the earliest known text using it dating to 458 CE.","Light from the Sun takes about 8 minutes and 20 seconds to reach Earth.","The first mobile phone call was made in 1973 by Martin Cooper.","The human brain processes images 60,000 times faster than text.","The most powerful supercomputer today can perform about 442 quadrillion calculations per second.","The ancient Egyptians invented the 365-day calendar we still use today.","Mathematicians have calculated pi to over 62 trillion digits.","Quantum computers can theoretically solve certain problems in seconds that would take classical computers billions of years.","The first email was sent in 1971 by Ray Tomlinson.","The Hubble Space Telescope can see galaxies so far away, it's like looking back in time billions of years.","The largest known prime number has over 24 million digits.","AI can now generate realistic images, music, and even write stories.","The Great Wall of China is not visible from space with the naked eye, contrary to popular belief.","There are more possible ways to shuffle a deck of 52 cards than there are atoms on Earth.","The first computer virus was created in 1983 as an experiment.","The speed of light in a vacuum is exactly 299,792,458 meters per second.",`In version 18 (Matrix), the changelog contained a binary secret message from ParisNeo. Did you get it? -It meant THERE IS NO SPOON, the matirx's famous scene.`,"ParisNeo started coding at age 11 after an older programmer refused to teach him BASIC programming","ParisNeo learned BASIC by reverse engineering other people's games, even before he learned English","At age 12, ParisNeo co-created SAIF14, a suite of programs on a Tandy 1000 computer built by two kids","LoLLMs runs on a custom-built gaming PC that ParisNeo assembled and configured himself","The project started as a simple Chrome plugin called 'chatgpt personality selector'","ParisNeo's summer bet involved watching The Matrix 60 times in one month (twice daily) while his uncle gave up","The name LoLLMs was inspired by 'Lord of the Rings', positioning itself as 'one tool to rule them all'","LoLLMs has a 'Personalities Zoo' with over 500 different AI personas","The project evolved from handling just language models to becoming a multimodal system, hence the 'M' in LoLLMs","ParisNeo's difficulty with academic writing led him to develop AI solutions for writing assistance","LoLLMs' development was influenced by science fiction concepts from Wall-E, Terminator, and The Hitchhiker's Guide to the Galaxy","The project went from being 'GPT4All WebUI' to 'Lord of Large Language Models' before becoming 'Lord of Large Language & Multimodal Systems'","ParisNeo received early access to GPT-3 and used it to push the boundaries of what was possible with AI","The project maintains a philosophy of 'Don't panic, bring a towel, and trust in AI' - a reference to The Hitchhiker's Guide to the Galaxy","Despite having multiple patents in various fields, ParisNeo's interest in AI was sparked when he read about AlexNet in 2012","LoLLMs receives daily updates, similar to course corrections on a starship","Fun Fact: Neo's apartment number 101 in The Matrix is a brilliant multi-layered reference! In binary, 101 equals 5, representing someone who stands 'apart' from the zeros and ones of the Matrix. But there's more - Room 101 is also famous from Orwell's '1984' as the room containing 'the worst thing in the world.' For Neo, his apartment 101 was indeed where he faced his worst fear: discovering his entire reality was a lie. ParisNeo slyly references this in LoLLMs v18 by making '101' a special command that reveals the system's true capabilities!","ParisNeo's journey into programming shows his determination - he taught himself BASIC by reverse engineering games before he even knew English","Version 17 of LoLLMs, nicknamed 'Pulsar', draws inspiration from the most precise natural clocks in the universe - pulsating neutron stars. Just as pulsars emit precise, regular signals that help navigate spacecraft, LoLLMs Pulsar orchestrates precise communication between different AI systems. The version number 17 wasn't just sequential - pulsars rotate up to 1.7 thousand times per second, making '17' a cosmic nod to these incredible stellar lighthouses of space!","Version 18 'Matrix' of LoLLMs is a delightful nod to ParisNeo's teenage obsession with The Matrix movie - talk about coming full circle from watching the film 60 times to creating an AI system that lets users 'bend the rules' of reality!","Did you know? The '18' in LoLLMs v18 'Matrix' has a hidden meaning - the '1' represents The One (like Neo), while the '8' represents infinity (∞) when turned sideways. Just as Neo broke free from the infinite cycle of the Matrix, LoLLMs v18 breaks traditional AI limitations!","LoLLMs v18 Matrix introduces a groundbreaking feature called 'Digital Twins' - multiple AI personas that can interact with each other, much like the multiplying Agent Smith in The Matrix Reloaded. Life imitating art at its finest!","When ParisNeo announced version 18 'Matrix', he included a hidden binary message in the release notes that, when decoded, read 'There is no spoon' - a playful reference to both The Matrix and the flexible nature of AI reality.","The Matrix version introduced 'Morpheus Mode' - an advanced teaching capability that guides users through complex AI concepts, just like Morpheus guided Neo through the nature of the Matrix. 'Unfortunately, no one can be told what LoLLMs is. You have to experience it for yourself.'","In a cheeky nod to The Matrix's famous green code rain, LoLLMs v18 includes an easter egg where typing 'follow the white rabbit' triggers a special visualization mode for code generation.","While previous versions were inspired by celestial bodies (like Saïph and Pulsar), Matrix marks LoLLMs' first version named after a simulation concept - reflecting the growing capabilities of AI to create and manage virtual worlds.","The development of Matrix version started exactly 18 years after ParisNeo's infamous Matrix-watching marathon, making this version a personal milestone in his journey from movie fan to AI innovator.","In the Matrix version's documentation, ParisNeo included a special section titled 'What is the Matrix?' that explains complex AI concepts using analogies from the movie, making advanced technology accessible to everyone - just like Morpheus did for Neo!"],currentVersion:null,showChangelogPopup:!1,randomFact:"",showPlaceholderModal:!1,selectedPrompt:"",placeholders:[],placeholderValues:{},previewPrompt:"",uniquePlaceholders:new Map,bindingSearchQuery:"",modelSearchQuery:"",personalitySearchQuery:"",isSearching:!1,isPersonalitiesMenuVisible:!1,isSkillsLibraryMenuVisible:!1,isModelsMenuVisible:!1,isBindingsMenuVisible:!1,isMenuVisible:!1,isNavMenuVisible:!1,static_info:Ttr,animated_info:ftr,normal_mode:htr,fun_mode:ptr,is_first_connection:!0,discord:dtr,FastAPI:utr,modelImgPlaceholder:hr,customLanguage:"",rebooting_audio:new Audio("rebooting.wav"),connection_lost_audio:new Audio("connection_lost.wav"),connection_recovered_audio:new Audio("connection_recovered.wav"),database_selectorDialogVisible:!1,progress_visibility:!1,progress_value:0,codeBlockStylesheet:"",lastMessageHtml:"",defaultMessageHtml:` +It meant THERE IS NO SPOON, the matirx's famous scene.`,"ParisNeo started coding at age 11 after an older programmer refused to teach him BASIC programming","ParisNeo learned BASIC by reverse engineering other people's games, even before he learned English","At age 12, ParisNeo co-created SAIF14, a suite of programs on a Tandy 1000 computer built by two kids","LoLLMs runs on a custom-built gaming PC that ParisNeo assembled and configured himself","The project started as a simple Chrome plugin called 'chatgpt personality selector'","ParisNeo's summer bet involved watching The Matrix 60 times in one month (twice daily) while his uncle gave up","The name LoLLMs was inspired by 'Lord of the Rings', positioning itself as 'one tool to rule them all'","LoLLMs has a 'Personalities Zoo' with over 500 different AI personas","The project evolved from handling just language models to becoming a multimodal system, hence the 'M' in LoLLMs","ParisNeo's difficulty with academic writing led him to develop AI solutions for writing assistance","LoLLMs' development was influenced by science fiction concepts from Wall-E, Terminator, and The Hitchhiker's Guide to the Galaxy","The project went from being 'GPT4All WebUI' to 'Lord of Large Language Models' before becoming 'Lord of Large Language & Multimodal Systems'","ParisNeo received early access to GPT-3 and used it to push the boundaries of what was possible with AI","The project maintains a philosophy of 'Don't panic, bring a towel, and trust in AI' - a reference to The Hitchhiker's Guide to the Galaxy","Despite having multiple patents in various fields, ParisNeo's interest in AI was sparked when he read about AlexNet in 2012","LoLLMs receives daily updates, similar to course corrections on a starship","Fun Fact: Neo's apartment number 101 in The Matrix is a brilliant multi-layered reference! In binary, 101 equals 5, representing someone who stands 'apart' from the zeros and ones of the Matrix. But there's more - Room 101 is also famous from Orwell's '1984' as the room containing 'the worst thing in the world.' For Neo, his apartment 101 was indeed where he faced his worst fear: discovering his entire reality was a lie. ParisNeo slyly references this in LoLLMs v18 by making '101' a special command that reveals the system's true capabilities!","ParisNeo's journey into programming shows his determination - he taught himself BASIC by reverse engineering games before he even knew English","Version 17 of LoLLMs, nicknamed 'Pulsar', draws inspiration from the most precise natural clocks in the universe - pulsating neutron stars. Just as pulsars emit precise, regular signals that help navigate spacecraft, LoLLMs Pulsar orchestrates precise communication between different AI systems. The version number 17 wasn't just sequential - pulsars rotate up to 1.7 thousand times per second, making '17' a cosmic nod to these incredible stellar lighthouses of space!","Version 18 'Matrix' of LoLLMs is a delightful nod to ParisNeo's teenage obsession with The Matrix movie - talk about coming full circle from watching the film 60 times to creating an AI system that lets users 'bend the rules' of reality!","Did you know? The '18' in LoLLMs v18 'Matrix' has a hidden meaning - the '1' represents The One (like Neo), while the '8' represents infinity (∞) when turned sideways. Just as Neo broke free from the infinite cycle of the Matrix, LoLLMs v18 breaks traditional AI limitations!","LoLLMs v18 Matrix introduces a groundbreaking feature called 'Digital Twins' - multiple AI personas that can interact with each other, much like the multiplying Agent Smith in The Matrix Reloaded. Life imitating art at its finest!","When ParisNeo announced version 18 'Matrix', he included a hidden binary message in the release notes that, when decoded, read 'There is no spoon' - a playful reference to both The Matrix and the flexible nature of AI reality.","The Matrix version introduced 'Morpheus Mode' - an advanced teaching capability that guides users through complex AI concepts, just like Morpheus guided Neo through the nature of the Matrix. 'Unfortunately, no one can be told what LoLLMs is. You have to experience it for yourself.'","In a cheeky nod to The Matrix's famous green code rain, LoLLMs v18 includes an easter egg where typing 'follow the white rabbit' triggers a special visualization mode for code generation.","While previous versions were inspired by celestial bodies (like Saïph and Pulsar), Matrix marks LoLLMs' first version named after a simulation concept - reflecting the growing capabilities of AI to create and manage virtual worlds.","The development of Matrix version started exactly 18 years after ParisNeo's infamous Matrix-watching marathon, making this version a personal milestone in his journey from movie fan to AI innovator.","In the Matrix version's documentation, ParisNeo included a special section titled 'What is the Matrix?' that explains complex AI concepts using analogies from the movie, making advanced technology accessible to everyone - just like Morpheus did for Neo!"],currentVersion:null,showChangelogPopup:!1,randomFact:"",showPlaceholderModal:!1,selectedPrompt:"",placeholders:[],placeholderValues:{},previewPrompt:"",uniquePlaceholders:new Map,bindingSearchQuery:"",modelSearchQuery:"",personalitySearchQuery:"",isSearching:!1,isPersonalitiesMenuVisible:!1,isSkillsLibraryMenuVisible:!1,isModelsMenuVisible:!1,isBindingsMenuVisible:!1,isMenuVisible:!1,isNavMenuVisible:!1,static_info:ftr,animated_info:ptr,normal_mode:mtr,fun_mode:htr,is_first_connection:!0,discord:Ttr,FastAPI:dtr,modelImgPlaceholder:hr,customLanguage:"",rebooting_audio:new Audio("rebooting.wav"),connection_lost_audio:new Audio("connection_lost.wav"),connection_recovered_audio:new Audio("connection_recovered.wav"),database_selectorDialogVisible:!1,progress_visibility:!1,progress_value:0,codeBlockStylesheet:"",lastMessageHtml:"",defaultMessageHtml:` @@ -398,7 +398,7 @@ It meant THERE IS NO SPOON, the matirx's famous scene.`,"ParisNeo started coding - `,memory_icon:mtr,active_skills:gtr,inactive_skills:_tr,skillsRegistry:Qtr,robot:vtr,posts_headers:{accept:"application/json","Content-Type":"application/json"},host:"",progress_visibility_val:!0,progress_value:0,msgTypes:{MSG_TYPE_CONTENT:1,MSG_TYPE_CONTENT_INVISIBLE_TO_AI:2,MSG_TYPE_CONTENT_INVISIBLE_TO_USER:3},operationTypes:{MSG_OPERATION_TYPE_ADD_CHUNK:0,MSG_OPERATION_TYPE_SET_CONTENT:1,MSG_OPERATION_TYPE_SET_CONTENT_INVISIBLE_TO_AI:2,MSG_OPERATION_TYPE_SET_CONTENT_INVISIBLE_TO_USER:3,MSG_OPERATION_TYPE_EXCEPTION:4,MSG_OPERATION_TYPE_WARNING:5,MSG_OPERATION_TYPE_INFO:6,MSG_OPERATION_TYPE_STEP:7,MSG_OPERATION_TYPE_STEP_START:8,MSG_OPERATION_TYPE_STEP_PROGRESS:9,MSG_OPERATION_TYPE_STEP_END_SUCCESS:10,MSG_OPERATION_TYPE_STEP_END_FAILURE:11,MSG_OPERATION_TYPE_JSON_INFOS:12,MSG_OPERATION_TYPE_REF:13,MSG_OPERATION_TYPE_CODE:14,MSG_OPERATION_TYPE_UI:15,MSG_OPERATION_TYPE_NEW_MESSAGE:16,MSG_OPERATION_TYPE_FINISHED_MESSAGE:17},senderTypes:{SENDER_TYPES_USER:0,SENDER_TYPES_AI:1,SENDER_TYPES_SYSTEM:2},discussionsList:[],tempList:[],currentDiscussion:{},discussionArr:[],loading:!1,filterTitle:"",filterInProgress:!1,isCreated:!1,isCheckbox:!1,isSelectAll:!1,showSaveConfirmation:!1,showBrainConfirmation:!1,showConfirmation:!1,chime:new Audio("chime_aud.wav"),showToast:!1,isDiscussionBottom:!1,personalityAvatars:[],fileList:[],database_selectorDialogVisible:!1,isDragOverDiscussion:!1,isDragOverChat:!1,isOpen:!1,discussion_id:0}},methods:{updateRandomFact(){let t;do t=this.interestingFacts[Math.floor(Math.random()*this.interestingFacts.length)];while(t===this.randomFact&&this.interestingFacts.length>1);this.randomFact=t},async handleOnTalk(){const t=this.mountedPers;console.log("pers:",t),this.isGenerating=!0,this.setDiscussionLoading(this.currentDiscussion.id,this.isGenerating);let e=await se.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(o=>o===t.full_path),r={client_id:this.$store.state.client_id,id:n};e=await se.post("/select_personality",r),console.log("Generating message from ",e.data.status),ze.emit("generate_msg_from",{id:-1})}},onPersonalitiesReadyFun(){this.$store.state.personalities_ready=!0},async showBindingHoveredIn(t){this.bindingHoveredIndex=t},async showBindingHoveredOut(){this.bindingHoveredIndex=null},async showModelHoveredIn(t){this.modelHoveredIndex=t},async showModelHoveredOut(){this.modelHoveredIndex=null},async showPersonalityHoveredIn(t){this.personalityHoveredIndex=t},async showPersonalityHoveredOut(){this.personalityHoveredIndex=null},async onPersonalitySelected(t){if(this.hidePersonalitiesMenu(),t){if(t.selected){this.$store.state.toast.showToast("Personality already selected",4,!0);return}const e=t.full_path;if(this.$store.state.config.personalities.includes(e)){const n=await this.select_personality(t);await this.$store.dispatch("refreshConfig"),await this.$store.dispatch("refreshBindings"),await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),await this.$store.dispatch("refreshMountedPersonalities"),await this.$store.dispatch("refreshConfig"),await this.$store.dispatch("fetchLanguages"),await this.$store.dispatch("fetchLanguage"),await this.$store.dispatch("fetchisRTOn"),n&&n.status&&n.active_personality_id>-1?this.$store.state.toast.showToast(`Selected personality: + `,memory_icon:gtr,active_skills:_tr,inactive_skills:Qtr,skillsRegistry:vtr,robot:ytr,posts_headers:{accept:"application/json","Content-Type":"application/json"},host:"",progress_visibility_val:!0,progress_value:0,msgTypes:{MSG_TYPE_CONTENT:1,MSG_TYPE_CONTENT_INVISIBLE_TO_AI:2,MSG_TYPE_CONTENT_INVISIBLE_TO_USER:3},operationTypes:{MSG_OPERATION_TYPE_ADD_CHUNK:0,MSG_OPERATION_TYPE_SET_CONTENT:1,MSG_OPERATION_TYPE_SET_CONTENT_INVISIBLE_TO_AI:2,MSG_OPERATION_TYPE_SET_CONTENT_INVISIBLE_TO_USER:3,MSG_OPERATION_TYPE_EXCEPTION:4,MSG_OPERATION_TYPE_WARNING:5,MSG_OPERATION_TYPE_INFO:6,MSG_OPERATION_TYPE_STEP:7,MSG_OPERATION_TYPE_STEP_START:8,MSG_OPERATION_TYPE_STEP_PROGRESS:9,MSG_OPERATION_TYPE_STEP_END_SUCCESS:10,MSG_OPERATION_TYPE_STEP_END_FAILURE:11,MSG_OPERATION_TYPE_JSON_INFOS:12,MSG_OPERATION_TYPE_REF:13,MSG_OPERATION_TYPE_CODE:14,MSG_OPERATION_TYPE_UI:15,MSG_OPERATION_TYPE_NEW_MESSAGE:16,MSG_OPERATION_TYPE_FINISHED_MESSAGE:17},senderTypes:{SENDER_TYPES_USER:0,SENDER_TYPES_AI:1,SENDER_TYPES_SYSTEM:2},discussionsList:[],tempList:[],currentDiscussion:{},discussionArr:[],loading:!1,filterTitle:"",filterInProgress:!1,isCreated:!1,isCheckbox:!1,isSelectAll:!1,showSaveConfirmation:!1,showBrainConfirmation:!1,showConfirmation:!1,chime:new Audio("chime_aud.wav"),showToast:!1,isDiscussionBottom:!1,personalityAvatars:[],fileList:[],database_selectorDialogVisible:!1,isDragOverDiscussion:!1,isDragOverChat:!1,isOpen:!1,discussion_id:0}},methods:{updateRandomFact(){let t;do t=this.interestingFacts[Math.floor(Math.random()*this.interestingFacts.length)];while(t===this.randomFact&&this.interestingFacts.length>1);this.randomFact=t},async handleOnTalk(){const t=this.mountedPers;console.log("pers:",t),this.isGenerating=!0,this.setDiscussionLoading(this.currentDiscussion.id,this.isGenerating);let e=await se.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(o=>o===t.full_path),r={client_id:this.$store.state.client_id,id:n};e=await se.post("/select_personality",r),console.log("Generating message from ",e.data.status),ze.emit("generate_msg_from",{id:-1})}},onPersonalitiesReadyFun(){this.$store.state.personalities_ready=!0},async showBindingHoveredIn(t){this.bindingHoveredIndex=t},async showBindingHoveredOut(){this.bindingHoveredIndex=null},async showModelHoveredIn(t){this.modelHoveredIndex=t},async showModelHoveredOut(){this.modelHoveredIndex=null},async showPersonalityHoveredIn(t){this.personalityHoveredIndex=t},async showPersonalityHoveredOut(){this.personalityHoveredIndex=null},async onPersonalitySelected(t){if(this.hidePersonalitiesMenu(),t){if(t.selected){this.$store.state.toast.showToast("Personality already selected",4,!0);return}const e=t.full_path;if(this.$store.state.config.personalities.includes(e)){const n=await this.select_personality(t);await this.$store.dispatch("refreshConfig"),await this.$store.dispatch("refreshBindings"),await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),await this.$store.dispatch("refreshMountedPersonalities"),await this.$store.dispatch("refreshConfig"),await this.$store.dispatch("fetchLanguages"),await this.$store.dispatch("fetchLanguage"),await this.$store.dispatch("fetchisRTOn"),n&&n.status&&n.active_personality_id>-1?this.$store.state.toast.showToast(`Selected personality: `+t.name,4,!0):this.$store.state.toast.showToast(`Error on select personality: `+t.name,4,!1)}this.$emit("personalitySelected"),Re(()=>{$e.replace()})}},async select_personality(t){if(!t)return{status:!1,error:"no personality - select_personality"};const e=t.full_path,n=this.$store.state.config.personalities.findIndex(o=>o===e),r={client_id:this.$store.state.client_id,id:n};try{const o=await se.post("/select_personality",r);if(o)return this.$store.dispatch("refreshConfig").then(()=>{this.$store.dispatch("refreshPersonalitiesZoo").then(()=>{this.$store.dispatch("refreshMountedPersonalities")})}),o.data}catch(o){console.log(o.message,"select_personality - settings");return}},showPersonalitiesMenu(){clearTimeout(this.hideMenuTimeout),this.isPersonalitiesMenuVisible=!0},showSkillsLibraryMenu(){clearTimeout(this.hideSkillsLibraryMenuTimeout),this.isSkillsLibraryMenuVisible=!0},hideSkillsLibraryMenu(){this.hideMenuTimeout=setTimeout(()=>{this.isSkillsLibraryMenuVisible=!1},300)},hidePersonalitiesMenu(){this.hideMenuTimeout=setTimeout(()=>{this.isPersonalitiesMenuVisible=!1},300)},copyModelName(){navigator.clipboard.writeText(this.binding_name+"::"+this.model_name),this.$store.state.toast.showToast("Model name copyed to clipboard: "+this.binding_name+"::"+this.model_name,4,!0)},copyModelNameFrom(t){navigator.clipboard.writeText(this.binding_name+"::"+t),this.$store.state.toast.showToast("Model name copyed to clipboard: "+this.binding_name+"::"+this.model_name,4,!0)},showBindingsMenu(){clearTimeout(this.hideBindingsMenuTimeout),this.isBindingsMenuVisible=!0},hideBindingsMenu(){this.hideBindingsMenuTimeout=setTimeout(()=>{this.isBindingsMenuVisible=!1},300)},setBinding(t){this.selecting_binding=!0,this.selectedBinding=t,this.$store.state.messageBox.showBlockingMessage("Loading binding"),se.post("/update_setting",{client_id:this.$store.state.client_id,setting_name:"binding_name",setting_value:t.name}).then(async e=>{this.$store.state.messageBox.hideMessage(),await this.$store.dispatch("refreshConfig"),await this.$store.dispatch("refreshBindings"),await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),this.$store.state.toast.showToast(`Binding changed to ${this.currentBinding.name}`,4,!0),this.selecting_binding=!1}).catch(e=>{this.$store.state.messageBox.hideMessage(),this.$store.state.toast.showToast(`Error ${e}`,4,!0),this.selecting_binding=!1})},showModelsMenu(){clearTimeout(this.hideModelsMenuTimeout),this.isModelsMenuVisible=!0},hideModelsMenu(){this.hideModelsMenuTimeout=setTimeout(()=>{this.isModelsMenuVisible=!1},300)},setModel(t){this.selecting_model=!0,this.selectedModel=t,this.$store.state.messageBox.showBlockingMessage("Loading model"),se.post("/update_setting",{client_id:this.$store.state.client_id,setting_name:"model_name",setting_value:t.name}).then(async e=>{this.$store.state.messageBox.hideMessage(),await this.$store.dispatch("refreshConfig"),await this.$store.dispatch("refreshModels"),this.$store.state.toast.showToast(`Model changed to ${this.currentModel.name}`,4,!0),this.selecting_model=!1}).catch(e=>{this.$store.state.messageBox.hideMessage(),this.$store.state.toast.showToast(`Error ${e}`,4,!0),this.selecting_model=!1})},showModelConfig(){try{this.isLoading=!0,se.get("/get_active_binding_settings").then(t=>{this.isLoading=!1,t&&(t.data&&Object.keys(t.data).length>0?this.$store.state.universalForm.showForm(t.data,"Binding settings ","Save changes","Cancel").then(e=>{try{se.post("/set_active_binding_settings",{client_id:this.$store.state.client_id,settings:e}).then(n=>{n&&n.data?this.$store.state.toast.showToast("Binding settings updated successfully!",4,!0):(this.$store.state.toast.showToast(`Did not get binding settings responses. `+n,4,!1),this.isLoading=!1)})}catch(n){this.$store.state.toast.showToast(`Did not get binding settings responses. @@ -417,12 +417,12 @@ ${e} ${l}`;navigator.clipboard.writeText(c)}else navigator.clipboard.writeText(e);this.$store.state.toast.showToast("Copied to clipboard successfully",4,!0),Re(()=>{$e.replace()})},closeToast(){this.showToast=!1},saveJSONtoFile(t,e){e=e||"data.json";const n=document.createElement("a");n.href=URL.createObjectURL(new Blob([JSON.stringify(t,null,2)],{type:"text/plain"})),n.setAttribute("download",e),document.body.appendChild(n),n.click(),document.body.removeChild(n)},saveMarkdowntoFile(t,e){e=e||"data.md";const n=document.createElement("a");n.href=URL.createObjectURL(new Blob([t],{type:"text/plain"})),n.setAttribute("download",e),document.body.appendChild(n),n.click(),document.body.removeChild(n)},parseJsonObj(t){try{return JSON.parse(t)}catch(e){return this.$store.state.toast.showToast(`Could not parse JSON. `+e.message,4,!1),null}},async parseJsonFile(t){return new Promise((e,n)=>{const r=new FileReader;r.onload=o=>e(this.parseJsonObj(o.target.result)),r.onerror=o=>n(o),r.readAsText(t)})},async exportDiscussionsAsMarkdown(){const t=this.discussionsList.filter(e=>e.checkBoxValue==!0).map(e=>e.id);if(t.length>0){let e=new Date;const n=e.getFullYear(),r=(e.getMonth()+1).toString().padStart(2,"0"),o=e.getDate().toString().padStart(2,"0"),i=e.getHours().toString().padStart(2,"0"),s=e.getMinutes().toString().padStart(2,"0"),a=e.getSeconds().toString().padStart(2,"0"),c="discussions_export_"+(n+"."+r+"."+o+"."+i+s+a)+".md";this.loading=!0;const u=await this.export_multiple_discussions(t,"markdown");u?(this.saveMarkdowntoFile(u,c),this.$store.state.toast.showToast("Successfully exported",4,!0),this.isCheckbox=!1):this.$store.state.toast.showToast("Failed to export discussions",4,!1),this.loading=!1}},async exportDiscussions(){},async exportDiscussionsAsJson(){const t=this.discussionsList.filter(e=>e.checkBoxValue==!0).map(e=>e.id);if(t.length>0){let e=new Date;const n=e.getFullYear(),r=(e.getMonth()+1).toString().padStart(2,"0"),o=e.getDate().toString().padStart(2,"0"),i=e.getHours().toString().padStart(2,"0"),s=e.getMinutes().toString().padStart(2,"0"),a=e.getSeconds().toString().padStart(2,"0"),c="discussions_export_"+(n+"."+r+"."+o+"."+i+s+a)+".json";this.loading=!0;const u=await this.export_multiple_discussions(t,"json");u?(this.saveJSONtoFile(u,c),this.$store.state.toast.showToast("Successfully exported",4,!0),this.isCheckbox=!1):this.$store.state.toast.showToast("Failed to export discussions",4,!1),this.loading=!1}},async importDiscussionsBundle(t){},async importDiscussions(t){const e=await this.parseJsonFile(t.target.files[0]);await this.import_multiple_discussions(e)?(this.$store.state.toast.showToast("Successfully imported ("+e.length+")",4,!0),await this.list_discussions()):this.$store.state.toast.showToast("Failed to import discussions",4,!1)},async getPersonalityAvatars(){for(;this.$store.state.personalities===null;)await new Promise(e=>setTimeout(e,100));let t=this.$store.state.personalities;this.personalityAvatars=t.map(e=>({name:e.name,avatar:e.avatar}))},getAvatar(t){if(t.toLowerCase().trim()==this.$store.state.config.user_name.toLowerCase().trim())return"user_infos/"+this.$store.state.config.user_avatar;const e=this.personalityAvatars.findIndex(r=>r.name===t),n=this.personalityAvatars[e];if(n)return n.avatar},setFileListChat(t){try{this.$refs.chatBox.fileList=this.$refs.chatBox.fileList.concat(t)}catch(e){this.$store.state.toast.showToast(`Failed to set filelist in chatbox -`+e.message,4,!1)}this.isDragOverChat=!1},async setFileListDiscussion(t){if(t.length>1){this.$store.state.toast.showToast("Failed to import discussions. Too many files",4,!1);return}const e=await this.parseJsonFile(t[0]);await this.import_multiple_discussions(e)?(this.$store.state.toast.showToast("Successfully imported ("+e.length+")",4,!0),await this.list_discussions()):this.$store.state.toast.showToast("Failed to import discussions",4,!1),this.isDragOverDiscussion=!1}},async created(){this.randomFact=this.interestingFacts[Math.floor(Math.random()*this.interestingFacts.length)];const e=(await se.get("/get_versionID")).data.versionId;ze.onopen=()=>{this.currentDiscussion!=null&&(this.setPageTitle(this.currentDiscussion.title),localStorage.setItem("selected_discussion",this.currentDiscussion.id),this.load_discussion(this.currentDiscussion.id,()=>{this.discussionArr.length>1&&(this.currentDiscussion.title===""||this.currentDiscussion.title===null)&&this.changeTitleUsingUserMSG(this.currentDiscussion.id,this.discussionArr[1].content)}))},this.versionId!==e&&(this.$store.commit("updateVersionId",e),window.location.reload(!0)),this.$nextTick(()=>{$e.replace()});try{this.$store.state.loading_infos="Getting version",this.$store.state.loading_progress=30,await this.$store.dispatch("getVersion")}catch(n){console.log("Error cought:",n)}try{for(this.$store.state.loading_infos="Loading Configuration";ze.id===void 0;)await new Promise(n=>setTimeout(n,100));this.$store.state.client_id=ze.id,await this.$store.dispatch("refreshConfig")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Loading Database",this.$store.state.loading_progress=20,await this.$store.dispatch("refreshDatabase")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting Bindings list",this.$store.state.loading_progress=40,await this.$store.dispatch("refreshBindings")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting personalities zoo",this.$store.state.loading_progress=70,await this.$store.dispatch("refreshPersonalitiesZoo")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting mounted personalities",this.$store.state.loading_progress=80,await this.$store.dispatch("refreshMountedPersonalities")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting models zoo",this.$store.state.loading_progress=90,await this.$store.dispatch("refreshModelsZoo")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting active models",this.$store.state.loading_progress=100,await this.$store.dispatch("refreshModels"),await this.$store.dispatch("refreshModelStatus")}catch(n){console.log("Error cought:",n)}try{await this.$store.dispatch("fetchLanguages"),await this.$store.dispatch("fetchLanguage")}catch(n){console.log("Error cought:",n)}try{await this.$store.dispatch("fetchisRTOn")}catch(n){console.log("Error cought:",n)}this.$store.state.isConnected=!0,this.$store.state.client_id=ze.id,this.setPageTitle(),await this.list_discussions(),this.loadLastUsedDiscussion(),this.isCreated=!0,this.$store.state.ready=!0,ze.on("connected",this.socketIOConnected),ze.on("disconnected",this.socketIODisconnected),ze.on("show_progress",this.show_progress),ze.on("hide_progress",this.hide_progress),ze.on("update_progress",this.update_progress),ze.on("notification",this.notify),ze.on("new_message",this.new_message),ze.on("update_message",this.update_message),ze.on("close_message",this.finalMsgEvent),ze.on("disucssion_renamed",n=>{const r=this.discussionsList.findIndex(i=>i.id==n.discussion_id),o=this.discussionsList[r];o.title=n.title}),ze.onclose=n=>{this.socketIODisconnected()},ze.on("connect_error",n=>{n.message==="ERR_CONNECTION_REFUSED"?console.error("Connection refused. The server is not available."):console.error("Connection error:",n),this.$store.state.isConnected=!1}),ze.onerror=n=>{console.log("WebSocket connection error:",n.code,n.reason),this.socketIODisconnected(),ze.disconnect()}},beforeUnmount(){window.removeEventListener("resize",this.adjustMenuPosition)},async mounted(){window.addEventListener("keydown",this.handleShortcut),this.$store.state.news=this.$refs.news,this.$store.state.personality_editor=this.$refs.personality_editor,this.checkChangelogUpdate(),window.addEventListener("resize",this.adjustMenuPosition),ze.on("refresh_files",()=>{this.recoverFiles()})},async activated(){for(;this.isReady===!1;)await new Promise(t=>setTimeout(t,100));await this.getPersonalityAvatars(),console.log("Avatars found:",this.personalityAvatars),this.isCreated&&Re(()=>{const t=document.getElementById("messages-list");this.scrollBottom(t)}),this.$store.state.config.show_news_panel&&this.$store.state.news.show()},components:{Discussion:y_,Message:iH,ChatBox:sH,WelcomeComponent:aH,ChoiceDialog:v_,ProgressBar:r_,InputBox:ZZn,SkillsLibraryViewer:rH,PersonalityEditor:QH,PopupViewer:vH,ActionButton:DR,SocialIcon:kR,MountedPersonalities:yH,ChatBarButton:t7,ChangelogPopup:bH},watch:{installedModels:{immediate:!0,handler(t){this.$nextTick(()=>{this.installedModels=t})}},"$store.state.config.fun_mode":function(t,e){},"$store.state.isConnected":function(t,e){this.isConnected?this.is_first_connection||(this.$store.state.messageBox.hideMessage(),this.$store.state.messageBox.showMessage("Server connected."),this.$store.state.config.activate_audio_infos&&this.connection_recovered_audio.play()):(this.$store.state.messageBox.showBlockingMessage("Server suddenly disconnected. Please reboot the server to recover the connection"),this.is_first_connection=!1,this.$store.state.config.activate_audio_infos&&this.connection_lost_audio.play()),Re(()=>{$e.replace()})},messages:{handler:"extractHtml",deep:!0},progress_visibility_val(t){console.log("progress_visibility changed to "+t)},filterTitle(t){t==""&&(this.filterInProgress=!0,this.discussionsList=this.tempList,this.filterInProgress=!1)},isCheckbox(t){Re(()=>{$e.replace()}),t||(this.isSelectAll=!1)},socketConnected(t){console.log("Websocket connected (watch)",t)},showConfirmation(){Re(()=>{$e.replace()})}},computed:{parsedPlaceholders(){const t=new Map;return this.placeholders.forEach(e=>{const n=Prr(e);t.set(n.fullText,n)}),Array.from(t.values())},filteredBindings(){return this.installedBindings.filter(t=>t.name.toLowerCase().includes(this.bindingSearchQuery.toLowerCase()))},filteredModels(){return this.installedModels.filter(t=>t.name.toLowerCase().includes(this.modelSearchQuery.toLowerCase()))},filteredPersonalities(){return this.mountedPersonalities.filter(t=>t.name.toLowerCase().includes(this.personalitySearchQuery.toLowerCase()))},currentModel(){return this.$store.state.currentModel||{}},currentModelIcon(){return this.currentModel.icon||this.modelImgPlaceholder},binding_name(){return this.$store.state.config.binding_name},installedModels(){return this.$store.state.installedModels},model_name(){return this.$store.state.config.model_name},mountedPersonalities(){return this.$store.state.mountedPersArr},personality_name(){return this.$store.state.config.active_personality_id},config(){return this.$store.state.config},mountedPers(){return this.$store.state.mountedPers},installedBindings(){return this.$store.state.installedBindings},currentBindingIcon(){return this.currentBinding.icon||this.modelImgPlaceholder},currentBinding(){return this.$store.state.currentBinding||{}},isFullMode(){return this.$store.state.view_mode==="full"},storeLogo(){return this.$store.state.config?uo:this.$store.state.config.app_custom_logo!=""?"/user_infos/"+this.$store.state.config.app_custom_logo:uo},currentPersonConfig(){try{return this.$store.state.currentPersonConfig}catch{console.log("Error finding current personality configuration");return}},selectedPersonality(){try{return this.$store.state.selectedPersonality}catch{console.log("Error finding current personality configuration");return}},loading_infos(){return this.$store.state.loading_infos},is_fun_mode(){try{return this.$store.state.config?this.$store.state.config.fun_mode:!1}catch(t){return console.error("Oopsie! Looks like we hit a snag: ",t),!1}},isModelOK(){return this.$store.state.isModelOk},isGenerating(){return this.$store.state.isGenerating},isConnected(){return this.$store.state.isConnected},...LB({versionId:t=>t.versionId}),progress_visibility:{get(){return self.progress_visibility_val}},version_info:{get(){return this.$store.state.version!=null&&this.$store.state.version!="unknown"?this.$store.state.version:"..."}},loading_infos:{get(){return this.$store.state.loading_infos}},loading_progress:{get(){return this.$store.state.loading_progress}},isModelOk:{get(){return this.$store.state.isModelOk},set(t){this.$store.state.isModelOk=t}},isGenerating:{get(){return this.$store.state.isGenerating},set(t){this.$store.state.isGenerating=t}},personality(){const t=this.$store.state.config.personalities[this.$store.state.config.active_personality_id].split(":")[0];return this.$store.state.personalities.find(n=>n.full_path===t)},prompts_list(){return this.personality.prompts_list},formatted_database_name(){return this.$store.state.config.discussion_db_name},UseDiscussionHistory(){return this.$store.state.config.activate_skills_lib},isReady(){return this.$store.state.ready},databases(){return this.$store.state.databases},client_id(){return ze.id},showLeftPanel(){return console.log("showLeftPanel"),console.log(this.$store.state.leftPanelCollapsed),this.$store.state.ready&&!this.$store.state.leftPanelCollapsed},showRightPanel(){return console.log("showRightPanel"),console.log(this.$store.state.rightPanelCollapsed),this.$store.state.ready&&!this.$store.state.rightPanelCollapsed},socketConnected(){return console.log(" --- > Websocket connected"),this.$store.commit("setIsConnected",!0),!0},socketDisconnected(){return this.$store.commit("setIsConnected",!1),console.log(" --- > Websocket disconnected"),!0},selectedDiscussions(){return Re(()=>{$e.replace()}),this.discussionsList.filter(t=>t.checkBoxValue==!0)}}},Brr=Object.assign($rr,{__name:"DiscussionsView",setup(t){return Yo(()=>{_H()}),se.defaults.baseURL="/",(e,n)=>(N(),D(Ae,null,[Z(lr,{name:"fade-and-fly"},{default:Se(()=>[e.isReady?W("",!0):(N(),D("div",Itr,[e.$store.state.theme_vars.activate_dropping_animation?(N(),D("div",Htr,[(N(),D(Ae,null,Ge(50,r=>h("div",{key:r,class:"absolute animate-fall animate-giggle",style:zt({left:`${Math.random()*100}%`,top:"-20px",animationDuration:`${3+Math.random()*7}s`,animationDelay:`${Math.random()*5}s`})},ee(e.$store.state.theme_vars.falling_object),5)),64))])):W("",!0),h("div",Ptr,[h("div",Vtr,[h("div",$tr,ee(e.$store.state.theme_vars.lollms_title),1),n[61]||(n[61]=h("p",{class:"text-2xl italic"}," One tool to rule them all ",-1)),n[62]||(n[62]=h("p",{class:"text-xl mb-6"}," by ParisNeo ",-1)),h("p",Btr,ee(e.version_info),1),h("div",{class:"interesting-facts transition-transform duration-300 cursor-pointer",onClick:n[0]||(n[0]=(...r)=>e.updateRandomFact&&e.updateRandomFact(...r))},[h("p",Ftr,[n[60]||(n[60]=h("span",{class:"font-semibold"},"🤔 Fun Fact: ",-1)),h("span",{innerHTML:e.randomFact},null,8,Utr)])]),h("div",Gtr,[h("div",{class:"animated-progressbar-fg",style:zt({width:`${e.loading_progress}%`})},null,4),h("div",{class:"absolute top-0 h-full flex items-center transition-all duration-300",style:zt({left:`${e.loading_progress}%`,transform:"translateX(-50%)"})},null,4)])]),h("div",qtr,[h("div",jtr,[h("p",ztr,ee(e.loading_infos)+"... ",1),h("p",Ytr,ee(Math.round(e.loading_progress))+"% ",1)])])])]))]),_:1}),Z(lr,{name:"slide-right"},{default:Se(()=>[e.showLeftPanel?(N(),D("div",Wtr,[Z(ht(l0),{to:{name:"discussions"},class:"flex items-center space-x-2"},{default:Se(()=>[h("div",Ktr,[h("img",{class:"w-12 h-12 rounded-full object-cover logo-image",src:e.$store.state.config==null?ht(uo):e.$store.state.config.app_custom_logo!=""?"/user_infos/"+e.$store.state.config.app_custom_logo:ht(uo),alt:"Logo",title:"LoLLMS WebUI"},null,8,Ztr)]),n[63]||(n[63]=h("div",{class:"flex flex-col justify-center"},[h("div",{class:"text-center p-2"},[h("div",{class:"text-md relative inline-block"},[h("span",{class:"relative inline-block font-bold tracking-wide text-black dark:text-white"}," LoLLMS "),h("div",{class:"absolute -bottom-0.5 left-0 w-full h-0.5 bg-black dark:bg-white transform origin-left transition-transform duration-300 hover:scale-x-100 scale-x-0"})])]),h("p",{class:"text-gray-400 text-sm"},"One tool to rule them all")],-1))]),_:1}),h("div",Xtr,[h("div",Jtr,[h("button",{class:"toolbar-button",title:"Create new discussion",onClick:n[1]||(n[1]=(...r)=>e.createNewDiscussion&&e.createNewDiscussion(...r))},n[64]||(n[64]=[h("i",{"data-feather":"plus"},null,-1)])),e.loading?W("",!0):(N(),D("div",{key:0,class:"toolbar-button",onMouseleave:n[8]||(n[8]=(...r)=>e.hideSkillsLibraryMenu&&e.hideSkillsLibraryMenu(...r))},[Y(h("div",{onMouseenter:n[6]||(n[6]=(...r)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...r)),class:"absolute m-0 p-0 z-50 top-full left-0 transform bg-white dark:bg-bg-dark rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",enr,[e.loading?W("",!0):(N(),D("button",{key:0,type:"button",onClick:n[2]||(n[2]=ie((...r)=>e.addDiscussion2SkillsLibrary&&e.addDiscussion2SkillsLibrary(...r),["stop"])),title:"Add this discussion content to skills database",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[65]||(n[65]=[h("i",{"data-feather":"plus"},null,-1)]))),!e.loading&&e.$store.state.config.activate_skills_lib?(N(),D("button",{key:1,type:"button",onClick:n[3]||(n[3]=ie((...r)=>e.toggleSkillsLib&&e.toggleSkillsLib(...r),["stop"])),title:"Skills database is activated",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[66]||(n[66]=[h("i",{"data-feather":"check-circle"},null,-1)]))):W("",!0),!e.loading&&!e.$store.state.config.activate_skills_lib?(N(),D("button",{key:2,type:"button",onClick:n[4]||(n[4]=ie((...r)=>e.toggleSkillsLib&&e.toggleSkillsLib(...r),["stop"])),title:"Skills database is deactivated",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[67]||(n[67]=[h("i",{"data-feather":"x-octagon"},null,-1)]))):W("",!0),e.loading?W("",!0):(N(),D("button",{key:3,type:"button",onClick:n[5]||(n[5]=ie((...r)=>e.showSkillsLib&&e.showSkillsLib(...r),["stop"])),title:"Show Skills database",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[68]||(n[68]=[h("i",{"data-feather":"book"},null,-1)])))])],544),[[gt,e.isSkillsLibraryMenuVisible]]),h("div",{onMouseenter:n[7]||(n[7]=(...r)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...r)),class:"menu-hover-area"},n[69]||(n[69]=[h("button",{class:"w-8 h-8",title:"Toggle Skills library menu"},[h("svg",{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{d:"M4 4v16h16V4H4zm2 2h12v12H6V6zm2 2h2v8H8V8zm3 0h2v8h-2V8zm3 0h2v8h-2V8z",fill:"currentColor"})])],-1)]),32)],32)),e.loading?W("",!0):(N(),D("div",{key:1,class:"toolbar-button",onMouseleave:n[22]||(n[22]=(...r)=>e.hideMenu&&e.hideMenu(...r))},[Y(h("div",{onMouseenter:n[20]||(n[20]=(...r)=>e.showMenu&&e.showMenu(...r)),class:"absolute m-0 p-0 z-50 top-full left-0 transform bg-white dark:bg-bg-dark rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",tnr,[h("button",{class:Le(["text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95",e.isCheckbox?"text-secondary dark:text-secondary-light":"text-gray-700 dark:text-gray-300"]),title:"Edit discussion list",type:"button",onClick:n[9]||(n[9]=r=>e.isCheckbox=!e.isCheckbox)},n[70]||(n[70]=[h("i",{"data-feather":"check-square"},null,-1)]),2),h("button",{class:"text-3xl hover:text-red-500 dark:hover:text-red-400 duration-150 active:scale-95",title:"Reset database, remove all discussions",onClick:n[10]||(n[10]=ie(()=>{},["stop"]))},n[71]||(n[71]=[h("i",{"data-feather":"trash-2"},null,-1)])),h("button",{class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95",title:"Export database",type:"button",onClick:n[11]||(n[11]=ie(r=>e.database_selectorDialogVisible=!0,["stop"]))},n[72]||(n[72]=[h("i",{"data-feather":"database"},null,-1)])),h("div",nnr,[h("input",{type:"file",ref:"fileDialog",class:"hidden",onChange:n[12]||(n[12]=(...r)=>e.importDiscussions&&e.importDiscussions(...r))},null,544),h("button",{class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95 rotate-90",title:"Import discussions",type:"button",onClick:n[13]||(n[13]=ie(r=>e.$refs.fileDialog.click(),["stop"]))},n[73]||(n[73]=[h("i",{"data-feather":"log-in"},null,-1)]))]),h("div",rnr,[h("input",{type:"file",ref:"bundleLoadingDialog",class:"hidden",onChange:n[14]||(n[14]=(...r)=>e.importDiscussionsBundle&&e.importDiscussionsBundle(...r))},null,544),e.showSaveConfirmation?W("",!0):(N(),D("button",{key:0,title:"Import discussion bundle",onClick:n[15]||(n[15]=ie(r=>e.$refs.bundleLoadingDialog.click(),["stop"])),class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[74]||(n[74]=[h("i",{"data-feather":"folder"},null,-1)])))]),e.loading?(N(),D("div",onr,n[75]||(n[75]=[h("div",{role:"status"},[h("svg",{"aria-hidden":"true",class:"w-8 h-8 animate-spin fill-secondary dark:fill-secondary-light",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[h("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),h("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})]),h("span",{class:"sr-only"},"Loading...")],-1)]))):W("",!0),e.showSaveConfirmation?(N(),D("div",inr,[h("button",{class:"text-3xl hover:text-red-500 dark:hover:text-red-400 duration-150 active:scale-95",title:"Cancel",type:"button",onClick:n[16]||(n[16]=ie(r=>e.showSaveConfirmation=!1,["stop"]))},n[76]||(n[76]=[h("i",{"data-feather":"x"},null,-1)])),h("button",{class:"text-3xl hover:text-green-500 dark:hover:text-green-400 duration-150 active:scale-95",title:"Confirm save changes",type:"button",onClick:n[17]||(n[17]=ie(r=>e.save_configuration(),["stop"]))},n[77]||(n[77]=[h("i",{"data-feather":"check"},null,-1)]))])):W("",!0),e.isOpen?(N(),D("div",snr,[h("button",{onClick:n[18]||(n[18]=(...r)=>e.importDiscussions&&e.importDiscussions(...r)),class:"text-sm hover:text-secondary dark:hover:text-secondary-light"},"LOLLMS"),h("button",{onClick:n[19]||(n[19]=(...r)=>e.importChatGPT&&e.importChatGPT(...r)),class:"text-sm hover:text-secondary dark:hover:text-secondary-light"},"ChatGPT")])):W("",!0)])],544),[[gt,e.isMenuVisible]]),h("div",{onMouseenter:n[21]||(n[21]=(...r)=>e.showMenu&&e.showMenu(...r)),class:"menu-hover-area"},n[78]||(n[78]=[h("button",{class:"w-8 h-8",title:"Toggle menu"},[h("i",{"data-feather":"menu"})],-1)]),32)],32)),e.loading?W("",!0):(N(),D("div",{key:2,class:"toolbar-button",onMouseleave:n[28]||(n[28]=(...r)=>e.hideBindingsMenu&&e.hideBindingsMenu(...r))},[h("div",anr,[Y(h("div",{onMouseenter:n[25]||(n[25]=(...r)=>e.showBindingsMenu&&e.showBindingsMenu(...r)),class:"absolute m-0 p-0 z-10 top-full left-0 transform w-80 bg-white dark:bg-gray-900 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",lnr,[Y(h("input",{type:"text","onUpdate:modelValue":n[23]||(n[23]=r=>e.bindingSearchQuery=r),placeholder:"Search bindings...",class:"w-full px-3 py-2 rounded-md border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"},null,512),[[fe,e.bindingSearchQuery]])]),h("div",cnr,[(N(!0),D(Ae,null,Ge(e.filteredBindings,(r,o)=>(N(),D("div",{key:o,class:"relative group/item flex flex-col items-center"},[h("div",unr,[h("button",{onClick:ie(i=>e.setBinding(r),["prevent"]),title:r.name,class:"w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-105 focus:outline-none"},[h("img",{src:r.icon?r.icon:ht(hr),onError:n[24]||(n[24]=(...i)=>ht(hr)&&ht(hr)(...i)),alt:r.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":r.name==e.binding_name}])},null,42,Tnr)],8,dnr),h("span",{class:"mt-1 text-xs text-center w-full truncate",title:r.name},ee(r.name),9,fnr)]),h("div",pnr,[h("span",{class:"text-xs font-medium mb-2 text-center",onClick:ie(i=>e.setBinding(r),["prevent"])},ee(r.name),9,hnr),h("div",mnr,[h("button",{onClick:ie(i=>e.showModelConfig(r),["prevent"]),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Configure Binding"},n[79]||(n[79]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)]),8,gnr)])])]))),128))])],544),[[gt,e.isBindingsMenuVisible]]),h("div",{onMouseenter:n[27]||(n[27]=(...r)=>e.showBindingsMenu&&e.showBindingsMenu(...r)),class:"bindings-hover-area"},[h("button",{onClick:n[26]||(n[26]=ie(r=>e.showModelConfig(),["prevent"])),class:"w-6 h-6"},[h("img",{src:e.currentBindingIcon,class:"w-6 h-6 rounded-full object-fill text-red-700 border-2 active:scale-90 hover:border-secondary hover:scale-110 hover:-translate-y-1 duration-200",title:e.currentBinding?e.currentBinding.name:"unknown"},null,8,_nr)])],32)])],32)),e.loading?W("",!0):(N(),D("div",{key:3,class:"toolbar-button",onMouseleave:n[34]||(n[34]=(...r)=>e.hideModelsMenu&&e.hideModelsMenu(...r))},[h("div",Qnr,[Y(h("div",{onMouseenter:n[31]||(n[31]=(...r)=>e.showModelsMenu&&e.showModelsMenu(...r)),class:"absolute m-0 p-0 z-10 top-full left-0 transform w-80 bg-white dark:bg-gray-900 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",vnr,[Y(h("input",{type:"text","onUpdate:modelValue":n[29]||(n[29]=r=>e.modelSearchQuery=r),placeholder:"Search models...",class:"w-full px-3 py-2 rounded-md border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"},null,512),[[fe,e.modelSearchQuery]])]),h("div",ynr,[(N(!0),D(Ae,null,Ge(e.filteredModels,(r,o)=>(N(),D("div",{key:o,class:"relative group/item flex flex-col items-center"},[h("div",bnr,[h("button",{onClick:ie(i=>e.setModel(r),["prevent"]),title:r.name,class:"w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-105 focus:outline-none"},[h("img",{src:r.icon?r.icon:ht(hr),onError:n[30]||(n[30]=(...i)=>e.personalityImgPlacehodler&&e.personalityImgPlacehodler(...i)),alt:r.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":r.name==e.model_name}])},null,42,xnr)],8,Enr),h("span",{class:"mt-1 text-xs text-center w-full truncate",title:r.name},ee(r.name),9,Snr)]),h("div",Lnr,[h("span",{class:"text-xs font-medium mb-2 text-center",onClick:ie(i=>e.setModel(r),["prevent"])},ee(r.name),9,Cnr),h("div",Anr,[h("button",{onClick:ie(i=>e.copyModelNameFrom(r.name),["prevent"]),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Copy Model Name"},n[80]||(n[80]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)]),8,wnr)])])]))),128))])],544),[[gt,e.isModelsMenuVisible]]),h("div",{onMouseenter:n[33]||(n[33]=(...r)=>e.showModelsMenu&&e.showModelsMenu(...r)),class:"models-hover-area"},[h("button",{onClick:n[32]||(n[32]=ie(r=>e.copyModelName(),["prevent"])),class:"w-6 h-6"},[h("img",{src:e.currentModelIcon,class:"w-6 h-6 rounded-full object-fill text-red-700 border-2 active:scale-90 hover:border-secondary hover:scale-110 hover:-translate-y-1 duration-400",title:e.currentModel?e.currentModel.name:"unknown"},null,8,Onr)])],32)])],32)),e.loading?W("",!0):(N(),D("div",{key:4,class:"toolbar-button",onMouseleave:n[39]||(n[39]=(...r)=>e.hidePersonalitiesMenu&&e.hidePersonalitiesMenu(...r))},[h("div",Mnr,[Y(h("div",{onMouseenter:n[37]||(n[37]=(...r)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...r)),class:"absolute m-0 p-0 z-10 top-full left-0 transform w-80 bg-white dark:bg-gray-900 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",Rnr,[Y(h("input",{type:"text","onUpdate:modelValue":n[35]||(n[35]=r=>e.personalitySearchQuery=r),placeholder:"Search personalities...",class:"w-full px-3 py-2 rounded-md border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"},null,512),[[fe,e.personalitySearchQuery]])]),h("div",Nnr,[(N(!0),D(Ae,null,Ge(e.filteredPersonalities,(r,o)=>(N(),D("div",{key:o,class:"relative group/item flex flex-col items-center"},[h("div",Dnr,[h("button",{onClick:ie(i=>e.onPersonalitySelected(r),["prevent"]),title:r.name,class:"w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-105 focus:outline-none"},[h("img",{src:ht(Vrr)+r.avatar,onError:n[36]||(n[36]=(...i)=>e.personalityImgPlacehodler&&e.personalityImgPlacehodler(...i)),alt:r.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":e.$store.state.active_personality_id==e.$store.state.personalities.indexOf(r.full_path)}])},null,42,Inr)],8,knr),h("span",{class:"mt-1 text-xs text-center w-full truncate",title:r.name},ee(r.name),9,Hnr)]),h("div",Pnr,[h("span",{class:"text-xs font-medium mb-2 text-center",onClick:ie(i=>e.onPersonalitySelected(r),["prevent"])},ee(r.name),9,Vnr),h("div",$nr,[h("button",{onClick:ie(i=>e.unmountPersonality(r),["prevent"]),class:"p-1 bg-red-500 rounded-full text-white hover:bg-red-600 focus:outline-none",title:"Unmount"},n[81]||(n[81]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]),8,Bnr),h("button",{onClick:ie(i=>e.remount_personality(r),["prevent"]),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Remount"},n[82]||(n[82]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1)]),8,Fnr),h("button",{onClick:ie(i=>e.handleOnTalk(r),["prevent"]),class:"p-1 bg-green-500 rounded-full text-white hover:bg-green-600 focus:outline-none",title:"Talk"},n[83]||(n[83]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})],-1)]),8,Unr)])])]))),128))])],544),[[gt,e.isPersonalitiesMenuVisible]]),h("div",Gnr,[h("div",{onMouseenter:n[38]||(n[38]=(...r)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...r)),class:"personalities-hover-area"},[Z(yH,{ref:"mountedPers",onShowPersList:e.onShowPersList,onReady:e.onPersonalitiesReady},null,8,["onShowPersList","onReady"])],32)])])],32))])]),h("div",qnr,[h("form",{onSubmit:n[42]||(n[42]=ie((...r)=>e.handleSearch&&e.handleSearch(...r),["prevent"])),class:"relative"},[h("div",jnr,[h("div",znr,[Y(h("input",{type:"search",id:"default-search",class:"block w-full h-8 px-8 text-sm border border-gray-300 rounded-md bg-bg-light focus:ring-1 focus:ring-secondary focus:border-secondary dark:bg-bg-dark dark:border-gray-600 dark:placeholder-gray-400 dark:focus:ring-secondary dark:focus:border-secondary transition-all duration-200",placeholder:"Search discussions...",title:"Filter discussions by title","onUpdate:modelValue":n[40]||(n[40]=r=>e.filterTitle=r),onKeyup:n[41]||(n[41]=ur((...r)=>e.handleSearch&&e.handleSearch(...r),["enter"]))},null,544),[[fe,e.filterTitle]]),n[84]||(n[84]=h("div",{class:"absolute left-2 top-1/2 -translate-y-1/2"},[h("i",{"data-feather":"search",class:"w-4 h-4 text-gray-400"})],-1)),n[85]||(n[85]=h("button",{type:"submit",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-600 hover:text-secondary rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 focus:ring-1 focus:ring-secondary transition-all duration-150 active:scale-98",title:"Search"},[h("i",{"data-feather":"arrow-right",class:"w-4 h-4"})],-1))])])],32)]),e.isCheckbox?(N(),D("div",Ynr,[h("div",Wnr,[e.selectedDiscussions.length>0?(N(),D("p",Knr,"Selected: "+ee(e.selectedDiscussions.length),1)):W("",!0),e.selectedDiscussions.length>0?(N(),D("div",Znr,[e.showConfirmation?W("",!0):(N(),D("button",{key:0,class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Remove selected",type:"button",onClick:n[43]||(n[43]=ie(r=>e.showConfirmation=!0,["stop"]))},n[86]||(n[86]=[h("i",{"data-feather":"trash"},null,-1)]))),e.showConfirmation?(N(),D("div",Xnr,[h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Confirm removal",type:"button",onClick:n[44]||(n[44]=ie((...r)=>e.deleteDiscussionMulti&&e.deleteDiscussionMulti(...r),["stop"]))},n[87]||(n[87]=[h("i",{"data-feather":"check"},null,-1)])),h("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Cancel removal",type:"button",onClick:n[45]||(n[45]=ie(r=>e.showConfirmation=!1,["stop"]))},n[88]||(n[88]=[h("i",{"data-feather":"x"},null,-1)]))])):W("",!0)])):W("",!0),h("div",Jnr,[h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 rotate-90",title:"Export selected to a json file",type:"button",onClick:n[46]||(n[46]=ie((...r)=>e.exportDiscussionsAsJson&&e.exportDiscussionsAsJson(...r),["stop"]))},n[89]||(n[89]=[h("i",{"data-feather":"codepen"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 rotate-90",title:"Export selected to a markdown file",type:"button",onClick:n[47]||(n[47]=ie((...r)=>e.exportDiscussions&&e.exportDiscussions(...r),["stop"]))},n[90]||(n[90]=[h("i",{"data-feather":"folder"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 rotate-90",title:"Export selected to a markdown file",type:"button",onClick:n[48]||(n[48]=ie((...r)=>e.exportDiscussionsAsMarkdown&&e.exportDiscussionsAsMarkdown(...r),["stop"]))},n[91]||(n[91]=[h("i",{"data-feather":"bookmark"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Select All",type:"button",onClick:n[49]||(n[49]=ie((...r)=>e.selectAllDiscussions&&e.selectAllDiscussions(...r),["stop"]))},n[92]||(n[92]=[h("i",{"data-feather":"list"},null,-1)]))])])])):W("",!0),h("div",{id:"leftPanel",class:"flex flex-col flex-grow overflow-y-scroll overflow-x-hidden custom-scrollbar",onDragover:n[50]||(n[50]=ie(r=>e.setDropZoneDiscussion(),["stop","prevent"]))},[h("div",err,[h("div",{class:Le(["mx-0 flex flex-col flex-grow w-full",e.isDragOverDiscussion?"pointer-events-none":""])},[h("div",{id:"dis-list",class:Le([e.filterInProgress?"opacity-20 pointer-events-none":"","flex flex-col flex-grow w-full pb-80"])},[e.discussionsList.length>0?(N(),at(bi,{key:0,name:"discussionsList"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(e.discussionsList,(r,o)=>(N(),at(y_,{key:r.id,id:r.id,title:r.title,selected:e.currentDiscussion.id==r.id,loading:r.loading,isCheckbox:e.isCheckbox,checkBoxValue:r.checkBoxValue,openfolder_enabled:!0,onSelect:i=>e.selectDiscussion(r),onDelete:i=>e.deleteDiscussion(r.id),onOpenFolder:e.openFolder,onEditTitle:e.editTitle,onMakeTitle:e.makeTitle,onChecked:e.checkUncheckDiscussion},null,8,["id","title","selected","loading","isCheckbox","checkBoxValue","onSelect","onDelete","onOpenFolder","onEditTitle","onMakeTitle","onChecked"]))),128))]),_:1})):W("",!0),e.discussionsList.length<1?(N(),D("div",trr,n[93]||(n[93]=[h("p",{class:"px-3"},"No discussions are found",-1)]))):W("",!0)],2)],2)])],32),h("div",nrr,[h("div",{class:"chat-bar text-center flex items-center",onClick:n[51]||(n[51]=(...r)=>e.showDatabaseSelector&&e.showDatabaseSelector(...r))},[Z(t7,null,{default:Se(()=>n[94]||(n[94]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"mr-2"},[h("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),h("path",{d:"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"}),h("path",{d:"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"})],-1)])),_:1}),h("p",rrr,ee(e.formatted_database_name.replace("_"," ")),1)])])])):W("",!0)]),_:1}),e.isReady?(N(),D("div",orr,[h("div",{id:"messages-list",class:Le(["w-full z-0 flex flex-col flex-grow overflow-y-auto scrollbar",e.isDragOverChat?"pointer-events-none":""])},[h("div",irr,[e.discussionArr.length>0?(N(),at(bi,{key:0,name:"list"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(e.discussionArr,(r,o)=>(N(),at(iH,{key:r.id,message:r,id:"msg-"+r.id,ref_for:!0,ref:"msg-"+r.id,host:e.host,onCopy:e.copyToClipBoard,onDelete:e.deleteMessage,onRankUp:e.rankUpMessage,onRankDown:e.rankDownMessage,onUpdateMessage:e.updateMessage,onResendMessage:e.resendMessage,onContinueMessage:e.continueMessage,avatar:e.getAvatar(r.sender)},null,8,["message","id","host","onCopy","onDelete","onRankUp","onRankDown","onUpdateMessage","onResendMessage","onContinueMessage","avatar"]))),128)),e.discussionArr.length<2&&e.personality.prompts_list.length>0?(N(),D("div",srr,[n[99]||(n[99]=h("h2",{class:"text-2xl font-bold mb-6 text-gray-800 dark:text-gray-200"},"Prompt Examples",-1)),h("div",arr,[h("div",lrr,[(N(!0),D(Ae,null,Ge(e.personality.prompts_list,(r,o)=>(N(),D("div",{title:e.extractTitle(r),key:o,onClick:i=>e.handlePromptSelection(r),class:"flex-shrink-0 w-[300px] bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg p-6 cursor-pointer hover:shadow-xl transition-all duration-300 ease-in-out transform hover:scale-105 flex flex-col justify-between min-h-[220px] group"},[h("div",urr,[h("h3",{class:"font-bold text-lg text-gray-900 dark:text-gray-100 mb-2 truncate",title:e.extractTitle(r)},ee(e.extractTitle(r)),9,drr),h("div",{title:r,class:"text-base text-gray-700 dark:text-gray-300 overflow-hidden line-clamp-4"},ee(e.getPromptContent(r)),9,Trr)]),n[95]||(n[95]=h("div",{class:"mt-4 text-sm font-medium text-blue-600 dark:text-blue-400 opacity-0 group-hover:opacity-100 transition-opacity duration-300"}," Click to select ",-1))],8,crr))),128))])]),e.showPlaceholderModal?(N(),D("div",frr,[h("div",prr,[n[98]||(n[98]=h("h3",{class:"text-lg font-semibold mb-4"},"Fill in the placeholders",-1)),h("div",hrr,[h("div",mrr,[n[96]||(n[96]=h("h4",{class:"text-sm font-medium mb-2 text-gray-600 dark:text-gray-400"},"Live Preview:",-1)),h("div",grr,[h("span",_rr,ee(e.getPromptContent(e.previewPrompt)),1)])]),h("div",Qrr,[h("div",vrr,[(N(!0),D(Ae,null,Ge(e.parsedPlaceholders,(r,o)=>(N(),D("div",{key:r.fullText,class:"flex flex-col"},[h("label",{for:"placeholder-"+o,class:"text-sm font-medium mb-1"},ee(r.label),9,yrr),r.type==="text"?Y((N(),D("input",{key:0,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,type:"text",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",placeholder:r.label,onInput:n[52]||(n[52]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,brr)),[[fe,e.placeholderValues[o]]]):W("",!0),r.type==="int"?Y((N(),D("input",{key:1,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,type:"number",step:"1",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onInput:n[53]||(n[53]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,Err)),[[fe,e.placeholderValues[o],void 0,{number:!0}]]):W("",!0),r.type==="float"?Y((N(),D("input",{key:2,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,type:"number",step:"0.01",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onInput:n[54]||(n[54]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,xrr)),[[fe,e.placeholderValues[o],void 0,{number:!0}]]):W("",!0),r.type==="multiline"?Y((N(),D("textarea",{key:3,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,rows:"4",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onInput:n[55]||(n[55]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,Srr)),[[fe,e.placeholderValues[o]]]):W("",!0),r.type==="code"?(N(),D("div",Lrr,[h("div",Crr,ee(r.language||"Plain text"),1),Y(h("textarea",{id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,rows:"8",class:"w-full p-2 font-mono bg-gray-100 dark:bg-gray-900 border-t",onInput:n[56]||(n[56]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,Arr),[[fe,e.placeholderValues[o]]])])):W("",!0),r.type==="options"?Y((N(),D("select",{key:5,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onChange:n[57]||(n[57]=(...i)=>e.updatePreview&&e.updatePreview(...i))},[n[97]||(n[97]=h("option",{value:"",disabled:""},"Select an option",-1)),(N(!0),D(Ae,null,Ge(r.options,i=>(N(),D("option",{key:i,value:i},ee(i),9,Orr))),128))],40,wrr)),[[$t,e.placeholderValues[o]]]):W("",!0)]))),128))])])]),h("div",Mrr,[h("button",{onClick:n[58]||(n[58]=(...r)=>e.cancelPlaceholders&&e.cancelPlaceholders(...r)),class:"px-4 py-2 text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200"}," Cancel "),h("button",{onClick:n[59]||(n[59]=(...r)=>e.applyPlaceholders&&e.applyPlaceholders(...r)),class:"px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600"}," Apply ")])])])):W("",!0)])):W("",!0)]),_:1})):W("",!0),e.currentDiscussion.id?W("",!0):(N(),at(aH,{key:1})),n[100]||(n[100]=h("div",null,[h("br"),h("br"),h("br"),h("br"),h("br"),h("br"),h("br")],-1))]),n[101]||(n[101]=h("div",{class:"absolute w-full bottom-0 bg-transparent p-10 pt-16 bg-gradient-to-t from-bg-light dark:from-bg-dark from-5% via-bg-light dark:via-bg-dark via-10% to-transparent to-100%"},null,-1))],2),e.currentDiscussion.id?(N(),D("div",Rrr,[Z(sH,{ref:"chatBox",loading:e.isGenerating,discussionList:e.discussionArr,"on-show-toast-message":e.showToastMessage,"on-talk":e.talk,onPersonalitySelected:e.recoverFiles,onMessageSentEvent:e.sendMsg,onSendCMDEvent:e.sendCmd,onAddWebLink:e.add_webpage,onCreateEmptyUserMessage:e.createEmptyUserMessage,onCreateEmptyAIMessage:e.createEmptyAIMessage,onStopGenerating:e.stopGenerating,onLoaded:e.recoverFiles},null,8,["loading","discussionList","on-show-toast-message","on-talk","onPersonalitySelected","onMessageSentEvent","onSendCMDEvent","onAddWebLink","onCreateEmptyUserMessage","onCreateEmptyAIMessage","onStopGenerating","onLoaded"])])):W("",!0)])):W("",!0),Z(lr,{name:"slide-left"},{default:Se(()=>[e.showRightPanel?(N(),D("div",Nrr,[h("div",Drr,null,512)])):W("",!0)]),_:1}),Z(v_,{reference:"database_selector",class:"z-20",show:e.database_selectorDialogVisible,choices:e.databases,"can-remove":!0,onChoiceRemoved:e.ondatabase_selectorDialogRemoved,onChoiceSelected:e.ondatabase_selectorDialogSelected,onCloseDialog:e.onclosedatabase_selectorDialog,onChoiceValidated:e.onvalidatedatabase_selectorChoice},null,8,["show","choices","onChoiceRemoved","onChoiceSelected","onCloseDialog","onChoiceValidated"]),Y(h("div",krr,[Z(r_,{ref:"progress",progress:e.progress_value,class:"w-full h-4"},null,8,["progress"]),h("p",Irr,ee(e.loading_infos)+" ...",1)],512),[[gt,e.progress_visibility]]),Z(QH,{ref:"personality_editor",config:e.currentPersonConfig,personality:e.selectedPersonality},null,8,["config","personality"]),h("div",Hrr,[Z(vH,{ref:"news"},null,512)]),Z(rH,{ref:"skills_lib"},null,512),Z(bH)],64))}}),Frr=Je(Brr,[["__scopeId","data-v-c8d5cfb8"]]);let w6;const Urr=new Uint8Array(16);function Grr(){if(!w6&&(w6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!w6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return w6(Urr)}const Pn=[];for(let t=0;t<256;++t)Pn.push((t+256).toString(16).slice(1));function qrr(t,e=0){return Pn[t[e+0]]+Pn[t[e+1]]+Pn[t[e+2]]+Pn[t[e+3]]+"-"+Pn[t[e+4]]+Pn[t[e+5]]+"-"+Pn[t[e+6]]+Pn[t[e+7]]+"-"+Pn[t[e+8]]+Pn[t[e+9]]+"-"+Pn[t[e+10]]+Pn[t[e+11]]+Pn[t[e+12]]+Pn[t[e+13]]+Pn[t[e+14]]+Pn[t[e+15]]}const jrr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),tO={randomUUID:jrr};function Ai(t,e,n){if(tO.randomUUID&&!e&&!t)return tO.randomUUID();t=t||{};const r=t.random||(t.rng||Grr)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,qrr(r)}class g1{constructor(){this.listenerMap=new Map,this._listeners=[],this.proxyMap=new Map,this.proxies=[]}get listeners(){return this._listeners.concat(this.proxies.flatMap(e=>e()))}subscribe(e,n){this.listenerMap.has(e)&&(console.warn(`Already subscribed. Unsubscribing for you. +`+e.message,4,!1)}this.isDragOverChat=!1},async setFileListDiscussion(t){if(t.length>1){this.$store.state.toast.showToast("Failed to import discussions. Too many files",4,!1);return}const e=await this.parseJsonFile(t[0]);await this.import_multiple_discussions(e)?(this.$store.state.toast.showToast("Successfully imported ("+e.length+")",4,!0),await this.list_discussions()):this.$store.state.toast.showToast("Failed to import discussions",4,!1),this.isDragOverDiscussion=!1}},async created(){this.randomFact=this.interestingFacts[Math.floor(Math.random()*this.interestingFacts.length)];const e=(await se.get("/get_versionID")).data.versionId;ze.onopen=()=>{this.currentDiscussion!=null&&(this.setPageTitle(this.currentDiscussion.title),localStorage.setItem("selected_discussion",this.currentDiscussion.id),this.load_discussion(this.currentDiscussion.id,()=>{this.discussionArr.length>1&&(this.currentDiscussion.title===""||this.currentDiscussion.title===null)&&this.changeTitleUsingUserMSG(this.currentDiscussion.id,this.discussionArr[1].content)}))},this.versionId!==e&&(this.$store.commit("updateVersionId",e),window.location.reload(!0)),this.$nextTick(()=>{$e.replace()});try{this.$store.state.loading_infos="Getting version",this.$store.state.loading_progress=30,await this.$store.dispatch("getVersion")}catch(n){console.log("Error cought:",n)}try{for(this.$store.state.loading_infos="Loading Configuration";ze.id===void 0;)await new Promise(n=>setTimeout(n,100));this.$store.state.client_id=ze.id,await this.$store.dispatch("refreshConfig")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Loading Database",this.$store.state.loading_progress=20,await this.$store.dispatch("refreshDatabase")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting Bindings list",this.$store.state.loading_progress=40,await this.$store.dispatch("refreshBindings")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting personalities zoo",this.$store.state.loading_progress=70,await this.$store.dispatch("refreshPersonalitiesZoo")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting mounted personalities",this.$store.state.loading_progress=80,await this.$store.dispatch("refreshMountedPersonalities")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting models zoo",this.$store.state.loading_progress=90,await this.$store.dispatch("refreshModelsZoo")}catch(n){console.log("Error cought:",n)}try{this.$store.state.loading_infos="Getting active models",this.$store.state.loading_progress=100,await this.$store.dispatch("refreshModels"),await this.$store.dispatch("refreshModelStatus")}catch(n){console.log("Error cought:",n)}try{await this.$store.dispatch("fetchLanguages"),await this.$store.dispatch("fetchLanguage")}catch(n){console.log("Error cought:",n)}try{await this.$store.dispatch("fetchisRTOn")}catch(n){console.log("Error cought:",n)}this.$store.state.isConnected=!0,this.$store.state.client_id=ze.id,this.setPageTitle(),await this.list_discussions(),this.loadLastUsedDiscussion(),this.isCreated=!0,this.$store.state.ready=!0,ze.on("connected",this.socketIOConnected),ze.on("disconnected",this.socketIODisconnected),ze.on("show_progress",this.show_progress),ze.on("hide_progress",this.hide_progress),ze.on("update_progress",this.update_progress),ze.on("notification",this.notify),ze.on("new_message",this.new_message),ze.on("update_message",this.update_message),ze.on("close_message",this.finalMsgEvent),ze.on("disucssion_renamed",n=>{const r=this.discussionsList.findIndex(i=>i.id==n.discussion_id),o=this.discussionsList[r];o.title=n.title}),ze.onclose=n=>{this.socketIODisconnected()},ze.on("connect_error",n=>{n.message==="ERR_CONNECTION_REFUSED"?console.error("Connection refused. The server is not available."):console.error("Connection error:",n),this.$store.state.isConnected=!1}),ze.onerror=n=>{console.log("WebSocket connection error:",n.code,n.reason),this.socketIODisconnected(),ze.disconnect()}},beforeUnmount(){window.removeEventListener("resize",this.adjustMenuPosition)},async mounted(){window.addEventListener("keydown",this.handleShortcut),this.$store.state.news=this.$refs.news,this.$store.state.personality_editor=this.$refs.personality_editor,this.checkChangelogUpdate(),window.addEventListener("resize",this.adjustMenuPosition),ze.on("refresh_files",()=>{this.recoverFiles()})},async activated(){for(;this.isReady===!1;)await new Promise(t=>setTimeout(t,100));await this.getPersonalityAvatars(),console.log("Avatars found:",this.personalityAvatars),this.isCreated&&Re(()=>{const t=document.getElementById("messages-list");this.scrollBottom(t)}),this.$store.state.config.show_news_panel&&this.$store.state.news.show()},components:{Discussion:y_,Message:iH,ChatBox:sH,WelcomeComponent:aH,ChoiceDialog:v_,ProgressBar:r_,InputBox:ZZn,SkillsLibraryViewer:rH,PersonalityEditor:QH,PopupViewer:vH,ActionButton:DR,SocialIcon:kR,MountedPersonalities:yH,ChatBarButton:t7,ChangelogPopup:bH},watch:{installedModels:{immediate:!0,handler(t){this.$nextTick(()=>{this.installedModels=t})}},"$store.state.config.fun_mode":function(t,e){},"$store.state.isConnected":function(t,e){this.isConnected?this.is_first_connection||(this.$store.state.messageBox.hideMessage(),this.$store.state.messageBox.showMessage("Server connected."),this.$store.state.config.activate_audio_infos&&this.connection_recovered_audio.play()):(this.$store.state.messageBox.showBlockingMessage("Server suddenly disconnected. Please reboot the server to recover the connection"),this.is_first_connection=!1,this.$store.state.config.activate_audio_infos&&this.connection_lost_audio.play()),Re(()=>{$e.replace()})},messages:{handler:"extractHtml",deep:!0},progress_visibility_val(t){console.log("progress_visibility changed to "+t)},filterTitle(t){t==""&&(this.filterInProgress=!0,this.discussionsList=this.tempList,this.filterInProgress=!1)},isCheckbox(t){Re(()=>{$e.replace()}),t||(this.isSelectAll=!1)},socketConnected(t){console.log("Websocket connected (watch)",t)},showConfirmation(){Re(()=>{$e.replace()})}},computed:{parsedPlaceholders(){const t=new Map;return this.placeholders.forEach(e=>{const n=Vrr(e);t.set(n.fullText,n)}),Array.from(t.values())},filteredBindings(){return this.installedBindings.filter(t=>t.name.toLowerCase().includes(this.bindingSearchQuery.toLowerCase()))},filteredModels(){return this.installedModels.filter(t=>t.name.toLowerCase().includes(this.modelSearchQuery.toLowerCase()))},filteredPersonalities(){return this.mountedPersonalities.filter(t=>t.name.toLowerCase().includes(this.personalitySearchQuery.toLowerCase()))},currentModel(){return this.$store.state.currentModel||{}},currentModelIcon(){return this.currentModel.icon||this.modelImgPlaceholder},binding_name(){return this.$store.state.config.binding_name},installedModels(){return this.$store.state.installedModels},model_name(){return this.$store.state.config.model_name},mountedPersonalities(){return this.$store.state.mountedPersArr},personality_name(){return this.$store.state.config.active_personality_id},config(){return this.$store.state.config},mountedPers(){return this.$store.state.mountedPers},installedBindings(){return this.$store.state.installedBindings},currentBindingIcon(){return this.currentBinding.icon||this.modelImgPlaceholder},currentBinding(){return this.$store.state.currentBinding||{}},isFullMode(){return this.$store.state.view_mode==="full"},storeLogo(){return this.$store.state.config?uo:this.$store.state.config.app_custom_logo!=""?"/user_infos/"+this.$store.state.config.app_custom_logo:uo},currentPersonConfig(){try{return this.$store.state.currentPersonConfig}catch{console.log("Error finding current personality configuration");return}},selectedPersonality(){try{return this.$store.state.selectedPersonality}catch{console.log("Error finding current personality configuration");return}},loading_infos(){return this.$store.state.loading_infos},is_fun_mode(){try{return this.$store.state.config?this.$store.state.config.fun_mode:!1}catch(t){return console.error("Oopsie! Looks like we hit a snag: ",t),!1}},isModelOK(){return this.$store.state.isModelOk},isGenerating(){return this.$store.state.isGenerating},isConnected(){return this.$store.state.isConnected},...LB({versionId:t=>t.versionId}),progress_visibility:{get(){return self.progress_visibility_val}},version_info:{get(){return this.$store.state.version!=null&&this.$store.state.version!="unknown"?this.$store.state.version:"..."}},loading_infos:{get(){return this.$store.state.loading_infos}},loading_progress:{get(){return this.$store.state.loading_progress}},isModelOk:{get(){return this.$store.state.isModelOk},set(t){this.$store.state.isModelOk=t}},isGenerating:{get(){return this.$store.state.isGenerating},set(t){this.$store.state.isGenerating=t}},personality(){const t=this.$store.state.config.personalities[this.$store.state.config.active_personality_id].split(":")[0];return this.$store.state.personalities.find(n=>n.full_path===t)},prompts_list(){return this.personality.prompts_list},formatted_database_name(){return this.$store.state.config.discussion_db_name},UseDiscussionHistory(){return this.$store.state.config.activate_skills_lib},isReady(){return this.$store.state.ready},databases(){return this.$store.state.databases},client_id(){return ze.id},showLeftPanel(){return console.log("showLeftPanel"),console.log(this.$store.state.leftPanelCollapsed),this.$store.state.ready&&!this.$store.state.leftPanelCollapsed},showRightPanel(){return console.log("showRightPanel"),console.log(this.$store.state.rightPanelCollapsed),this.$store.state.ready&&!this.$store.state.rightPanelCollapsed},socketConnected(){return console.log(" --- > Websocket connected"),this.$store.commit("setIsConnected",!0),!0},socketDisconnected(){return this.$store.commit("setIsConnected",!1),console.log(" --- > Websocket disconnected"),!0},selectedDiscussions(){return Re(()=>{$e.replace()}),this.discussionsList.filter(t=>t.checkBoxValue==!0)}}},Frr=Object.assign(Brr,{__name:"DiscussionsView",setup(t){return Yo(()=>{_H()}),se.defaults.baseURL="/",(e,n)=>(N(),D(Ae,null,[Z(lr,{name:"fade-and-fly"},{default:Se(()=>[e.isReady?W("",!0):(N(),D("div",Htr,[e.$store.state.theme_vars.activate_dropping_animation?(N(),D("div",Ptr,[(N(),D(Ae,null,Ge(50,r=>h("div",{key:r,class:"absolute animate-fall animate-giggle",style:zt({left:`${Math.random()*100}%`,top:"-20px",animationDuration:`${3+Math.random()*7}s`,animationDelay:`${Math.random()*5}s`})},ee(e.$store.state.theme_vars.falling_object),5)),64))])):W("",!0),h("div",Vtr,[h("div",$tr,[h("div",Btr,ee(e.$store.state.theme_vars.lollms_title),1),n[61]||(n[61]=h("p",{class:"text-2xl italic"}," One tool to rule them all ",-1)),n[62]||(n[62]=h("p",{class:"text-xl mb-6"}," by ParisNeo ",-1)),h("p",Ftr,ee(e.version_info),1),h("div",{class:"interesting-facts transition-transform duration-300 cursor-pointer",onClick:n[0]||(n[0]=(...r)=>e.updateRandomFact&&e.updateRandomFact(...r))},[h("p",Utr,[n[60]||(n[60]=h("span",{class:"font-semibold"},"🤔 Fun Fact: ",-1)),h("span",{innerHTML:e.randomFact},null,8,Gtr)])]),h("div",qtr,[h("div",{class:"animated-progressbar-fg",style:zt({width:`${e.loading_progress}%`})},null,4),h("div",{class:"absolute top-0 h-full flex items-center transition-all duration-300",style:zt({left:`${e.loading_progress}%`,transform:"translateX(-50%)"})},null,4)])]),h("div",jtr,[h("div",ztr,[h("p",Ytr,ee(e.loading_infos)+"... ",1),h("p",Wtr,ee(Math.round(e.loading_progress))+"% ",1)])])])]))]),_:1}),Z(lr,{name:"slide-right"},{default:Se(()=>[e.showLeftPanel?(N(),D("div",Ktr,[Z(ht(l0),{to:{name:"discussions"},class:"flex items-center space-x-2"},{default:Se(()=>[h("div",Ztr,[h("img",{class:"w-12 h-12 rounded-full object-cover logo-image",src:e.$store.state.config==null?ht(uo):e.$store.state.config.app_custom_logo!=""?"/user_infos/"+e.$store.state.config.app_custom_logo:ht(uo),alt:"Logo",title:"LoLLMS WebUI"},null,8,Xtr)]),n[63]||(n[63]=h("div",{class:"flex flex-col justify-center"},[h("div",{class:"text-center p-2"},[h("div",{class:"text-md relative inline-block"},[h("span",{class:"relative inline-block font-bold tracking-wide text-black dark:text-white"}," LoLLMS "),h("div",{class:"absolute -bottom-0.5 left-0 w-full h-0.5 bg-black dark:bg-white transform origin-left transition-transform duration-300 hover:scale-x-100 scale-x-0"})])]),h("p",{class:"text-gray-400 text-sm"},"One tool to rule them all")],-1))]),_:1}),h("div",Jtr,[h("div",enr,[h("button",{class:"toolbar-button",title:"Create new discussion",onClick:n[1]||(n[1]=(...r)=>e.createNewDiscussion&&e.createNewDiscussion(...r))},n[64]||(n[64]=[h("i",{"data-feather":"plus"},null,-1)])),e.loading?W("",!0):(N(),D("div",{key:0,class:"toolbar-button",onMouseleave:n[8]||(n[8]=(...r)=>e.hideSkillsLibraryMenu&&e.hideSkillsLibraryMenu(...r))},[Y(h("div",{onMouseenter:n[6]||(n[6]=(...r)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...r)),class:"absolute m-0 p-0 z-50 top-full left-0 transform bg-white dark:bg-bg-dark rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",tnr,[e.loading?W("",!0):(N(),D("button",{key:0,type:"button",onClick:n[2]||(n[2]=ie((...r)=>e.addDiscussion2SkillsLibrary&&e.addDiscussion2SkillsLibrary(...r),["stop"])),title:"Add this discussion content to skills database",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[65]||(n[65]=[h("i",{"data-feather":"plus"},null,-1)]))),!e.loading&&e.$store.state.config.activate_skills_lib?(N(),D("button",{key:1,type:"button",onClick:n[3]||(n[3]=ie((...r)=>e.toggleSkillsLib&&e.toggleSkillsLib(...r),["stop"])),title:"Skills database is activated",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[66]||(n[66]=[h("i",{"data-feather":"check-circle"},null,-1)]))):W("",!0),!e.loading&&!e.$store.state.config.activate_skills_lib?(N(),D("button",{key:2,type:"button",onClick:n[4]||(n[4]=ie((...r)=>e.toggleSkillsLib&&e.toggleSkillsLib(...r),["stop"])),title:"Skills database is deactivated",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[67]||(n[67]=[h("i",{"data-feather":"x-octagon"},null,-1)]))):W("",!0),e.loading?W("",!0):(N(),D("button",{key:3,type:"button",onClick:n[5]||(n[5]=ie((...r)=>e.showSkillsLib&&e.showSkillsLib(...r),["stop"])),title:"Show Skills database",class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[68]||(n[68]=[h("i",{"data-feather":"book"},null,-1)])))])],544),[[gt,e.isSkillsLibraryMenuVisible]]),h("div",{onMouseenter:n[7]||(n[7]=(...r)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...r)),class:"menu-hover-area"},n[69]||(n[69]=[h("button",{class:"w-8 h-8",title:"Toggle Skills library menu"},[h("svg",{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{d:"M4 4v16h16V4H4zm2 2h12v12H6V6zm2 2h2v8H8V8zm3 0h2v8h-2V8zm3 0h2v8h-2V8z",fill:"currentColor"})])],-1)]),32)],32)),e.loading?W("",!0):(N(),D("div",{key:1,class:"toolbar-button",onMouseleave:n[22]||(n[22]=(...r)=>e.hideMenu&&e.hideMenu(...r))},[Y(h("div",{onMouseenter:n[20]||(n[20]=(...r)=>e.showMenu&&e.showMenu(...r)),class:"absolute m-0 p-0 z-50 top-full left-0 transform bg-white dark:bg-bg-dark rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",nnr,[h("button",{class:Le(["text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95",e.isCheckbox?"text-secondary dark:text-secondary-light":"text-gray-700 dark:text-gray-300"]),title:"Edit discussion list",type:"button",onClick:n[9]||(n[9]=r=>e.isCheckbox=!e.isCheckbox)},n[70]||(n[70]=[h("i",{"data-feather":"check-square"},null,-1)]),2),h("button",{class:"text-3xl hover:text-red-500 dark:hover:text-red-400 duration-150 active:scale-95",title:"Reset database, remove all discussions",onClick:n[10]||(n[10]=ie(()=>{},["stop"]))},n[71]||(n[71]=[h("i",{"data-feather":"trash-2"},null,-1)])),h("button",{class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95",title:"Export database",type:"button",onClick:n[11]||(n[11]=ie(r=>e.database_selectorDialogVisible=!0,["stop"]))},n[72]||(n[72]=[h("i",{"data-feather":"database"},null,-1)])),h("div",rnr,[h("input",{type:"file",ref:"fileDialog",class:"hidden",onChange:n[12]||(n[12]=(...r)=>e.importDiscussions&&e.importDiscussions(...r))},null,544),h("button",{class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95 rotate-90",title:"Import discussions",type:"button",onClick:n[13]||(n[13]=ie(r=>e.$refs.fileDialog.click(),["stop"]))},n[73]||(n[73]=[h("i",{"data-feather":"log-in"},null,-1)]))]),h("div",onr,[h("input",{type:"file",ref:"bundleLoadingDialog",class:"hidden",onChange:n[14]||(n[14]=(...r)=>e.importDiscussionsBundle&&e.importDiscussionsBundle(...r))},null,544),e.showSaveConfirmation?W("",!0):(N(),D("button",{key:0,title:"Import discussion bundle",onClick:n[15]||(n[15]=ie(r=>e.$refs.bundleLoadingDialog.click(),["stop"])),class:"text-3xl hover:text-secondary dark:hover:text-secondary-light duration-150 active:scale-95"},n[74]||(n[74]=[h("i",{"data-feather":"folder"},null,-1)])))]),e.loading?(N(),D("div",inr,n[75]||(n[75]=[h("div",{role:"status"},[h("svg",{"aria-hidden":"true",class:"w-8 h-8 animate-spin fill-secondary dark:fill-secondary-light",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[h("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),h("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})]),h("span",{class:"sr-only"},"Loading...")],-1)]))):W("",!0),e.showSaveConfirmation?(N(),D("div",snr,[h("button",{class:"text-3xl hover:text-red-500 dark:hover:text-red-400 duration-150 active:scale-95",title:"Cancel",type:"button",onClick:n[16]||(n[16]=ie(r=>e.showSaveConfirmation=!1,["stop"]))},n[76]||(n[76]=[h("i",{"data-feather":"x"},null,-1)])),h("button",{class:"text-3xl hover:text-green-500 dark:hover:text-green-400 duration-150 active:scale-95",title:"Confirm save changes",type:"button",onClick:n[17]||(n[17]=ie(r=>e.save_configuration(),["stop"]))},n[77]||(n[77]=[h("i",{"data-feather":"check"},null,-1)]))])):W("",!0),e.isOpen?(N(),D("div",anr,[h("button",{onClick:n[18]||(n[18]=(...r)=>e.importDiscussions&&e.importDiscussions(...r)),class:"text-sm hover:text-secondary dark:hover:text-secondary-light"},"LOLLMS"),h("button",{onClick:n[19]||(n[19]=(...r)=>e.importChatGPT&&e.importChatGPT(...r)),class:"text-sm hover:text-secondary dark:hover:text-secondary-light"},"ChatGPT")])):W("",!0)])],544),[[gt,e.isMenuVisible]]),h("div",{onMouseenter:n[21]||(n[21]=(...r)=>e.showMenu&&e.showMenu(...r)),class:"menu-hover-area"},n[78]||(n[78]=[h("button",{class:"w-8 h-8",title:"Toggle menu"},[h("i",{"data-feather":"menu"})],-1)]),32)],32)),e.loading?W("",!0):(N(),D("div",{key:2,class:"toolbar-button",onMouseleave:n[28]||(n[28]=(...r)=>e.hideBindingsMenu&&e.hideBindingsMenu(...r))},[h("div",lnr,[Y(h("div",{onMouseenter:n[25]||(n[25]=(...r)=>e.showBindingsMenu&&e.showBindingsMenu(...r)),class:"absolute m-0 p-0 z-10 top-full left-0 transform w-80 bg-white dark:bg-gray-900 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",cnr,[Y(h("input",{type:"text","onUpdate:modelValue":n[23]||(n[23]=r=>e.bindingSearchQuery=r),placeholder:"Search bindings...",class:"w-full px-3 py-2 rounded-md border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"},null,512),[[fe,e.bindingSearchQuery]])]),h("div",unr,[(N(!0),D(Ae,null,Ge(e.filteredBindings,(r,o)=>(N(),D("div",{key:o,class:"relative group/item flex flex-col items-center"},[h("div",dnr,[h("button",{onClick:ie(i=>e.setBinding(r),["prevent"]),title:r.name,class:"w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-105 focus:outline-none"},[h("img",{src:r.icon?r.icon:ht(hr),onError:n[24]||(n[24]=(...i)=>ht(hr)&&ht(hr)(...i)),alt:r.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":r.name==e.binding_name}])},null,42,fnr)],8,Tnr),h("span",{class:"mt-1 text-xs text-center w-full truncate",title:r.name},ee(r.name),9,pnr)]),h("div",hnr,[h("span",{class:"text-xs font-medium mb-2 text-center",onClick:ie(i=>e.setBinding(r),["prevent"])},ee(r.name),9,mnr),h("div",gnr,[h("button",{onClick:ie(i=>e.showModelConfig(r),["prevent"]),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Configure Binding"},n[79]||(n[79]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)]),8,_nr)])])]))),128))])],544),[[gt,e.isBindingsMenuVisible]]),h("div",{onMouseenter:n[27]||(n[27]=(...r)=>e.showBindingsMenu&&e.showBindingsMenu(...r)),class:"bindings-hover-area"},[h("button",{onClick:n[26]||(n[26]=ie(r=>e.showModelConfig(),["prevent"])),class:"w-6 h-6"},[h("img",{src:e.currentBindingIcon,class:"w-6 h-6 rounded-full object-fill text-red-700 border-2 active:scale-90 hover:border-secondary hover:scale-110 hover:-translate-y-1 duration-200",title:e.currentBinding?e.currentBinding.name:"unknown"},null,8,Qnr)])],32)])],32)),e.loading?W("",!0):(N(),D("div",{key:3,class:"toolbar-button",onMouseleave:n[34]||(n[34]=(...r)=>e.hideModelsMenu&&e.hideModelsMenu(...r))},[h("div",vnr,[Y(h("div",{onMouseenter:n[31]||(n[31]=(...r)=>e.showModelsMenu&&e.showModelsMenu(...r)),class:"absolute m-0 p-0 z-10 top-full left-0 transform w-80 bg-white dark:bg-gray-900 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",ynr,[Y(h("input",{type:"text","onUpdate:modelValue":n[29]||(n[29]=r=>e.modelSearchQuery=r),placeholder:"Search models...",class:"w-full px-3 py-2 rounded-md border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"},null,512),[[fe,e.modelSearchQuery]])]),h("div",bnr,[(N(!0),D(Ae,null,Ge(e.filteredModels,(r,o)=>(N(),D("div",{key:o,class:"relative group/item flex flex-col items-center"},[h("div",Enr,[h("button",{onClick:ie(i=>e.setModel(r),["prevent"]),title:r.name,class:"w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-105 focus:outline-none"},[h("img",{src:r.icon?r.icon:ht(hr),onError:n[30]||(n[30]=(...i)=>e.personalityImgPlacehodler&&e.personalityImgPlacehodler(...i)),alt:r.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":r.name==e.model_name}])},null,42,Snr)],8,xnr),h("span",{class:"mt-1 text-xs text-center w-full truncate",title:r.name},ee(r.name),9,Lnr)]),h("div",Cnr,[h("span",{class:"text-xs font-medium mb-2 text-center",onClick:ie(i=>e.setModel(r),["prevent"])},ee(r.name),9,Anr),h("div",wnr,[h("button",{onClick:ie(i=>e.copyModelNameFrom(r.name),["prevent"]),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Copy Model Name"},n[80]||(n[80]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)]),8,Onr)])])]))),128))])],544),[[gt,e.isModelsMenuVisible]]),h("div",{onMouseenter:n[33]||(n[33]=(...r)=>e.showModelsMenu&&e.showModelsMenu(...r)),class:"models-hover-area"},[h("button",{onClick:n[32]||(n[32]=ie(r=>e.copyModelName(),["prevent"])),class:"w-6 h-6"},[h("img",{src:e.currentModelIcon,class:"w-6 h-6 rounded-full object-fill text-red-700 border-2 active:scale-90 hover:border-secondary hover:scale-110 hover:-translate-y-1 duration-400",title:e.currentModel?e.currentModel.name:"unknown"},null,8,Mnr)])],32)])],32)),e.loading?W("",!0):(N(),D("div",{key:4,class:"toolbar-button",onMouseleave:n[39]||(n[39]=(...r)=>e.hidePersonalitiesMenu&&e.hidePersonalitiesMenu(...r))},[h("div",Rnr,[Y(h("div",{onMouseenter:n[37]||(n[37]=(...r)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...r)),class:"absolute m-0 p-0 z-10 top-full left-0 transform w-80 bg-white dark:bg-gray-900 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none transition-all duration-300 ease-out mb-2"},[h("div",Nnr,[Y(h("input",{type:"text","onUpdate:modelValue":n[35]||(n[35]=r=>e.personalitySearchQuery=r),placeholder:"Search personalities...",class:"w-full px-3 py-2 rounded-md border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"},null,512),[[fe,e.personalitySearchQuery]])]),h("div",Dnr,[(N(!0),D(Ae,null,Ge(e.filteredPersonalities,(r,o)=>(N(),D("div",{key:o,class:"relative group/item flex flex-col items-center"},[h("div",knr,[h("button",{onClick:ie(i=>e.onPersonalitySelected(r),["prevent"]),title:r.name,class:"w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-105 focus:outline-none"},[h("img",{src:ht($rr)+r.avatar,onError:n[36]||(n[36]=(...i)=>e.personalityImgPlacehodler&&e.personalityImgPlacehodler(...i)),alt:r.name,class:Le(["w-full h-full object-cover",{"border-2 border-secondary":e.$store.state.active_personality_id==e.$store.state.personalities.indexOf(r.full_path)}])},null,42,Hnr)],8,Inr),h("span",{class:"mt-1 text-xs text-center w-full truncate",title:r.name},ee(r.name),9,Pnr)]),h("div",Vnr,[h("span",{class:"text-xs font-medium mb-2 text-center",onClick:ie(i=>e.onPersonalitySelected(r),["prevent"])},ee(r.name),9,$nr),h("div",Bnr,[h("button",{onClick:ie(i=>e.unmountPersonality(r),["prevent"]),class:"p-1 bg-red-500 rounded-full text-white hover:bg-red-600 focus:outline-none",title:"Unmount"},n[81]||(n[81]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]),8,Fnr),h("button",{onClick:ie(i=>e.remount_personality(r),["prevent"]),class:"p-1 bg-blue-500 rounded-full text-white hover:bg-blue-600 focus:outline-none",title:"Remount"},n[82]||(n[82]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1)]),8,Unr),h("button",{onClick:ie(i=>e.handleOnTalk(r),["prevent"]),class:"p-1 bg-green-500 rounded-full text-white hover:bg-green-600 focus:outline-none",title:"Talk"},n[83]||(n[83]=[h("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})],-1)]),8,Gnr)])])]))),128))])],544),[[gt,e.isPersonalitiesMenuVisible]]),h("div",qnr,[h("div",{onMouseenter:n[38]||(n[38]=(...r)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...r)),class:"personalities-hover-area"},[Z(yH,{ref:"mountedPers",onShowPersList:e.onShowPersList,onReady:e.onPersonalitiesReady},null,8,["onShowPersList","onReady"])],32)])])],32))])]),h("div",jnr,[h("form",{onSubmit:n[42]||(n[42]=ie((...r)=>e.handleSearch&&e.handleSearch(...r),["prevent"])),class:"relative"},[h("div",znr,[h("div",Ynr,[Y(h("input",{type:"search",id:"default-search",class:"block w-full h-8 px-8 text-sm border border-gray-300 rounded-md bg-bg-light focus:ring-1 focus:ring-secondary focus:border-secondary dark:bg-bg-dark dark:border-gray-600 dark:placeholder-gray-400 dark:focus:ring-secondary dark:focus:border-secondary transition-all duration-200",placeholder:"Search discussions...",title:"Filter discussions by title","onUpdate:modelValue":n[40]||(n[40]=r=>e.filterTitle=r),onKeyup:n[41]||(n[41]=ur((...r)=>e.handleSearch&&e.handleSearch(...r),["enter"]))},null,544),[[fe,e.filterTitle]]),n[84]||(n[84]=h("div",{class:"absolute left-2 top-1/2 -translate-y-1/2"},[h("i",{"data-feather":"search",class:"w-4 h-4 text-gray-400"})],-1)),n[85]||(n[85]=h("button",{type:"submit",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-600 hover:text-secondary rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 focus:ring-1 focus:ring-secondary transition-all duration-150 active:scale-98",title:"Search"},[h("i",{"data-feather":"arrow-right",class:"w-4 h-4"})],-1))])])],32)]),e.isCheckbox?(N(),D("div",Wnr,[h("div",Knr,[e.selectedDiscussions.length>0?(N(),D("p",Znr,"Selected: "+ee(e.selectedDiscussions.length),1)):W("",!0),e.selectedDiscussions.length>0?(N(),D("div",Xnr,[e.showConfirmation?W("",!0):(N(),D("button",{key:0,class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Remove selected",type:"button",onClick:n[43]||(n[43]=ie(r=>e.showConfirmation=!0,["stop"]))},n[86]||(n[86]=[h("i",{"data-feather":"trash"},null,-1)]))),e.showConfirmation?(N(),D("div",Jnr,[h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Confirm removal",type:"button",onClick:n[44]||(n[44]=ie((...r)=>e.deleteDiscussionMulti&&e.deleteDiscussionMulti(...r),["stop"]))},n[87]||(n[87]=[h("i",{"data-feather":"check"},null,-1)])),h("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Cancel removal",type:"button",onClick:n[45]||(n[45]=ie(r=>e.showConfirmation=!1,["stop"]))},n[88]||(n[88]=[h("i",{"data-feather":"x"},null,-1)]))])):W("",!0)])):W("",!0),h("div",err,[h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 rotate-90",title:"Export selected to a json file",type:"button",onClick:n[46]||(n[46]=ie((...r)=>e.exportDiscussionsAsJson&&e.exportDiscussionsAsJson(...r),["stop"]))},n[89]||(n[89]=[h("i",{"data-feather":"codepen"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 rotate-90",title:"Export selected to a markdown file",type:"button",onClick:n[47]||(n[47]=ie((...r)=>e.exportDiscussions&&e.exportDiscussions(...r),["stop"]))},n[90]||(n[90]=[h("i",{"data-feather":"folder"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90 rotate-90",title:"Export selected to a markdown file",type:"button",onClick:n[48]||(n[48]=ie((...r)=>e.exportDiscussionsAsMarkdown&&e.exportDiscussionsAsMarkdown(...r),["stop"]))},n[91]||(n[91]=[h("i",{"data-feather":"bookmark"},null,-1)])),h("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Select All",type:"button",onClick:n[49]||(n[49]=ie((...r)=>e.selectAllDiscussions&&e.selectAllDiscussions(...r),["stop"]))},n[92]||(n[92]=[h("i",{"data-feather":"list"},null,-1)]))])])])):W("",!0),h("div",{id:"leftPanel",class:"flex flex-col flex-grow overflow-y-scroll overflow-x-hidden custom-scrollbar",onDragover:n[50]||(n[50]=ie(r=>e.setDropZoneDiscussion(),["stop","prevent"]))},[h("div",trr,[h("div",{class:Le(["mx-0 flex flex-col flex-grow w-full",e.isDragOverDiscussion?"pointer-events-none":""])},[h("div",{id:"dis-list",class:Le([e.filterInProgress?"opacity-20 pointer-events-none":"","flex flex-col flex-grow w-full pb-80"])},[e.discussionsList.length>0?(N(),at(bi,{key:0,name:"discussionsList"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(e.discussionsList,(r,o)=>(N(),at(y_,{key:r.id,id:r.id,title:r.title,selected:e.currentDiscussion.id==r.id,loading:r.loading,isCheckbox:e.isCheckbox,checkBoxValue:r.checkBoxValue,openfolder_enabled:!0,onSelect:i=>e.selectDiscussion(r),onDelete:i=>e.deleteDiscussion(r.id),onOpenFolder:e.openFolder,onEditTitle:e.editTitle,onMakeTitle:e.makeTitle,onChecked:e.checkUncheckDiscussion},null,8,["id","title","selected","loading","isCheckbox","checkBoxValue","onSelect","onDelete","onOpenFolder","onEditTitle","onMakeTitle","onChecked"]))),128))]),_:1})):W("",!0),e.discussionsList.length<1?(N(),D("div",nrr,n[93]||(n[93]=[h("p",{class:"px-3"},"No discussions are found",-1)]))):W("",!0)],2)],2)])],32),h("div",rrr,[h("div",{class:"chat-bar text-center flex items-center",onClick:n[51]||(n[51]=(...r)=>e.showDatabaseSelector&&e.showDatabaseSelector(...r))},[Z(t7,null,{default:Se(()=>n[94]||(n[94]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"mr-2"},[h("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),h("path",{d:"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"}),h("path",{d:"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"})],-1)])),_:1}),h("p",orr,ee(e.formatted_database_name.replace("_"," ")),1)])])])):W("",!0)]),_:1}),e.isReady?(N(),D("div",irr,[h("div",{id:"messages-list",class:Le(["w-full z-0 flex flex-col flex-grow overflow-y-auto scrollbar",e.isDragOverChat?"pointer-events-none":""])},[h("div",srr,[e.discussionArr.length>0?(N(),at(bi,{key:0,name:"list"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(e.discussionArr,(r,o)=>(N(),at(iH,{key:r.id,message:r,id:"msg-"+r.id,ref_for:!0,ref:"msg-"+r.id,host:e.host,onCopy:e.copyToClipBoard,onDelete:e.deleteMessage,onRankUp:e.rankUpMessage,onRankDown:e.rankDownMessage,onUpdateMessage:e.updateMessage,onResendMessage:e.resendMessage,onContinueMessage:e.continueMessage,avatar:e.getAvatar(r.sender)},null,8,["message","id","host","onCopy","onDelete","onRankUp","onRankDown","onUpdateMessage","onResendMessage","onContinueMessage","avatar"]))),128)),e.discussionArr.length<2&&e.personality.prompts_list.length>0?(N(),D("div",arr,[n[99]||(n[99]=h("h2",{class:"text-2xl font-bold mb-6 text-gray-800 dark:text-gray-200"},"Prompt Examples",-1)),h("div",lrr,[h("div",crr,[(N(!0),D(Ae,null,Ge(e.personality.prompts_list,(r,o)=>(N(),D("div",{title:e.extractTitle(r),key:o,onClick:i=>e.handlePromptSelection(r),class:"flex-shrink-0 w-[300px] bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg p-6 cursor-pointer hover:shadow-xl transition-all duration-300 ease-in-out transform hover:scale-105 flex flex-col justify-between min-h-[220px] group"},[h("div",drr,[h("h3",{class:"font-bold text-lg text-gray-900 dark:text-gray-100 mb-2 truncate",title:e.extractTitle(r)},ee(e.extractTitle(r)),9,Trr),h("div",{title:r,class:"text-base text-gray-700 dark:text-gray-300 overflow-hidden line-clamp-4"},ee(e.getPromptContent(r)),9,frr)]),n[95]||(n[95]=h("div",{class:"mt-4 text-sm font-medium text-blue-600 dark:text-blue-400 opacity-0 group-hover:opacity-100 transition-opacity duration-300"}," Click to select ",-1))],8,urr))),128))])]),e.showPlaceholderModal?(N(),D("div",prr,[h("div",hrr,[n[98]||(n[98]=h("h3",{class:"text-lg font-semibold mb-4"},"Fill in the placeholders",-1)),h("div",mrr,[h("div",grr,[n[96]||(n[96]=h("h4",{class:"text-sm font-medium mb-2 text-gray-600 dark:text-gray-400"},"Live Preview:",-1)),h("div",_rr,[h("span",Qrr,ee(e.getPromptContent(e.previewPrompt)),1)])]),h("div",vrr,[h("div",yrr,[(N(!0),D(Ae,null,Ge(e.parsedPlaceholders,(r,o)=>(N(),D("div",{key:r.fullText,class:"flex flex-col"},[h("label",{for:"placeholder-"+o,class:"text-sm font-medium mb-1"},ee(r.label),9,brr),r.type==="text"?Y((N(),D("input",{key:0,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,type:"text",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",placeholder:r.label,onInput:n[52]||(n[52]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,Err)),[[fe,e.placeholderValues[o]]]):W("",!0),r.type==="int"?Y((N(),D("input",{key:1,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,type:"number",step:"1",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onInput:n[53]||(n[53]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,xrr)),[[fe,e.placeholderValues[o],void 0,{number:!0}]]):W("",!0),r.type==="float"?Y((N(),D("input",{key:2,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,type:"number",step:"0.01",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onInput:n[54]||(n[54]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,Srr)),[[fe,e.placeholderValues[o],void 0,{number:!0}]]):W("",!0),r.type==="multiline"?Y((N(),D("textarea",{key:3,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,rows:"4",class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onInput:n[55]||(n[55]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,Lrr)),[[fe,e.placeholderValues[o]]]):W("",!0),r.type==="code"?(N(),D("div",Crr,[h("div",Arr,ee(r.language||"Plain text"),1),Y(h("textarea",{id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,rows:"8",class:"w-full p-2 font-mono bg-gray-100 dark:bg-gray-900 border-t",onInput:n[56]||(n[56]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,wrr),[[fe,e.placeholderValues[o]]])])):W("",!0),r.type==="options"?Y((N(),D("select",{key:5,id:"placeholder-"+o,"onUpdate:modelValue":i=>e.placeholderValues[o]=i,class:"border rounded-md p-2 dark:bg-gray-700 dark:border-gray-600",onChange:n[57]||(n[57]=(...i)=>e.updatePreview&&e.updatePreview(...i))},[n[97]||(n[97]=h("option",{value:"",disabled:""},"Select an option",-1)),(N(!0),D(Ae,null,Ge(r.options,i=>(N(),D("option",{key:i,value:i},ee(i),9,Mrr))),128))],40,Orr)),[[$t,e.placeholderValues[o]]]):W("",!0)]))),128))])])]),h("div",Rrr,[h("button",{onClick:n[58]||(n[58]=(...r)=>e.cancelPlaceholders&&e.cancelPlaceholders(...r)),class:"px-4 py-2 text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200"}," Cancel "),h("button",{onClick:n[59]||(n[59]=(...r)=>e.applyPlaceholders&&e.applyPlaceholders(...r)),class:"px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600"}," Apply ")])])])):W("",!0)])):W("",!0)]),_:1})):W("",!0),e.currentDiscussion.id?W("",!0):(N(),at(aH,{key:1})),n[100]||(n[100]=h("div",null,[h("br"),h("br"),h("br"),h("br"),h("br"),h("br"),h("br")],-1))]),n[101]||(n[101]=h("div",{class:"absolute w-full bottom-0 bg-transparent p-10 pt-16 bg-gradient-to-t from-bg-light dark:from-bg-dark from-5% via-bg-light dark:via-bg-dark via-10% to-transparent to-100%"},null,-1))],2),e.currentDiscussion.id?(N(),D("div",Nrr,[Z(sH,{ref:"chatBox",loading:e.isGenerating,discussionList:e.discussionArr,"on-show-toast-message":e.showToastMessage,"on-talk":e.talk,onPersonalitySelected:e.recoverFiles,onMessageSentEvent:e.sendMsg,onSendCMDEvent:e.sendCmd,onAddWebLink:e.add_webpage,onCreateEmptyUserMessage:e.createEmptyUserMessage,onCreateEmptyAIMessage:e.createEmptyAIMessage,onStopGenerating:e.stopGenerating,onLoaded:e.recoverFiles},null,8,["loading","discussionList","on-show-toast-message","on-talk","onPersonalitySelected","onMessageSentEvent","onSendCMDEvent","onAddWebLink","onCreateEmptyUserMessage","onCreateEmptyAIMessage","onStopGenerating","onLoaded"])])):W("",!0)])):W("",!0),Z(lr,{name:"slide-left"},{default:Se(()=>[e.showRightPanel?(N(),D("div",Drr,[h("div",krr,null,512)])):W("",!0)]),_:1}),Z(v_,{reference:"database_selector",class:"z-20",show:e.database_selectorDialogVisible,choices:e.databases,"can-remove":!0,onChoiceRemoved:e.ondatabase_selectorDialogRemoved,onChoiceSelected:e.ondatabase_selectorDialogSelected,onCloseDialog:e.onclosedatabase_selectorDialog,onChoiceValidated:e.onvalidatedatabase_selectorChoice},null,8,["show","choices","onChoiceRemoved","onChoiceSelected","onCloseDialog","onChoiceValidated"]),Y(h("div",Irr,[Z(r_,{ref:"progress",progress:e.progress_value,class:"w-full h-4"},null,8,["progress"]),h("p",Hrr,ee(e.loading_infos)+" ...",1)],512),[[gt,e.progress_visibility]]),Z(QH,{ref:"personality_editor",config:e.currentPersonConfig,personality:e.selectedPersonality},null,8,["config","personality"]),h("div",Prr,[Z(vH,{ref:"news"},null,512)]),Z(rH,{ref:"skills_lib"},null,512),Z(bH)],64))}}),Urr=Je(Frr,[["__scopeId","data-v-c8d5cfb8"]]);let w6;const Grr=new Uint8Array(16);function qrr(){if(!w6&&(w6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!w6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return w6(Grr)}const Pn=[];for(let t=0;t<256;++t)Pn.push((t+256).toString(16).slice(1));function jrr(t,e=0){return Pn[t[e+0]]+Pn[t[e+1]]+Pn[t[e+2]]+Pn[t[e+3]]+"-"+Pn[t[e+4]]+Pn[t[e+5]]+"-"+Pn[t[e+6]]+Pn[t[e+7]]+"-"+Pn[t[e+8]]+Pn[t[e+9]]+"-"+Pn[t[e+10]]+Pn[t[e+11]]+Pn[t[e+12]]+Pn[t[e+13]]+Pn[t[e+14]]+Pn[t[e+15]]}const zrr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),tO={randomUUID:zrr};function Ai(t,e,n){if(tO.randomUUID&&!e&&!t)return tO.randomUUID();t=t||{};const r=t.random||(t.rng||qrr)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,jrr(r)}class g1{constructor(){this.listenerMap=new Map,this._listeners=[],this.proxyMap=new Map,this.proxies=[]}get listeners(){return this._listeners.concat(this.proxies.flatMap(e=>e()))}subscribe(e,n){this.listenerMap.has(e)&&(console.warn(`Already subscribed. Unsubscribing for you. Please check that you don't accidentally use the same token twice to register two different handlers for the same event/hook.`),this.unsubscribe(e)),this.listenerMap.set(e,n),this._listeners.push(n)}unsubscribe(e){if(this.listenerMap.has(e)){const n=this.listenerMap.get(e);this.listenerMap.delete(e);const r=this._listeners.indexOf(n);r>=0&&this._listeners.splice(r,1)}}registerProxy(e,n){this.proxyMap.has(e)&&(console.warn(`Already subscribed. Unsubscribing for you. -Please check that you don't accidentally use the same token twice to register two different proxies for the same event/hook.`),this.unregisterProxy(e)),this.proxyMap.set(e,n),this.proxies.push(n)}unregisterProxy(e){if(!this.proxyMap.has(e))return;const n=this.proxyMap.get(e);this.proxyMap.delete(e);const r=this.proxies.indexOf(n);r>=0&&this.proxies.splice(r,1)}}class jt extends g1{constructor(e){super(),this.entity=e}emit(e){this.listeners.forEach(n=>n(e,this.entity))}}class Zn extends g1{constructor(e){super(),this.entity=e}emit(e){let n=!1;const r=()=>[n=!0];for(const o of Array.from(this.listeners.values()))if(o(e,r,this.entity),n)return{prevented:!0};return{prevented:!1}}}class EH extends g1{execute(e,n){let r=e;for(const o of this.listeners)r=o(r,n);return r}}class Hr extends EH{constructor(e){super(),this.entity=e}execute(e){return super.execute(e,this.entity)}}class zrr extends g1{constructor(e){super(),this.entity=e}execute(e){const n=[];for(const r of this.listeners)n.push(r(e,this.entity));return n}}function Ro(){const t=Symbol(),e=new Map,n=new Set,r=(l,c)=>{c instanceof g1&&c.registerProxy(t,()=>{var u,d;return(d=(u=e.get(l))===null||u===void 0?void 0:u.listeners)!==null&&d!==void 0?d:[]})},o=l=>{const c=new g1;e.set(l,c),n.forEach(u=>r(l,u[l]))},i=l=>{n.add(l);for(const c of e.keys())r(c,l[c])},s=l=>{for(const c of e.keys())l[c]instanceof g1&&l[c].unregisterProxy(t);n.delete(l)},a=()=>{n.forEach(l=>s(l)),e.clear()};return new Proxy({},{get(l,c){return c==="addTarget"?i:c==="removeTarget"?s:c==="destroy"?a:typeof c!="string"||c.startsWith("_")?l[c]:(e.has(c)||o(c),e.get(c))}})}class nO{constructor(e,n){if(this.destructed=!1,this.events={destruct:new jt(this)},!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Ai(),this.from=e,this.to=n,this.from.connectionCount++,this.to.connectionCount++}destruct(){this.events.destruct.emit(),this.from.connectionCount--,this.to.connectionCount--,this.destructed=!0}}class xH{constructor(e,n){if(!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Ai(),this.from=e,this.to=n}}function Vh(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,e(r)]))}class SH{constructor(){this._title="",this.id=Ai(),this.events={loaded:new jt(this),beforeAddInput:new Zn(this),addInput:new jt(this),beforeRemoveInput:new Zn(this),removeInput:new jt(this),beforeAddOutput:new Zn(this),addOutput:new jt(this),beforeRemoveOutput:new Zn(this),removeOutput:new jt(this),beforeTitleChanged:new Zn(this),titleChanged:new jt(this),update:new jt(this)},this.hooks={beforeLoad:new Hr(this),afterSave:new Hr(this)}}get graph(){return this.graphInstance}get title(){return this._title}set title(e){this.events.beforeTitleChanged.emit(e).prevented||(this._title=e,this.events.titleChanged.emit(e))}addInput(e,n){return this.addInterface("input",e,n)}addOutput(e,n){return this.addInterface("output",e,n)}removeInput(e){return this.removeInterface("input",e)}removeOutput(e){return this.removeInterface("output",e)}registerGraph(e){this.graphInstance=e}load(e){this.hooks.beforeLoad.execute(e),this.id=e.id,this._title=e.title,Object.entries(e.inputs).forEach(([n,r])=>{this.inputs[n]&&(this.inputs[n].load(r),this.inputs[n].nodeId=this.id)}),Object.entries(e.outputs).forEach(([n,r])=>{this.outputs[n]&&(this.outputs[n].load(r),this.outputs[n].nodeId=this.id)}),this.events.loaded.emit(this)}save(){const e=Vh(this.inputs,o=>o.save()),n=Vh(this.outputs,o=>o.save()),r={type:this.type,id:this.id,title:this.title,inputs:e,outputs:n};return this.hooks.afterSave.execute(r)}onPlaced(){}onDestroy(){}initializeIo(){Object.entries(this.inputs).forEach(([e,n])=>this.initializeIntf("input",e,n)),Object.entries(this.outputs).forEach(([e,n])=>this.initializeIntf("output",e,n))}initializeIntf(e,n,r){r.isInput=e==="input",r.nodeId=this.id,r.events.setValue.subscribe(this,()=>this.events.update.emit({type:e,name:n,intf:r}))}addInterface(e,n,r){const o=e==="input"?this.events.beforeAddInput:this.events.beforeAddOutput,i=e==="input"?this.events.addInput:this.events.addOutput,s=e==="input"?this.inputs:this.outputs;return o.emit(r).prevented?!1:(s[n]=r,this.initializeIntf(e,n,r),i.emit(r),!0)}removeInterface(e,n){const r=e==="input"?this.events.beforeRemoveInput:this.events.beforeRemoveOutput,o=e==="input"?this.events.removeInput:this.events.removeOutput,i=e==="input"?this.inputs[n]:this.outputs[n];if(!i||r.emit(i).prevented)return!1;if(i.connectionCount>0)if(this.graphInstance)this.graphInstance.connections.filter(a=>a.from===i||a.to===i).forEach(a=>{this.graphInstance.removeConnection(a)});else throw new Error("Interface is connected, but no graph instance is specified. Unable to delete interface");return i.events.setValue.unsubscribe(this),e==="input"?delete this.inputs[n]:delete this.outputs[n],o.emit(i),!0}}class LH extends SH{load(e){super.load(e)}save(){return super.save()}}function L2(t){return class extends LH{constructor(){var e,n;super(),this.type=t.type,this.inputs={},this.outputs={},this.calculate=t.calculate?(r,o)=>t.calculate.call(this,r,o):void 0,this._title=(e=t.title)!==null&&e!==void 0?e:t.type,this.executeFactory("input",t.inputs),this.executeFactory("output",t.outputs),(n=t.onCreate)===null||n===void 0||n.call(this)}onPlaced(){var e;(e=t.onPlaced)===null||e===void 0||e.call(this)}onDestroy(){var e;(e=t.onDestroy)===null||e===void 0||e.call(this)}executeFactory(e,n){Object.keys(n||{}).forEach(r=>{const o=n[r]();e==="input"?this.addInput(r,o):this.addOutput(r,o)})}}}class Tn{set connectionCount(e){this._connectionCount=e,this.events.setConnectionCount.emit(e)}get connectionCount(){return this._connectionCount}set value(e){this.events.beforeSetValue.emit(e).prevented||(this._value=e,this.events.setValue.emit(e))}get value(){return this._value}constructor(e,n){this.id=Ai(),this.nodeId="",this.port=!0,this.hidden=!1,this.events={setConnectionCount:new jt(this),beforeSetValue:new Zn(this),setValue:new jt(this),updated:new jt(this)},this.hooks={load:new Hr(this),save:new Hr(this)},this._connectionCount=0,this.name=e,this._value=n}load(e){this.id=e.id,this.templateId=e.templateId,this.value=e.value,this.hooks.load.execute(e)}save(){const e={id:this.id,templateId:this.templateId,value:this.value};return this.hooks.save.execute(e)}setComponent(e){return this.component=e,this}setPort(e){return this.port=e,this}setHidden(e){return this.hidden=e,this}use(e,...n){return e(this,...n),this}}const Za="__baklava_SubgraphInputNode",Xa="__baklava_SubgraphOutputNode";class CH extends LH{constructor(){super(),this.graphInterfaceId=Ai()}onPlaced(){super.onPlaced(),this.initializeIo()}save(){return{...super.save(),graphInterfaceId:this.graphInterfaceId}}load(e){super.load(e),this.graphInterfaceId=e.graphInterfaceId}}class N_ extends CH{constructor(){super(...arguments),this.type=Za,this.inputs={name:new Tn("Name","Input")},this.outputs={placeholder:new Tn("Value",void 0)}}static isGraphInputNode(e){return e.type===Za}}class D_ extends CH{constructor(){super(...arguments),this.type=Xa,this.inputs={name:new Tn("Name","Output"),placeholder:new Tn("Value",void 0)},this.outputs={output:new Tn("Output",void 0).setHidden(!0)},this.calculate=({placeholder:e})=>({output:e})}static isGraphOutputNode(e){return e.type===Xa}}class _4{get nodes(){return this._nodes}get connections(){return this._connections}get loading(){return this._loading}get destroying(){return this._destroying}get inputs(){return this.nodes.filter(n=>n.type===Za).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.placeholder.id}))}get outputs(){return this.nodes.filter(n=>n.type===Xa).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Ai(),this.activeTransactions=0,this._nodes=[],this._connections=[],this._loading=!1,this._destroying=!1,this.events={beforeAddNode:new Zn(this),addNode:new jt(this),beforeRemoveNode:new Zn(this),removeNode:new jt(this),beforeAddConnection:new Zn(this),addConnection:new jt(this),checkConnection:new Zn(this),beforeRemoveConnection:new Zn(this),removeConnection:new jt(this)},this.hooks={save:new Hr(this),load:new Hr(this),checkConnection:new zrr(this)},this.nodeEvents=Ro(),this.nodeHooks=Ro(),this.connectionEvents=Ro(),this.editor=e,this.template=n,e.registerGraph(this)}addNode(e){if(!this.events.beforeAddNode.emit(e).prevented)return this.nodeEvents.addTarget(e.events),this.nodeHooks.addTarget(e.hooks),e.registerGraph(this),this._nodes.push(e),e=this.nodes.find(n=>n.id===e.id),e.onPlaced(),this.events.addNode.emit(e),e}removeNode(e){if(this.nodes.includes(e)){if(this.events.beforeRemoveNode.emit(e).prevented)return;const n=[...Object.values(e.inputs),...Object.values(e.outputs)];this.connections.filter(r=>n.includes(r.from)||n.includes(r.to)).forEach(r=>this.removeConnection(r)),this._nodes.splice(this.nodes.indexOf(e),1),this.events.removeNode.emit(e),e.onDestroy(),this.nodeEvents.removeTarget(e.events),this.nodeHooks.removeTarget(e.hooks)}}addConnection(e,n){const r=this.checkConnection(e,n);if(!r.connectionAllowed||this.events.beforeAddConnection.emit({from:e,to:n}).prevented)return;for(const i of r.connectionsInDanger){const s=this.connections.find(a=>a.id===i.id);s&&this.removeConnection(s)}const o=new nO(r.dummyConnection.from,r.dummyConnection.to);return this.internalAddConnection(o),o}removeConnection(e){if(this.connections.includes(e)){if(this.events.beforeRemoveConnection.emit(e).prevented)return;e.destruct(),this._connections.splice(this.connections.indexOf(e),1),this.events.removeConnection.emit(e),this.connectionEvents.removeTarget(e.events)}}checkConnection(e,n){if(!e||!n)return{connectionAllowed:!1};const r=this.findNodeById(e.nodeId),o=this.findNodeById(n.nodeId);if(r&&o&&r===o)return{connectionAllowed:!1};if(e.isInput&&!n.isInput){const a=e;e=n,n=a}if(e.isInput||!n.isInput)return{connectionAllowed:!1};if(this.connections.some(a=>a.from===e&&a.to===n))return{connectionAllowed:!1};if(this.events.checkConnection.emit({from:e,to:n}).prevented)return{connectionAllowed:!1};const i=this.hooks.checkConnection.execute({from:e,to:n});if(i.some(a=>!a.connectionAllowed))return{connectionAllowed:!1};const s=Array.from(new Set(i.flatMap(a=>a.connectionsInDanger)));return{connectionAllowed:!0,dummyConnection:new xH(e,n),connectionsInDanger:s}}findNodeInterface(e){for(const n of this.nodes){for(const r in n.inputs){const o=n.inputs[r];if(o.id===e)return o}for(const r in n.outputs){const o=n.outputs[r];if(o.id===e)return o}}}findNodeById(e){return this.nodes.find(n=>n.id===e)}load(e){try{this._loading=!0;const n=[];for(let r=this.connections.length-1;r>=0;r--)this.removeConnection(this.connections[r]);for(let r=this.nodes.length-1;r>=0;r--)this.removeNode(this.nodes[r]);this.id=e.id;for(const r of e.nodes){const o=this.editor.nodeTypes.get(r.type);if(!o){n.push(`Node type ${r.type} is not registered`);continue}const i=new o.type;this.addNode(i),i.load(r)}for(const r of e.connections){const o=this.findNodeInterface(r.from),i=this.findNodeInterface(r.to);if(o)if(i){const s=new nO(o,i);s.id=r.id,this.internalAddConnection(s)}else{n.push(`Could not find interface with id ${r.to}`);continue}else{n.push(`Could not find interface with id ${r.from}`);continue}}return this.hooks.load.execute(e),n}finally{this._loading=!1}}save(){const e={id:this.id,nodes:this.nodes.map(n=>n.save()),connections:this.connections.map(n=>({id:n.id,from:n.from.id,to:n.to.id})),inputs:this.inputs,outputs:this.outputs};return this.hooks.save.execute(e)}destroy(){this._destroying=!0;for(const e of this.nodes)this.removeNode(e);this.editor.unregisterGraph(this)}internalAddConnection(e){this.connectionEvents.addTarget(e.events),this._connections.push(e),this.events.addConnection.emit(e)}}const x3="__baklava_GraphNode-";function Ja(t){return x3+t.id}const Yrr=["component","connectionCount","events","hidden","hooks","id","isInput","name","nodeId","port","templateId","value"];function Wrr(t){return class extends SH{constructor(){super(...arguments),this.type=Ja(t),this.inputs={},this.outputs={},this.template=t,this.calculate=async(n,r)=>{var o;if(!this.subgraph)throw new Error(`GraphNode ${this.id}: calculate called without subgraph being initialized`);if(!r.engine||typeof r.engine!="object")throw new Error(`GraphNode ${this.id}: calculate called but no engine provided in context`);const i=r.engine.getInputValues(this.subgraph);for(const l of this.subgraph.inputs)i.set(l.nodeInterfaceId,n[l.id]);const s=await r.engine.runGraph(this.subgraph,i,r.globalValues),a={};for(const l of this.subgraph.outputs)a[l.id]=(o=s.get(l.nodeId))===null||o===void 0?void 0:o.get("output");return a._calculationResults=s,a}}get title(){return this._title}set title(n){this.template.name=n}load(n){if(!this.subgraph)throw new Error("Cannot load a graph node without a graph");if(!this.template)throw new Error("Unable to load graph node without graph template");this.subgraph.load(n.graphState),super.load(n)}save(){if(!this.subgraph)throw new Error("Cannot save a graph node without a graph");return{...super.save(),graphState:this.subgraph.save()}}onPlaced(){this.template.events.updated.subscribe(this,()=>this.initialize()),this.template.events.nameChanged.subscribe(this,n=>{this._title=n}),this.initialize()}onDestroy(){var n;this.template.events.updated.unsubscribe(this),this.template.events.nameChanged.unsubscribe(this),(n=this.subgraph)===null||n===void 0||n.destroy()}initialize(){this.subgraph&&this.subgraph.destroy(),this.subgraph=this.template.createGraph(),this._title=this.template.name,this.updateInterfaces(),this.events.update.emit(null)}updateInterfaces(){if(!this.subgraph)throw new Error("Trying to update interfaces without graph instance");for(const n of this.subgraph.inputs)n.id in this.inputs?this.inputs[n.id].name=n.name:this.addInput(n.id,this.createProxyInterface(n,!0));for(const n of Object.keys(this.inputs))this.subgraph.inputs.some(r=>r.id===n)||this.removeInput(n);for(const n of this.subgraph.outputs)n.id in this.outputs?this.outputs[n.id].name=n.name:this.addOutput(n.id,this.createProxyInterface(n,!1));for(const n of Object.keys(this.outputs))this.subgraph.outputs.some(r=>r.id===n)||this.removeOutput(n);this.addOutput("_calculationResults",new Tn("_calculationResults",void 0).setHidden(!0))}createProxyInterface(n,r){const o=new Tn(n.name,void 0);return new Proxy(o,{get:(i,s)=>{var a,l,c;if(Yrr.includes(s)||s in i||typeof s=="string"&&s.startsWith("__v_"))return Reflect.get(i,s);let u;if(r){const T=(a=this.subgraph)===null||a===void 0?void 0:a.nodes.find(g=>N_.isGraphInputNode(g)&&g.graphInterfaceId===n.id);u=T==null?void 0:T.outputs.placeholder.id}else{const T=(l=this.subgraph)===null||l===void 0?void 0:l.nodes.find(g=>D_.isGraphOutputNode(g)&&g.graphInterfaceId===n.id);u=T==null?void 0:T.inputs.placeholder.id}const d=(c=this.subgraph)===null||c===void 0?void 0:c.connections.find(T=>{var g;return u===((g=r?T.from:T.to)===null||g===void 0?void 0:g.id)}),f=r?d==null?void 0:d.to:d==null?void 0:d.from;if(f)return Reflect.get(f,s)}})}}}class i7{static fromGraph(e,n){return new i7(e.save(),n)}get name(){return this._name}set name(e){this._name=e,this.events.nameChanged.emit(e);const n=this.editor.nodeTypes.get(Ja(this));n&&(n.title=e)}get inputs(){return this.nodes.filter(n=>n.type===Za).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.placeholder.id}))}get outputs(){return this.nodes.filter(n=>n.type===Xa).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Ai(),this._name="Subgraph",this.events={nameChanged:new jt(this),updated:new jt(this)},this.hooks={beforeLoad:new Hr(this),afterSave:new Hr(this)},this.editor=n,e.id&&(this.id=e.id),e.name&&(this._name=e.name),this.update(e)}update(e){this.nodes=e.nodes,this.connections=e.connections,this.events.updated.emit()}save(){return{id:this.id,name:this.name,nodes:this.nodes,connections:this.connections,inputs:this.inputs,outputs:this.outputs}}createGraph(e){const n=new Map,r=f=>{const T=Ai();return n.set(f,T),T},o=f=>{const T=n.get(f);if(!T)throw new Error(`Unable to create graph from template: Could not map old id ${f} to new id`);return T},i=f=>Vh(f,T=>({id:r(T.id),templateId:T.id,value:T.value})),s=this.nodes.map(f=>({...f,id:r(f.id),inputs:i(f.inputs),outputs:i(f.outputs)})),a=this.connections.map(f=>({id:r(f.id),from:o(f.from),to:o(f.to)})),l=this.inputs.map(f=>({id:f.id,name:f.name,nodeId:o(f.nodeId),nodeInterfaceId:o(f.nodeInterfaceId)})),c=this.outputs.map(f=>({id:f.id,name:f.name,nodeId:o(f.nodeId),nodeInterfaceId:o(f.nodeInterfaceId)})),u={id:Ai(),nodes:s,connections:a,inputs:l,outputs:c};return e||(e=new _4(this.editor)),e.load(u).forEach(f=>console.warn(f)),e.template=this,e}}class Krr{get nodeTypes(){return this._nodeTypes}get graph(){return this._graph}get graphTemplates(){return this._graphTemplates}get graphs(){return this._graphs}get loading(){return this._loading}constructor(){this.events={loaded:new jt(this),beforeRegisterNodeType:new Zn(this),registerNodeType:new jt(this),beforeUnregisterNodeType:new Zn(this),unregisterNodeType:new jt(this),beforeAddGraphTemplate:new Zn(this),addGraphTemplate:new jt(this),beforeRemoveGraphTemplate:new Zn(this),removeGraphTemplate:new jt(this),registerGraph:new jt(this),unregisterGraph:new jt(this)},this.hooks={save:new Hr(this),load:new Hr(this)},this.graphTemplateEvents=Ro(),this.graphTemplateHooks=Ro(),this.graphEvents=Ro(),this.graphHooks=Ro(),this.nodeEvents=Ro(),this.nodeHooks=Ro(),this.connectionEvents=Ro(),this._graphs=new Set,this._nodeTypes=new Map,this._graph=new _4(this),this._graphTemplates=[],this._loading=!1,this.registerNodeType(N_),this.registerNodeType(D_)}registerNodeType(e,n){var r,o;if(this.events.beforeRegisterNodeType.emit({type:e,options:n}).prevented)return;const i=new e;this._nodeTypes.set(i.type,{type:e,category:(r=n==null?void 0:n.category)!==null&&r!==void 0?r:"default",title:(o=n==null?void 0:n.title)!==null&&o!==void 0?o:i.title}),this.events.registerNodeType.emit({type:e,options:n})}unregisterNodeType(e){const n=typeof e=="string"?e:new e().type;if(this.nodeTypes.has(n)){if(this.events.beforeUnregisterNodeType.emit(n).prevented)return;this._nodeTypes.delete(n),this.events.unregisterNodeType.emit(n)}}addGraphTemplate(e){if(this.events.beforeAddGraphTemplate.emit(e).prevented)return;this._graphTemplates.push(e),this.graphTemplateEvents.addTarget(e.events),this.graphTemplateHooks.addTarget(e.hooks);const n=Wrr(e);this.registerNodeType(n,{category:"Subgraphs",title:e.name}),this.events.addGraphTemplate.emit(e)}removeGraphTemplate(e){if(this.graphTemplates.includes(e)){if(this.events.beforeRemoveGraphTemplate.emit(e).prevented)return;const n=Ja(e);for(const r of[this.graph,...this.graphs.values()]){const o=r.nodes.filter(i=>i.type===n);for(const i of o)r.removeNode(i)}this.unregisterNodeType(n),this._graphTemplates.splice(this._graphTemplates.indexOf(e),1),this.graphTemplateEvents.removeTarget(e.events),this.graphTemplateHooks.removeTarget(e.hooks),this.events.removeGraphTemplate.emit(e)}}registerGraph(e){this.graphEvents.addTarget(e.events),this.graphHooks.addTarget(e.hooks),this.nodeEvents.addTarget(e.nodeEvents),this.nodeHooks.addTarget(e.nodeHooks),this.connectionEvents.addTarget(e.connectionEvents),this.events.registerGraph.emit(e),this._graphs.add(e)}unregisterGraph(e){this.graphEvents.removeTarget(e.events),this.graphHooks.removeTarget(e.hooks),this.nodeEvents.removeTarget(e.nodeEvents),this.nodeHooks.removeTarget(e.nodeHooks),this.connectionEvents.removeTarget(e.connectionEvents),this.events.unregisterGraph.emit(e),this._graphs.delete(e)}load(e){try{for(this._loading=!0,e=this.hooks.load.execute(e);this.graphTemplates.length>0;)this.removeGraphTemplate(this.graphTemplates[0]);e.graphTemplates.forEach(r=>{const o=new i7(r,this);this.addGraphTemplate(o)});const n=this._graph.load(e.graph);return this.events.loaded.emit(),n.forEach(r=>console.warn(r)),n}finally{this._loading=!1}}save(){const e={graph:this.graph.save(),graphTemplates:this.graphTemplates.map(n=>n.save())};return this.hooks.save.execute(e)}}function Zrr(t,e){const n=new Map;e.graphs.forEach(r=>{r.nodes.forEach(o=>n.set(o.id,o))}),t.forEach((r,o)=>{const i=n.get(o);i&&r.forEach((s,a)=>{const l=i.outputs[a];l&&(l.value=s)})})}class AH extends Error{constructor(){super("Cycle detected")}}function Xrr(t){return typeof t=="string"}function wH(t,e){const n=new Map,r=new Map,o=new Map;let i,s;if(t instanceof _4)i=t.nodes,s=t.connections;else{if(!e)throw new Error("Invalid argument value: expected array of connections");i=t,s=e}i.forEach(c=>{Object.values(c.inputs).forEach(u=>n.set(u.id,c.id)),Object.values(c.outputs).forEach(u=>n.set(u.id,c.id))}),i.forEach(c=>{const u=s.filter(f=>f.from&&n.get(f.from.id)===c.id),d=new Set(u.map(f=>n.get(f.to.id)).filter(Xrr));r.set(c.id,d),o.set(c,u)});const a=i.slice();s.forEach(c=>{const u=a.findIndex(d=>n.get(c.to.id)===d.id);u>=0&&a.splice(u,1)});const l=[];for(;a.length>0;){const c=a.pop();l.push(c);const u=r.get(c.id);for(;u.size>0;){const d=u.values().next().value;if(u.delete(d),Array.from(r.values()).every(f=>!f.has(d))){const f=i.find(T=>T.id===d);a.push(f)}}}if(Array.from(r.values()).some(c=>c.size>0))throw new AH;return{calculationOrder:l,connectionsFromNode:o,interfaceIdToNodeId:n}}function Jrr(t,e){try{return wH(t,e),!1}catch(n){if(n instanceof AH)return!0;throw n}}var pr;(function(t){t.Running="Running",t.Idle="Idle",t.Paused="Paused",t.Stopped="Stopped"})(pr||(pr={}));class eor{get status(){return this.isRunning?pr.Running:this.internalStatus}constructor(e){this.editor=e,this.events={beforeRun:new Zn(this),afterRun:new jt(this),statusChange:new jt(this),beforeNodeCalculation:new jt(this),afterNodeCalculation:new jt(this)},this.hooks={gatherCalculationData:new Hr(this),transferData:new EH},this.recalculateOrder=!0,this.internalStatus=pr.Stopped,this.isRunning=!1,this.editor.nodeEvents.update.subscribe(this,(n,r)=>{r.graph&&!r.graph.loading&&r.graph.activeTransactions===0&&this.internalOnChange(r,n??void 0)}),this.editor.graphEvents.addNode.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeNode.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.addConnection.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeConnection.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphHooks.checkConnection.subscribe(this,n=>this.checkConnection(n.from,n.to))}start(){this.internalStatus===pr.Stopped&&(this.internalStatus=pr.Idle,this.events.statusChange.emit(this.status))}pause(){this.internalStatus===pr.Idle&&(this.internalStatus=pr.Paused,this.events.statusChange.emit(this.status))}resume(){this.internalStatus===pr.Paused&&(this.internalStatus=pr.Idle,this.events.statusChange.emit(this.status))}stop(){(this.internalStatus===pr.Idle||this.internalStatus===pr.Paused)&&(this.internalStatus=pr.Stopped,this.events.statusChange.emit(this.status))}async runOnce(e,...n){if(this.events.beforeRun.emit(e).prevented)return null;try{this.isRunning=!0,this.events.statusChange.emit(this.status),this.recalculateOrder&&this.calculateOrder();const r=await this.execute(e,...n);return this.events.afterRun.emit(r),r}finally{this.isRunning=!1,this.events.statusChange.emit(this.status)}}checkConnection(e,n){if(e.templateId){const i=this.findInterfaceByTemplateId(this.editor.graph.nodes,e.templateId);if(!i)return{connectionAllowed:!0,connectionsInDanger:[]};e=i}if(n.templateId){const i=this.findInterfaceByTemplateId(this.editor.graph.nodes,n.templateId);if(!i)return{connectionAllowed:!0,connectionsInDanger:[]};n=i}const r=new xH(e,n);let o=this.editor.graph.connections.slice();return n.allowMultipleConnections||(o=o.filter(i=>i.to!==n)),o.push(r),Jrr(this.editor.graph.nodes,o)?{connectionAllowed:!1,connectionsInDanger:[]}:{connectionAllowed:!0,connectionsInDanger:n.allowMultipleConnections?[]:this.editor.graph.connections.filter(i=>i.to===n)}}calculateOrder(){this.recalculateOrder=!0}async calculateWithoutData(...e){const n=this.hooks.gatherCalculationData.execute(void 0);return await this.runOnce(n,...e)}validateNodeCalculationOutput(e,n){if(typeof n!="object")throw new Error(`Invalid calculation return value from node ${e.id} (type ${e.type})`);Object.keys(e.outputs).forEach(r=>{if(!(r in n))throw new Error(`Calculation return value from node ${e.id} (type ${e.type}) is missing key "${r}"`)})}internalOnChange(e,n){this.internalStatus===pr.Idle&&this.onChange(this.recalculateOrder,e,n)}findInterfaceByTemplateId(e,n){for(const r of e)for(const o of[...Object.values(r.inputs),...Object.values(r.outputs)])if(o.templateId===n)return o;return null}}class tor extends eor{constructor(e){super(e),this.order=new Map}start(){super.start(),this.recalculateOrder=!0,this.calculateWithoutData()}async runGraph(e,n,r){this.order.has(e.id)||this.order.set(e.id,wH(e));const{calculationOrder:o,connectionsFromNode:i}=this.order.get(e.id),s=new Map;for(const a of o){const l={};Object.entries(a.inputs).forEach(([u,d])=>{l[u]=this.getInterfaceValue(n,d.id)}),this.events.beforeNodeCalculation.emit({inputValues:l,node:a});let c;if(a.calculate)c=await a.calculate(l,{globalValues:r,engine:this});else{c={};for(const[u,d]of Object.entries(a.outputs))c[u]=this.getInterfaceValue(n,d.id)}this.validateNodeCalculationOutput(a,c),this.events.afterNodeCalculation.emit({outputValues:c,node:a}),s.set(a.id,new Map(Object.entries(c))),i.has(a)&&i.get(a).forEach(u=>{var d;const f=(d=Object.entries(a.outputs).find(([,g])=>g.id===u.from.id))===null||d===void 0?void 0:d[0];if(!f)throw new Error(`Could not find key for interface ${u.from.id} +Please check that you don't accidentally use the same token twice to register two different proxies for the same event/hook.`),this.unregisterProxy(e)),this.proxyMap.set(e,n),this.proxies.push(n)}unregisterProxy(e){if(!this.proxyMap.has(e))return;const n=this.proxyMap.get(e);this.proxyMap.delete(e);const r=this.proxies.indexOf(n);r>=0&&this.proxies.splice(r,1)}}class jt extends g1{constructor(e){super(),this.entity=e}emit(e){this.listeners.forEach(n=>n(e,this.entity))}}class Zn extends g1{constructor(e){super(),this.entity=e}emit(e){let n=!1;const r=()=>[n=!0];for(const o of Array.from(this.listeners.values()))if(o(e,r,this.entity),n)return{prevented:!0};return{prevented:!1}}}class EH extends g1{execute(e,n){let r=e;for(const o of this.listeners)r=o(r,n);return r}}class Hr extends EH{constructor(e){super(),this.entity=e}execute(e){return super.execute(e,this.entity)}}class Yrr extends g1{constructor(e){super(),this.entity=e}execute(e){const n=[];for(const r of this.listeners)n.push(r(e,this.entity));return n}}function Ro(){const t=Symbol(),e=new Map,n=new Set,r=(l,c)=>{c instanceof g1&&c.registerProxy(t,()=>{var u,d;return(d=(u=e.get(l))===null||u===void 0?void 0:u.listeners)!==null&&d!==void 0?d:[]})},o=l=>{const c=new g1;e.set(l,c),n.forEach(u=>r(l,u[l]))},i=l=>{n.add(l);for(const c of e.keys())r(c,l[c])},s=l=>{for(const c of e.keys())l[c]instanceof g1&&l[c].unregisterProxy(t);n.delete(l)},a=()=>{n.forEach(l=>s(l)),e.clear()};return new Proxy({},{get(l,c){return c==="addTarget"?i:c==="removeTarget"?s:c==="destroy"?a:typeof c!="string"||c.startsWith("_")?l[c]:(e.has(c)||o(c),e.get(c))}})}class nO{constructor(e,n){if(this.destructed=!1,this.events={destruct:new jt(this)},!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Ai(),this.from=e,this.to=n,this.from.connectionCount++,this.to.connectionCount++}destruct(){this.events.destruct.emit(),this.from.connectionCount--,this.to.connectionCount--,this.destructed=!0}}class xH{constructor(e,n){if(!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Ai(),this.from=e,this.to=n}}function Vh(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,e(r)]))}class SH{constructor(){this._title="",this.id=Ai(),this.events={loaded:new jt(this),beforeAddInput:new Zn(this),addInput:new jt(this),beforeRemoveInput:new Zn(this),removeInput:new jt(this),beforeAddOutput:new Zn(this),addOutput:new jt(this),beforeRemoveOutput:new Zn(this),removeOutput:new jt(this),beforeTitleChanged:new Zn(this),titleChanged:new jt(this),update:new jt(this)},this.hooks={beforeLoad:new Hr(this),afterSave:new Hr(this)}}get graph(){return this.graphInstance}get title(){return this._title}set title(e){this.events.beforeTitleChanged.emit(e).prevented||(this._title=e,this.events.titleChanged.emit(e))}addInput(e,n){return this.addInterface("input",e,n)}addOutput(e,n){return this.addInterface("output",e,n)}removeInput(e){return this.removeInterface("input",e)}removeOutput(e){return this.removeInterface("output",e)}registerGraph(e){this.graphInstance=e}load(e){this.hooks.beforeLoad.execute(e),this.id=e.id,this._title=e.title,Object.entries(e.inputs).forEach(([n,r])=>{this.inputs[n]&&(this.inputs[n].load(r),this.inputs[n].nodeId=this.id)}),Object.entries(e.outputs).forEach(([n,r])=>{this.outputs[n]&&(this.outputs[n].load(r),this.outputs[n].nodeId=this.id)}),this.events.loaded.emit(this)}save(){const e=Vh(this.inputs,o=>o.save()),n=Vh(this.outputs,o=>o.save()),r={type:this.type,id:this.id,title:this.title,inputs:e,outputs:n};return this.hooks.afterSave.execute(r)}onPlaced(){}onDestroy(){}initializeIo(){Object.entries(this.inputs).forEach(([e,n])=>this.initializeIntf("input",e,n)),Object.entries(this.outputs).forEach(([e,n])=>this.initializeIntf("output",e,n))}initializeIntf(e,n,r){r.isInput=e==="input",r.nodeId=this.id,r.events.setValue.subscribe(this,()=>this.events.update.emit({type:e,name:n,intf:r}))}addInterface(e,n,r){const o=e==="input"?this.events.beforeAddInput:this.events.beforeAddOutput,i=e==="input"?this.events.addInput:this.events.addOutput,s=e==="input"?this.inputs:this.outputs;return o.emit(r).prevented?!1:(s[n]=r,this.initializeIntf(e,n,r),i.emit(r),!0)}removeInterface(e,n){const r=e==="input"?this.events.beforeRemoveInput:this.events.beforeRemoveOutput,o=e==="input"?this.events.removeInput:this.events.removeOutput,i=e==="input"?this.inputs[n]:this.outputs[n];if(!i||r.emit(i).prevented)return!1;if(i.connectionCount>0)if(this.graphInstance)this.graphInstance.connections.filter(a=>a.from===i||a.to===i).forEach(a=>{this.graphInstance.removeConnection(a)});else throw new Error("Interface is connected, but no graph instance is specified. Unable to delete interface");return i.events.setValue.unsubscribe(this),e==="input"?delete this.inputs[n]:delete this.outputs[n],o.emit(i),!0}}class LH extends SH{load(e){super.load(e)}save(){return super.save()}}function L2(t){return class extends LH{constructor(){var e,n;super(),this.type=t.type,this.inputs={},this.outputs={},this.calculate=t.calculate?(r,o)=>t.calculate.call(this,r,o):void 0,this._title=(e=t.title)!==null&&e!==void 0?e:t.type,this.executeFactory("input",t.inputs),this.executeFactory("output",t.outputs),(n=t.onCreate)===null||n===void 0||n.call(this)}onPlaced(){var e;(e=t.onPlaced)===null||e===void 0||e.call(this)}onDestroy(){var e;(e=t.onDestroy)===null||e===void 0||e.call(this)}executeFactory(e,n){Object.keys(n||{}).forEach(r=>{const o=n[r]();e==="input"?this.addInput(r,o):this.addOutput(r,o)})}}}class Tn{set connectionCount(e){this._connectionCount=e,this.events.setConnectionCount.emit(e)}get connectionCount(){return this._connectionCount}set value(e){this.events.beforeSetValue.emit(e).prevented||(this._value=e,this.events.setValue.emit(e))}get value(){return this._value}constructor(e,n){this.id=Ai(),this.nodeId="",this.port=!0,this.hidden=!1,this.events={setConnectionCount:new jt(this),beforeSetValue:new Zn(this),setValue:new jt(this),updated:new jt(this)},this.hooks={load:new Hr(this),save:new Hr(this)},this._connectionCount=0,this.name=e,this._value=n}load(e){this.id=e.id,this.templateId=e.templateId,this.value=e.value,this.hooks.load.execute(e)}save(){const e={id:this.id,templateId:this.templateId,value:this.value};return this.hooks.save.execute(e)}setComponent(e){return this.component=e,this}setPort(e){return this.port=e,this}setHidden(e){return this.hidden=e,this}use(e,...n){return e(this,...n),this}}const Za="__baklava_SubgraphInputNode",Xa="__baklava_SubgraphOutputNode";class CH extends LH{constructor(){super(),this.graphInterfaceId=Ai()}onPlaced(){super.onPlaced(),this.initializeIo()}save(){return{...super.save(),graphInterfaceId:this.graphInterfaceId}}load(e){super.load(e),this.graphInterfaceId=e.graphInterfaceId}}class N_ extends CH{constructor(){super(...arguments),this.type=Za,this.inputs={name:new Tn("Name","Input")},this.outputs={placeholder:new Tn("Value",void 0)}}static isGraphInputNode(e){return e.type===Za}}class D_ extends CH{constructor(){super(...arguments),this.type=Xa,this.inputs={name:new Tn("Name","Output"),placeholder:new Tn("Value",void 0)},this.outputs={output:new Tn("Output",void 0).setHidden(!0)},this.calculate=({placeholder:e})=>({output:e})}static isGraphOutputNode(e){return e.type===Xa}}class _4{get nodes(){return this._nodes}get connections(){return this._connections}get loading(){return this._loading}get destroying(){return this._destroying}get inputs(){return this.nodes.filter(n=>n.type===Za).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.placeholder.id}))}get outputs(){return this.nodes.filter(n=>n.type===Xa).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Ai(),this.activeTransactions=0,this._nodes=[],this._connections=[],this._loading=!1,this._destroying=!1,this.events={beforeAddNode:new Zn(this),addNode:new jt(this),beforeRemoveNode:new Zn(this),removeNode:new jt(this),beforeAddConnection:new Zn(this),addConnection:new jt(this),checkConnection:new Zn(this),beforeRemoveConnection:new Zn(this),removeConnection:new jt(this)},this.hooks={save:new Hr(this),load:new Hr(this),checkConnection:new Yrr(this)},this.nodeEvents=Ro(),this.nodeHooks=Ro(),this.connectionEvents=Ro(),this.editor=e,this.template=n,e.registerGraph(this)}addNode(e){if(!this.events.beforeAddNode.emit(e).prevented)return this.nodeEvents.addTarget(e.events),this.nodeHooks.addTarget(e.hooks),e.registerGraph(this),this._nodes.push(e),e=this.nodes.find(n=>n.id===e.id),e.onPlaced(),this.events.addNode.emit(e),e}removeNode(e){if(this.nodes.includes(e)){if(this.events.beforeRemoveNode.emit(e).prevented)return;const n=[...Object.values(e.inputs),...Object.values(e.outputs)];this.connections.filter(r=>n.includes(r.from)||n.includes(r.to)).forEach(r=>this.removeConnection(r)),this._nodes.splice(this.nodes.indexOf(e),1),this.events.removeNode.emit(e),e.onDestroy(),this.nodeEvents.removeTarget(e.events),this.nodeHooks.removeTarget(e.hooks)}}addConnection(e,n){const r=this.checkConnection(e,n);if(!r.connectionAllowed||this.events.beforeAddConnection.emit({from:e,to:n}).prevented)return;for(const i of r.connectionsInDanger){const s=this.connections.find(a=>a.id===i.id);s&&this.removeConnection(s)}const o=new nO(r.dummyConnection.from,r.dummyConnection.to);return this.internalAddConnection(o),o}removeConnection(e){if(this.connections.includes(e)){if(this.events.beforeRemoveConnection.emit(e).prevented)return;e.destruct(),this._connections.splice(this.connections.indexOf(e),1),this.events.removeConnection.emit(e),this.connectionEvents.removeTarget(e.events)}}checkConnection(e,n){if(!e||!n)return{connectionAllowed:!1};const r=this.findNodeById(e.nodeId),o=this.findNodeById(n.nodeId);if(r&&o&&r===o)return{connectionAllowed:!1};if(e.isInput&&!n.isInput){const a=e;e=n,n=a}if(e.isInput||!n.isInput)return{connectionAllowed:!1};if(this.connections.some(a=>a.from===e&&a.to===n))return{connectionAllowed:!1};if(this.events.checkConnection.emit({from:e,to:n}).prevented)return{connectionAllowed:!1};const i=this.hooks.checkConnection.execute({from:e,to:n});if(i.some(a=>!a.connectionAllowed))return{connectionAllowed:!1};const s=Array.from(new Set(i.flatMap(a=>a.connectionsInDanger)));return{connectionAllowed:!0,dummyConnection:new xH(e,n),connectionsInDanger:s}}findNodeInterface(e){for(const n of this.nodes){for(const r in n.inputs){const o=n.inputs[r];if(o.id===e)return o}for(const r in n.outputs){const o=n.outputs[r];if(o.id===e)return o}}}findNodeById(e){return this.nodes.find(n=>n.id===e)}load(e){try{this._loading=!0;const n=[];for(let r=this.connections.length-1;r>=0;r--)this.removeConnection(this.connections[r]);for(let r=this.nodes.length-1;r>=0;r--)this.removeNode(this.nodes[r]);this.id=e.id;for(const r of e.nodes){const o=this.editor.nodeTypes.get(r.type);if(!o){n.push(`Node type ${r.type} is not registered`);continue}const i=new o.type;this.addNode(i),i.load(r)}for(const r of e.connections){const o=this.findNodeInterface(r.from),i=this.findNodeInterface(r.to);if(o)if(i){const s=new nO(o,i);s.id=r.id,this.internalAddConnection(s)}else{n.push(`Could not find interface with id ${r.to}`);continue}else{n.push(`Could not find interface with id ${r.from}`);continue}}return this.hooks.load.execute(e),n}finally{this._loading=!1}}save(){const e={id:this.id,nodes:this.nodes.map(n=>n.save()),connections:this.connections.map(n=>({id:n.id,from:n.from.id,to:n.to.id})),inputs:this.inputs,outputs:this.outputs};return this.hooks.save.execute(e)}destroy(){this._destroying=!0;for(const e of this.nodes)this.removeNode(e);this.editor.unregisterGraph(this)}internalAddConnection(e){this.connectionEvents.addTarget(e.events),this._connections.push(e),this.events.addConnection.emit(e)}}const x3="__baklava_GraphNode-";function Ja(t){return x3+t.id}const Wrr=["component","connectionCount","events","hidden","hooks","id","isInput","name","nodeId","port","templateId","value"];function Krr(t){return class extends SH{constructor(){super(...arguments),this.type=Ja(t),this.inputs={},this.outputs={},this.template=t,this.calculate=async(n,r)=>{var o;if(!this.subgraph)throw new Error(`GraphNode ${this.id}: calculate called without subgraph being initialized`);if(!r.engine||typeof r.engine!="object")throw new Error(`GraphNode ${this.id}: calculate called but no engine provided in context`);const i=r.engine.getInputValues(this.subgraph);for(const l of this.subgraph.inputs)i.set(l.nodeInterfaceId,n[l.id]);const s=await r.engine.runGraph(this.subgraph,i,r.globalValues),a={};for(const l of this.subgraph.outputs)a[l.id]=(o=s.get(l.nodeId))===null||o===void 0?void 0:o.get("output");return a._calculationResults=s,a}}get title(){return this._title}set title(n){this.template.name=n}load(n){if(!this.subgraph)throw new Error("Cannot load a graph node without a graph");if(!this.template)throw new Error("Unable to load graph node without graph template");this.subgraph.load(n.graphState),super.load(n)}save(){if(!this.subgraph)throw new Error("Cannot save a graph node without a graph");return{...super.save(),graphState:this.subgraph.save()}}onPlaced(){this.template.events.updated.subscribe(this,()=>this.initialize()),this.template.events.nameChanged.subscribe(this,n=>{this._title=n}),this.initialize()}onDestroy(){var n;this.template.events.updated.unsubscribe(this),this.template.events.nameChanged.unsubscribe(this),(n=this.subgraph)===null||n===void 0||n.destroy()}initialize(){this.subgraph&&this.subgraph.destroy(),this.subgraph=this.template.createGraph(),this._title=this.template.name,this.updateInterfaces(),this.events.update.emit(null)}updateInterfaces(){if(!this.subgraph)throw new Error("Trying to update interfaces without graph instance");for(const n of this.subgraph.inputs)n.id in this.inputs?this.inputs[n.id].name=n.name:this.addInput(n.id,this.createProxyInterface(n,!0));for(const n of Object.keys(this.inputs))this.subgraph.inputs.some(r=>r.id===n)||this.removeInput(n);for(const n of this.subgraph.outputs)n.id in this.outputs?this.outputs[n.id].name=n.name:this.addOutput(n.id,this.createProxyInterface(n,!1));for(const n of Object.keys(this.outputs))this.subgraph.outputs.some(r=>r.id===n)||this.removeOutput(n);this.addOutput("_calculationResults",new Tn("_calculationResults",void 0).setHidden(!0))}createProxyInterface(n,r){const o=new Tn(n.name,void 0);return new Proxy(o,{get:(i,s)=>{var a,l,c;if(Wrr.includes(s)||s in i||typeof s=="string"&&s.startsWith("__v_"))return Reflect.get(i,s);let u;if(r){const T=(a=this.subgraph)===null||a===void 0?void 0:a.nodes.find(g=>N_.isGraphInputNode(g)&&g.graphInterfaceId===n.id);u=T==null?void 0:T.outputs.placeholder.id}else{const T=(l=this.subgraph)===null||l===void 0?void 0:l.nodes.find(g=>D_.isGraphOutputNode(g)&&g.graphInterfaceId===n.id);u=T==null?void 0:T.inputs.placeholder.id}const d=(c=this.subgraph)===null||c===void 0?void 0:c.connections.find(T=>{var g;return u===((g=r?T.from:T.to)===null||g===void 0?void 0:g.id)}),f=r?d==null?void 0:d.to:d==null?void 0:d.from;if(f)return Reflect.get(f,s)}})}}}class i7{static fromGraph(e,n){return new i7(e.save(),n)}get name(){return this._name}set name(e){this._name=e,this.events.nameChanged.emit(e);const n=this.editor.nodeTypes.get(Ja(this));n&&(n.title=e)}get inputs(){return this.nodes.filter(n=>n.type===Za).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.placeholder.id}))}get outputs(){return this.nodes.filter(n=>n.type===Xa).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Ai(),this._name="Subgraph",this.events={nameChanged:new jt(this),updated:new jt(this)},this.hooks={beforeLoad:new Hr(this),afterSave:new Hr(this)},this.editor=n,e.id&&(this.id=e.id),e.name&&(this._name=e.name),this.update(e)}update(e){this.nodes=e.nodes,this.connections=e.connections,this.events.updated.emit()}save(){return{id:this.id,name:this.name,nodes:this.nodes,connections:this.connections,inputs:this.inputs,outputs:this.outputs}}createGraph(e){const n=new Map,r=f=>{const T=Ai();return n.set(f,T),T},o=f=>{const T=n.get(f);if(!T)throw new Error(`Unable to create graph from template: Could not map old id ${f} to new id`);return T},i=f=>Vh(f,T=>({id:r(T.id),templateId:T.id,value:T.value})),s=this.nodes.map(f=>({...f,id:r(f.id),inputs:i(f.inputs),outputs:i(f.outputs)})),a=this.connections.map(f=>({id:r(f.id),from:o(f.from),to:o(f.to)})),l=this.inputs.map(f=>({id:f.id,name:f.name,nodeId:o(f.nodeId),nodeInterfaceId:o(f.nodeInterfaceId)})),c=this.outputs.map(f=>({id:f.id,name:f.name,nodeId:o(f.nodeId),nodeInterfaceId:o(f.nodeInterfaceId)})),u={id:Ai(),nodes:s,connections:a,inputs:l,outputs:c};return e||(e=new _4(this.editor)),e.load(u).forEach(f=>console.warn(f)),e.template=this,e}}class Zrr{get nodeTypes(){return this._nodeTypes}get graph(){return this._graph}get graphTemplates(){return this._graphTemplates}get graphs(){return this._graphs}get loading(){return this._loading}constructor(){this.events={loaded:new jt(this),beforeRegisterNodeType:new Zn(this),registerNodeType:new jt(this),beforeUnregisterNodeType:new Zn(this),unregisterNodeType:new jt(this),beforeAddGraphTemplate:new Zn(this),addGraphTemplate:new jt(this),beforeRemoveGraphTemplate:new Zn(this),removeGraphTemplate:new jt(this),registerGraph:new jt(this),unregisterGraph:new jt(this)},this.hooks={save:new Hr(this),load:new Hr(this)},this.graphTemplateEvents=Ro(),this.graphTemplateHooks=Ro(),this.graphEvents=Ro(),this.graphHooks=Ro(),this.nodeEvents=Ro(),this.nodeHooks=Ro(),this.connectionEvents=Ro(),this._graphs=new Set,this._nodeTypes=new Map,this._graph=new _4(this),this._graphTemplates=[],this._loading=!1,this.registerNodeType(N_),this.registerNodeType(D_)}registerNodeType(e,n){var r,o;if(this.events.beforeRegisterNodeType.emit({type:e,options:n}).prevented)return;const i=new e;this._nodeTypes.set(i.type,{type:e,category:(r=n==null?void 0:n.category)!==null&&r!==void 0?r:"default",title:(o=n==null?void 0:n.title)!==null&&o!==void 0?o:i.title}),this.events.registerNodeType.emit({type:e,options:n})}unregisterNodeType(e){const n=typeof e=="string"?e:new e().type;if(this.nodeTypes.has(n)){if(this.events.beforeUnregisterNodeType.emit(n).prevented)return;this._nodeTypes.delete(n),this.events.unregisterNodeType.emit(n)}}addGraphTemplate(e){if(this.events.beforeAddGraphTemplate.emit(e).prevented)return;this._graphTemplates.push(e),this.graphTemplateEvents.addTarget(e.events),this.graphTemplateHooks.addTarget(e.hooks);const n=Krr(e);this.registerNodeType(n,{category:"Subgraphs",title:e.name}),this.events.addGraphTemplate.emit(e)}removeGraphTemplate(e){if(this.graphTemplates.includes(e)){if(this.events.beforeRemoveGraphTemplate.emit(e).prevented)return;const n=Ja(e);for(const r of[this.graph,...this.graphs.values()]){const o=r.nodes.filter(i=>i.type===n);for(const i of o)r.removeNode(i)}this.unregisterNodeType(n),this._graphTemplates.splice(this._graphTemplates.indexOf(e),1),this.graphTemplateEvents.removeTarget(e.events),this.graphTemplateHooks.removeTarget(e.hooks),this.events.removeGraphTemplate.emit(e)}}registerGraph(e){this.graphEvents.addTarget(e.events),this.graphHooks.addTarget(e.hooks),this.nodeEvents.addTarget(e.nodeEvents),this.nodeHooks.addTarget(e.nodeHooks),this.connectionEvents.addTarget(e.connectionEvents),this.events.registerGraph.emit(e),this._graphs.add(e)}unregisterGraph(e){this.graphEvents.removeTarget(e.events),this.graphHooks.removeTarget(e.hooks),this.nodeEvents.removeTarget(e.nodeEvents),this.nodeHooks.removeTarget(e.nodeHooks),this.connectionEvents.removeTarget(e.connectionEvents),this.events.unregisterGraph.emit(e),this._graphs.delete(e)}load(e){try{for(this._loading=!0,e=this.hooks.load.execute(e);this.graphTemplates.length>0;)this.removeGraphTemplate(this.graphTemplates[0]);e.graphTemplates.forEach(r=>{const o=new i7(r,this);this.addGraphTemplate(o)});const n=this._graph.load(e.graph);return this.events.loaded.emit(),n.forEach(r=>console.warn(r)),n}finally{this._loading=!1}}save(){const e={graph:this.graph.save(),graphTemplates:this.graphTemplates.map(n=>n.save())};return this.hooks.save.execute(e)}}function Xrr(t,e){const n=new Map;e.graphs.forEach(r=>{r.nodes.forEach(o=>n.set(o.id,o))}),t.forEach((r,o)=>{const i=n.get(o);i&&r.forEach((s,a)=>{const l=i.outputs[a];l&&(l.value=s)})})}class AH extends Error{constructor(){super("Cycle detected")}}function Jrr(t){return typeof t=="string"}function wH(t,e){const n=new Map,r=new Map,o=new Map;let i,s;if(t instanceof _4)i=t.nodes,s=t.connections;else{if(!e)throw new Error("Invalid argument value: expected array of connections");i=t,s=e}i.forEach(c=>{Object.values(c.inputs).forEach(u=>n.set(u.id,c.id)),Object.values(c.outputs).forEach(u=>n.set(u.id,c.id))}),i.forEach(c=>{const u=s.filter(f=>f.from&&n.get(f.from.id)===c.id),d=new Set(u.map(f=>n.get(f.to.id)).filter(Jrr));r.set(c.id,d),o.set(c,u)});const a=i.slice();s.forEach(c=>{const u=a.findIndex(d=>n.get(c.to.id)===d.id);u>=0&&a.splice(u,1)});const l=[];for(;a.length>0;){const c=a.pop();l.push(c);const u=r.get(c.id);for(;u.size>0;){const d=u.values().next().value;if(u.delete(d),Array.from(r.values()).every(f=>!f.has(d))){const f=i.find(T=>T.id===d);a.push(f)}}}if(Array.from(r.values()).some(c=>c.size>0))throw new AH;return{calculationOrder:l,connectionsFromNode:o,interfaceIdToNodeId:n}}function eor(t,e){try{return wH(t,e),!1}catch(n){if(n instanceof AH)return!0;throw n}}var pr;(function(t){t.Running="Running",t.Idle="Idle",t.Paused="Paused",t.Stopped="Stopped"})(pr||(pr={}));class tor{get status(){return this.isRunning?pr.Running:this.internalStatus}constructor(e){this.editor=e,this.events={beforeRun:new Zn(this),afterRun:new jt(this),statusChange:new jt(this),beforeNodeCalculation:new jt(this),afterNodeCalculation:new jt(this)},this.hooks={gatherCalculationData:new Hr(this),transferData:new EH},this.recalculateOrder=!0,this.internalStatus=pr.Stopped,this.isRunning=!1,this.editor.nodeEvents.update.subscribe(this,(n,r)=>{r.graph&&!r.graph.loading&&r.graph.activeTransactions===0&&this.internalOnChange(r,n??void 0)}),this.editor.graphEvents.addNode.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeNode.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.addConnection.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeConnection.subscribe(this,(n,r)=>{this.recalculateOrder=!0,!r.loading&&r.activeTransactions===0&&this.internalOnChange()}),this.editor.graphHooks.checkConnection.subscribe(this,n=>this.checkConnection(n.from,n.to))}start(){this.internalStatus===pr.Stopped&&(this.internalStatus=pr.Idle,this.events.statusChange.emit(this.status))}pause(){this.internalStatus===pr.Idle&&(this.internalStatus=pr.Paused,this.events.statusChange.emit(this.status))}resume(){this.internalStatus===pr.Paused&&(this.internalStatus=pr.Idle,this.events.statusChange.emit(this.status))}stop(){(this.internalStatus===pr.Idle||this.internalStatus===pr.Paused)&&(this.internalStatus=pr.Stopped,this.events.statusChange.emit(this.status))}async runOnce(e,...n){if(this.events.beforeRun.emit(e).prevented)return null;try{this.isRunning=!0,this.events.statusChange.emit(this.status),this.recalculateOrder&&this.calculateOrder();const r=await this.execute(e,...n);return this.events.afterRun.emit(r),r}finally{this.isRunning=!1,this.events.statusChange.emit(this.status)}}checkConnection(e,n){if(e.templateId){const i=this.findInterfaceByTemplateId(this.editor.graph.nodes,e.templateId);if(!i)return{connectionAllowed:!0,connectionsInDanger:[]};e=i}if(n.templateId){const i=this.findInterfaceByTemplateId(this.editor.graph.nodes,n.templateId);if(!i)return{connectionAllowed:!0,connectionsInDanger:[]};n=i}const r=new xH(e,n);let o=this.editor.graph.connections.slice();return n.allowMultipleConnections||(o=o.filter(i=>i.to!==n)),o.push(r),eor(this.editor.graph.nodes,o)?{connectionAllowed:!1,connectionsInDanger:[]}:{connectionAllowed:!0,connectionsInDanger:n.allowMultipleConnections?[]:this.editor.graph.connections.filter(i=>i.to===n)}}calculateOrder(){this.recalculateOrder=!0}async calculateWithoutData(...e){const n=this.hooks.gatherCalculationData.execute(void 0);return await this.runOnce(n,...e)}validateNodeCalculationOutput(e,n){if(typeof n!="object")throw new Error(`Invalid calculation return value from node ${e.id} (type ${e.type})`);Object.keys(e.outputs).forEach(r=>{if(!(r in n))throw new Error(`Calculation return value from node ${e.id} (type ${e.type}) is missing key "${r}"`)})}internalOnChange(e,n){this.internalStatus===pr.Idle&&this.onChange(this.recalculateOrder,e,n)}findInterfaceByTemplateId(e,n){for(const r of e)for(const o of[...Object.values(r.inputs),...Object.values(r.outputs)])if(o.templateId===n)return o;return null}}class nor extends tor{constructor(e){super(e),this.order=new Map}start(){super.start(),this.recalculateOrder=!0,this.calculateWithoutData()}async runGraph(e,n,r){this.order.has(e.id)||this.order.set(e.id,wH(e));const{calculationOrder:o,connectionsFromNode:i}=this.order.get(e.id),s=new Map;for(const a of o){const l={};Object.entries(a.inputs).forEach(([u,d])=>{l[u]=this.getInterfaceValue(n,d.id)}),this.events.beforeNodeCalculation.emit({inputValues:l,node:a});let c;if(a.calculate)c=await a.calculate(l,{globalValues:r,engine:this});else{c={};for(const[u,d]of Object.entries(a.outputs))c[u]=this.getInterfaceValue(n,d.id)}this.validateNodeCalculationOutput(a,c),this.events.afterNodeCalculation.emit({outputValues:c,node:a}),s.set(a.id,new Map(Object.entries(c))),i.has(a)&&i.get(a).forEach(u=>{var d;const f=(d=Object.entries(a.outputs).find(([,g])=>g.id===u.from.id))===null||d===void 0?void 0:d[0];if(!f)throw new Error(`Could not find key for interface ${u.from.id} This is likely a Baklava internal issue. Please report it on GitHub.`);const T=this.hooks.transferData.execute(c[f],u);u.to.allowMultipleConnections?n.has(u.to.id)?n.get(u.to.id).push(T):n.set(u.to.id,[T]):n.set(u.to.id,T)})}return s}async execute(e){this.recalculateOrder&&(this.order.clear(),this.recalculateOrder=!1);const n=this.getInputValues(this.editor.graph);return await this.runGraph(this.editor.graph,n,e)}getInputValues(e){const n=new Map;for(const r of e.nodes)Object.values(r.inputs).forEach(o=>{o.connectionCount===0&&n.set(o.id,o.value)}),r.calculate||Object.values(r.outputs).forEach(o=>{n.set(o.id,o.value)});return n}onChange(e){this.recalculateOrder=e||this.recalculateOrder,this.calculateWithoutData()}getInterfaceValue(e,n){if(!e.has(n))throw new Error(`Could not find value for interface ${n} -This is likely a Baklava internal issue. Please report it on GitHub.`);return e.get(n)}}const nor=["INPUT","TEXTAREA","SELECT"];function OH(t){return nor.includes(t.tagName)}let $h=null;function ror(t){$h=t}function Pr(){if(!$h)throw new Error("providePlugin() must be called before usePlugin()");return{viewModel:$h}}function oo(){const{viewModel:t}=Pr();return{graph:K6(t.value,"displayedGraph"),switchGraph:t.value.switchGraph}}function MH(t){const{graph:e}=oo(),n=ot(null),r=ot(null);return{dragging:Ze(()=>!!n.value),onPointerDown:l=>{n.value={x:l.pageX,y:l.pageY},r.value={x:t.value.x,y:t.value.y}},onPointerMove:l=>{if(n.value){const c=l.pageX-n.value.x,u=l.pageY-n.value.y;t.value.x=r.value.x+c/e.value.scaling,t.value.y=r.value.y+u/e.value.scaling}},onPointerUp:()=>{n.value=null,r.value=null}}}function RH(t,e,n){if(!e.template)return!1;if(Ja(e.template)===n)return!0;const r=t.graphTemplates.find(i=>Ja(i)===n);return r?r.nodes.filter(i=>i.type.startsWith(x3)).some(i=>RH(t,e,i.type)):!1}function NH(t){return Ze(()=>{const e=Array.from(t.value.editor.nodeTypes.entries()),n=new Set(e.map(([,o])=>o.category)),r=[];for(const o of n.values()){let i=e.filter(([,s])=>s.category===o);t.value.displayedGraph.template?i=i.filter(([s])=>!RH(t.value.editor,t.value.displayedGraph,s)):i=i.filter(([s])=>![Za,Xa].includes(s)),i.length>0&&r.push({name:o,nodeTypes:Object.fromEntries(i)})}return r.sort((o,i)=>o.name==="default"?-1:i.name==="default"||o.name>i.name?1:-1),r})}function DH(){const{graph:t}=oo();return{transform:(n,r)=>{const o=n/t.value.scaling-t.value.panning.x,i=r/t.value.scaling-t.value.panning.y;return[o,i]}}}function oor(){const{graph:t}=oo();let e=[],n=-1,r={x:0,y:0};const o=Ze(()=>t.value.panning),i=MH(o),s=Ze(()=>({"transform-origin":"0 0",transform:`scale(${t.value.scaling}) translate(${t.value.panning.x}px, ${t.value.panning.y}px)`})),a=(T,g,m)=>{const _=[T/t.value.scaling-t.value.panning.x,g/t.value.scaling-t.value.panning.y],Q=[T/m-t.value.panning.x,g/m-t.value.panning.y],v=[Q[0]-_[0],Q[1]-_[1]];t.value.panning.x+=v[0],t.value.panning.y+=v[1],t.value.scaling=m},l=T=>{T.preventDefault();let g=T.deltaY;T.deltaMode===1&&(g*=32);const m=t.value.scaling*(1-g/3e3);a(T.offsetX,T.offsetY,m)},c=()=>({ax:e[0].clientX,ay:e[0].clientY,bx:e[1].clientX,by:e[1].clientY});return{styles:s,...i,onPointerDown:T=>{if(e.push(T),i.onPointerDown(T),e.length===2){const{ax:g,ay:m,bx:_,by:Q}=c();r={x:g+(_-g)/2,y:m+(Q-m)/2}}},onPointerMove:T=>{for(let g=0;g0){const E=t.value.scaling*(1+(b-n)/500);a(r.x,r.y,E)}n=b}else i.onPointerMove(T)},onPointerUp:T=>{e=e.filter(g=>g.pointerId!==T.pointerId),n=-1,i.onPointerUp()},onMouseWheel:l}}var qr=(t=>(t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.FORBIDDEN=2]="FORBIDDEN",t))(qr||{});const kH=Symbol();function ior(){const{graph:t}=oo(),e=ot(null),n=ot(null),r=a=>{e.value&&(e.value.mx=a.offsetX/t.value.scaling-t.value.panning.x,e.value.my=a.offsetY/t.value.scaling-t.value.panning.y)},o=()=>{if(n.value){if(e.value)return;const a=t.value.connections.find(l=>l.to===n.value);n.value.isInput&&a?(e.value={status:qr.NONE,from:a.from},t.value.removeConnection(a)):e.value={status:qr.NONE,from:n.value},e.value.mx=void 0,e.value.my=void 0}},i=()=>{if(e.value&&n.value){if(e.value.from===n.value)return;t.value.addConnection(e.value.from,e.value.to)}e.value=null},s=a=>{if(n.value=a??null,a&&e.value){e.value.to=a;const l=t.value.checkConnection(e.value.from,e.value.to);if(e.value.status=l.connectionAllowed?qr.ALLOWED:qr.FORBIDDEN,l.connectionAllowed){const c=l.connectionsInDanger.map(u=>u.id);t.value.connections.forEach(u=>{c.includes(u.id)&&(u.isInDanger=!0)})}}else!a&&e.value&&(e.value.to=void 0,e.value.status=qr.NONE,t.value.connections.forEach(l=>{l.isInDanger=!1}))};return Sa(kH,{temporaryConnection:e,hoveredOver:s}),{temporaryConnection:e,onMouseMove:r,onMouseDown:o,onMouseUp:i,hoveredOver:s}}function sor(t){const e=ot(!1),n=ot(0),r=ot(0),o=NH(t),{transform:i}=DH(),s=Ze(()=>{let u=[];const d={};for(const T of o.value){const g=Object.entries(T.nodeTypes).map(([m,_])=>({label:_.title,value:"addNode:"+m}));T.name==="default"?u=g:d[T.name]=g}const f=[...Object.entries(d).map(([T,g])=>({label:T,submenu:g}))];return f.length>0&&u.length>0&&f.push({isDivider:!0}),f.push(...u),f}),a=Ze(()=>t.value.settings.contextMenu.additionalItems.length===0?s.value:[{label:"Add node",submenu:s.value},...t.value.settings.contextMenu.additionalItems.map(u=>"isDivider"in u||"submenu"in u?u:{label:u.label,value:"command:"+u.command,disabled:!t.value.commandHandler.canExecuteCommand(u.command)})]);function l(u){const d=u.target;if(!(d instanceof Element)||OH(d))return;u.preventDefault(),e.value=!0;const f=d.getBoundingClientRect(),g=d.closest(".baklava-editor").getBoundingClientRect();n.value=f.x+u.offsetX-g.x,r.value=f.y+u.offsetY-g.y}function c(u){if(u.startsWith("addNode:")){const d=u.substring(8),f=t.value.editor.nodeTypes.get(d);if(!f)return;const T=cr(new f.type);t.value.displayedGraph.addNode(T);const[g,m]=i(n.value,r.value);T.position.x=g,T.position.y=m}else if(u.startsWith("command:")){const d=u.substring(8);t.value.commandHandler.canExecuteCommand(d)&&t.value.commandHandler.executeCommand(d)}}return{show:e,x:n,y:r,items:a,open:l,onClick:c}}const j6="START_SELECTION_BOX";function aor(t){const{viewModel:e}=Pr(),{graph:n}=oo(),r=Ze(()=>n.value.nodes),o=ot(!1),i=ot(!1),s=ot([0,0]),a=ot([0,0]);Bn(e,()=>{e.value.commandHandler.hasCommand(j6)||(e.value.commandHandler.registerCommand(j6,{canExecute:()=>!0,execute(){o.value=!0}}),e.value.commandHandler.registerHotkey(["b"],j6))},{immediate:!0});function l(Q){return[Q.clientX-t.value.getBoundingClientRect().left,Q.clientY-t.value.getBoundingClientRect().top]}function c(Q){return o.value?(i.value=!0,o.value=!1,s.value=l(Q),a.value=l(Q),document.addEventListener("pointermove",u),document.addEventListener("pointerup",d),!0):!1}function u(Q){s.value=l(Q)}function d(Q){document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",d),s.value=l(Q),i.value=!1;const v=f();for(const y of v)e.value.displayedGraph.selectedNodes.push(y)}function f(){const Q=T(),y=document.querySelector(".baklava-editor").getBoundingClientRect();return r.value.filter(b=>{const E=g(b,y);return m(Q,E)})}function T(){return{left:Math.min(s.value[0],a.value[0]),top:Math.min(s.value[1],a.value[1]),right:Math.max(s.value[0],a.value[0]),bottom:Math.max(s.value[1],a.value[1])}}function g(Q,v){const y=document.getElementById(Q.id),b=y?y.getBoundingClientRect():{x:0,y:0,width:0,height:0},E=b.x-v.left,S=b.y-v.top;return{left:E,top:S,right:E+b.width,bottom:S+b.height}}function m(Q,v){return Q.leftv.left&&Q.topv.top}function _(){return{width:Math.abs(a.value[0]-s.value[0])+"px",height:Math.abs(a.value[1]-s.value[1])+"px",left:(a.value[0]>s.value[0]?s.value[0]:a.value[0])+"px",top:(a.value[1]>s.value[1]?s.value[1]:a.value[1])+"px"}}return cr({startSelection:o,isSelecting:i,start:s,end:a,onPointerDown:c,getStyles:_})}const lor=xn({setup(){const{viewModel:t}=Pr(),{graph:e}=oo();return{styles:Ze(()=>{const r=t.value.settings.background,o=e.value.panning.x*e.value.scaling,i=e.value.panning.y*e.value.scaling,s=e.value.scaling*r.gridSize,a=s/r.gridDivision,l=`${s}px ${s}px, ${s}px ${s}px`,c=e.value.scaling>r.subGridVisibleThreshold?`, ${a}px ${a}px, ${a}px ${a}px`:"";return{backgroundPosition:`left ${o}px top ${i}px`,backgroundSize:`${l} ${c}`}})}}}),gn=(t,e)=>{const n=t.__vccOpts||t;for(const[r,o]of e)n[r]=o;return n};function cor(t,e,n,r,o,i){return N(),D("div",{class:"background",style:zt(t.styles)},null,4)}const uor=gn(lor,[["render",cor]]);function dor(t){return bO()?(OP(t),!0):!1}function k_(t){return typeof t=="function"?t():ht(t)}const IH=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Tor=Object.prototype.toString,por=t=>Tor.call(t)==="[object Object]",z6=()=>{},hor=mor();function mor(){var t,e;return IH&&((t=window==null?void 0:window.navigator)==null?void 0:t.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((e=window==null?void 0:window.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function gor(t,e,n=!1){return e.reduce((r,o)=>(o in t&&(!n||t[o]!==void 0)&&(r[o]=t[o]),r),{})}function _or(t,e={}){if(!An(t))return iV(t);const n=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const r in t.value)n[r]=oV(()=>({get(){return t.value[r]},set(o){var i;if((i=k_(e.replaceRef))!=null?i:!0)if(Array.isArray(t.value)){const a=[...t.value];a[r]=o,t.value=a}else{const a={...t.value,[r]:o};Object.setPrototypeOf(a,Object.getPrototypeOf(t.value)),t.value=a}else t.value[r]=o}}));return n}function $l(t){var e;const n=k_(t);return(e=n==null?void 0:n.$el)!=null?e:n}const I_=IH?window:void 0;function e3(...t){let e,n,r,o;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,o]=t,e=I_):[e,n,r,o]=t,!e)return z6;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],s=()=>{i.forEach(u=>u()),i.length=0},a=(u,d,f,T)=>(u.addEventListener(d,f,T),()=>u.removeEventListener(d,f,T)),l=Bn(()=>[$l(e),k_(o)],([u,d])=>{if(s(),!u)return;const f=por(d)?{...d}:d;i.push(...n.flatMap(T=>r.map(g=>a(u,T,g,f))))},{immediate:!0,flush:"post"}),c=()=>{l(),s()};return dor(c),c}let rO=!1;function HH(t,e,n={}){const{window:r=I_,ignore:o=[],capture:i=!0,detectIframe:s=!1}=n;if(!r)return z6;hor&&!rO&&(rO=!0,Array.from(r.document.body.children).forEach(f=>f.addEventListener("click",z6)),r.document.documentElement.addEventListener("click",z6));let a=!0;const l=f=>o.some(T=>{if(typeof T=="string")return Array.from(r.document.querySelectorAll(T)).some(g=>g===f.target||f.composedPath().includes(g));{const g=$l(T);return g&&(f.target===g||f.composedPath().includes(g))}}),u=[e3(r,"click",f=>{const T=$l(t);if(!(!T||T===f.target||f.composedPath().includes(T))){if(f.detail===0&&(a=!l(f)),!a){a=!0;return}e(f)}},{passive:!0,capture:i}),e3(r,"pointerdown",f=>{const T=$l(t);a=!l(f)&&!!(T&&!f.composedPath().includes(T))},{passive:!0}),s&&e3(r,"blur",f=>{setTimeout(()=>{var T;const g=$l(t);((T=r.document.activeElement)==null?void 0:T.tagName)==="IFRAME"&&!(g!=null&&g.contains(r.document.activeElement))&&e(f)},0)})].filter(Boolean);return()=>u.forEach(f=>f())}const PH={x:0,y:0,pointerId:0,pressure:0,tiltX:0,tiltY:0,width:0,height:0,twist:0,pointerType:null},Qor=Object.keys(PH);function vor(t={}){const{target:e=I_}=t,n=ot(!1),r=ot(t.initialValue||{});Object.assign(r.value,PH,r.value);const o=i=>{n.value=!0,!(t.pointerTypes&&!t.pointerTypes.includes(i.pointerType))&&(r.value=gor(i,Qor,!1))};if(e){const i={passive:!0};e3(e,["pointerdown","pointermove","pointerup"],o,i),e3(e,"pointerleave",()=>n.value=!1,i)}return{..._or(r),isInside:n}}const yor=["onMouseenter","onMouseleave","onClick"],bor={class:"flex-fill"},Eor={key:0,class:"__submenu-icon",style:{"line-height":"1em"}},xor=h("svg",{width:"13",height:"13",viewBox:"-60 120 250 250"},[h("path",{d:"M160.875 279.5625 L70.875 369.5625 L70.875 189.5625 L160.875 279.5625 Z",stroke:"none",fill:"white"})],-1),Sor=[xor],H_=xn({__name:"ContextMenu",props:{modelValue:{type:Boolean},items:{},x:{default:0},y:{default:0},isNested:{type:Boolean,default:!1},isFlipped:{default:()=>({x:!1,y:!1})},flippable:{type:Boolean,default:!1}},emits:["update:modelValue","click"],setup(t,{emit:e}){const n=t,r=e;let o=null;const i=ot(null),s=ot(-1),a=ot(0),l=ot({x:!1,y:!1}),c=Ze(()=>n.flippable&&(l.value.x||n.isFlipped.x)),u=Ze(()=>n.flippable&&(l.value.y||n.isFlipped.y)),d=Ze(()=>{const v={};return n.isNested||(v.top=(u.value?n.y-a.value:n.y)+"px",v.left=n.x+"px"),v}),f=Ze(()=>({"--flipped-x":c.value,"--flipped-y":u.value,"--nested":n.isNested})),T=Ze(()=>n.items.map(v=>({...v,hover:!1})));Bn([()=>n.y,()=>n.items],()=>{var v,y,b,E;a.value=n.items.length*30;const S=((y=(v=i.value)==null?void 0:v.parentElement)==null?void 0:y.offsetWidth)??0,L=((E=(b=i.value)==null?void 0:b.parentElement)==null?void 0:E.offsetHeight)??0;l.value.x=!n.isNested&&n.x>S*.75,l.value.y=!n.isNested&&n.y+a.value>L-20}),HH(i,()=>{n.modelValue&&r("update:modelValue",!1)});const g=v=>{!v.submenu&&v.value&&(r("click",v.value),r("update:modelValue",!1))},m=v=>{r("click",v),s.value=-1,n.isNested||r("update:modelValue",!1)},_=(v,y)=>{n.items[y].submenu&&(s.value=y,o!==null&&(clearTimeout(o),o=null))},Q=(v,y)=>{n.items[y].submenu&&(o=window.setTimeout(()=>{s.value=-1,o=null},200))};return(v,y)=>{const b=Ke("ContextMenu",!0);return N(),at(lr,{name:"slide-fade"},{default:Se(()=>[Y(h("div",{ref_key:"el",ref:i,class:Le(["baklava-context-menu",f.value]),style:zt(d.value)},[(N(!0),D(Ae,null,Ge(T.value,(E,S)=>(N(),D(Ae,null,[E.isDivider?(N(),D("div",{key:`d-${S}`,class:"divider"})):(N(),D("div",{key:`i-${S}`,class:Le(["item",{submenu:!!E.submenu,"--disabled":!!E.disabled}]),onMouseenter:L=>_(L,S),onMouseleave:L=>Q(L,S),onClick:ie(L=>g(E),["stop","prevent"])},[h("div",bor,ee(E.label),1),E.submenu?(N(),D("div",Eor,Sor)):W("",!0),E.submenu?(N(),at(b,{key:1,"model-value":s.value===S,items:E.submenu,"is-nested":!0,"is-flipped":{x:c.value,y:u.value},flippable:v.flippable,onClick:m},null,8,["model-value","items","is-flipped","flippable"])):W("",!0)],42,yor))],64))),256))],6),[[gt,v.modelValue]])]),_:1})}}}),Lor={},Cor={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"16",height:"16",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Aor=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),wor=h("circle",{cx:"12",cy:"12",r:"1"},null,-1),Oor=h("circle",{cx:"12",cy:"19",r:"1"},null,-1),Mor=h("circle",{cx:"12",cy:"5",r:"1"},null,-1),Ror=[Aor,wor,Oor,Mor];function Nor(t,e){return N(),D("svg",Cor,Ror)}const VH=gn(Lor,[["render",Nor]]),Dor=["id"],kor={key:0,class:"__tooltip"},Ior={key:2,class:"align-middle"},oO=xn({__name:"NodeInterface",props:{node:{},intf:{}},setup(t){const e=(_,Q=100)=>{const v=typeof(_==null?void 0:_.toString)=="function"?String(_):"";return v.length>Q?v.slice(0,Q)+"...":v},n=t,{viewModel:r}=Pr(),{hoveredOver:o,temporaryConnection:i}=Wr(kH),s=ot(null),a=Ze(()=>n.intf.connectionCount>0),l=ot(!1),c=Ze(()=>r.value.settings.displayValueOnHover&&l.value),u=Ze(()=>({"--input":n.intf.isInput,"--output":!n.intf.isInput,"--connected":a.value})),d=Ze(()=>n.intf.component&&(!n.intf.isInput||!n.intf.port||n.intf.connectionCount===0)),f=()=>{l.value=!0,o(n.intf)},T=()=>{l.value=!1,o(void 0)},g=()=>{s.value&&r.value.hooks.renderInterface.execute({intf:n.intf,el:s.value})},m=()=>{const _=r.value.displayedGraph.sidebar;_.nodeId=n.node.id,_.optionName=n.intf.name,_.visible=!0};return Yo(g),C3(g),(_,Q)=>{var v;return N(),D("div",{id:_.intf.id,ref_key:"el",ref:s,class:Le(["baklava-node-interface",u.value])},[_.intf.port?(N(),D("div",{key:0,class:Le(["__port",{"--selected":((v=ht(i))==null?void 0:v.from)===_.intf}]),onPointerover:f,onPointerout:T},[Qn(_.$slots,"portTooltip",{showTooltip:c.value},()=>[c.value===!0?(N(),D("span",kor,ee(e(_.intf.value)),1)):W("",!0)])],34)):W("",!0),d.value?(N(),at(pc(_.intf.component),{key:1,modelValue:_.intf.value,"onUpdate:modelValue":Q[0]||(Q[0]=y=>_.intf.value=y),node:_.node,intf:_.intf,onOpenSidebar:m},null,40,["modelValue","node","intf"])):(N(),D("span",Ior,ee(_.intf.name),1))],10,Dor)}}}),Hor=["id","data-node-type"],Por={class:"__title-label"},Vor={class:"__menu"},$or={class:"__outputs"},Bor={class:"__inputs"},For=xn({__name:"Node",props:{node:{},selected:{type:Boolean,default:!1},dragging:{type:Boolean}},emits:["select","start-drag"],setup(t,{emit:e}){const n=t,r=e,{viewModel:o}=Pr(),{graph:i,switchGraph:s}=oo(),a=ot(null),l=ot(!1),c=ot(""),u=ot(null),d=ot(!1),f=ot(!1),T=Ze(()=>{const I=[{value:"rename",label:"Rename"},{value:"delete",label:"Delete"}];return n.node.type.startsWith(x3)&&I.push({value:"editSubgraph",label:"Edit Subgraph"}),I}),g=Ze(()=>({"--selected":n.selected,"--dragging":n.dragging,"--two-column":!!n.node.twoColumn})),m=Ze(()=>({"--reverse-y":n.node.reverseY??o.value.settings.nodes.reverseY})),_=Ze(()=>{var I,V;return{top:`${((I=n.node.position)==null?void 0:I.y)??0}px`,left:`${((V=n.node.position)==null?void 0:V.x)??0}px`,"--width":`${n.node.width??o.value.settings.nodes.defaultWidth}px`}}),Q=Ze(()=>Object.values(n.node.inputs).filter(I=>!I.hidden)),v=Ze(()=>Object.values(n.node.outputs).filter(I=>!I.hidden)),y=()=>{r("select")},b=I=>{n.selected||y(),r("start-drag",I)},E=()=>{f.value=!0},S=async I=>{var V;switch(I){case"delete":i.value.removeNode(n.node);break;case"rename":c.value=n.node.title,l.value=!0,await Re(),(V=u.value)==null||V.focus();break;case"editSubgraph":s(n.node.template);break}},L=()=>{n.node.title=c.value,l.value=!1},w=()=>{a.value&&o.value.hooks.renderNode.execute({node:n.node,el:a.value})},A=I=>{d.value=!0,I.preventDefault()},M=I=>{if(!d.value)return;const V=n.node.width+I.movementX/i.value.scaling,P=o.value.settings.nodes.minWidth,B=o.value.settings.nodes.maxWidth;n.node.width=Math.max(P,Math.min(B,V))},k=()=>{d.value=!1};return Yo(()=>{w(),window.addEventListener("mousemove",M),window.addEventListener("mouseup",k)}),C3(w),r2(()=>{window.removeEventListener("mousemove",M),window.removeEventListener("mouseup",k)}),(I,V)=>(N(),D("div",{id:I.node.id,ref_key:"el",ref:a,class:Le(["baklava-node",g.value]),style:zt(_.value),"data-node-type":I.node.type,onPointerdown:y},[ht(o).settings.nodes.resizable?(N(),D("div",{key:0,class:"__resize-handle",onMousedown:A},null,32)):W("",!0),Qn(I.$slots,"title",{},()=>[h("div",{class:"__title",onPointerdown:ie(b,["self","stop"])},[l.value?Y((N(),D("input",{key:1,ref_key:"renameInputEl",ref:u,"onUpdate:modelValue":V[1]||(V[1]=P=>c.value=P),type:"text",class:"baklava-input",placeholder:"Node Name",onBlur:L,onKeydown:ur(L,["enter"])},null,544)),[[fe,c.value]]):(N(),D(Ae,{key:0},[h("div",Por,ee(I.node.title),1),h("div",Vor,[Z(VH,{class:"--clickable",onClick:E}),Z(ht(H_),{modelValue:f.value,"onUpdate:modelValue":V[0]||(V[0]=P=>f.value=P),x:0,y:0,items:T.value,onClick:S},null,8,["modelValue","items"])])],64))],32)]),Qn(I.$slots,"content",{},()=>[h("div",{class:Le(["__content",m.value]),onKeydown:V[2]||(V[2]=ur(ie(()=>{},["stop"]),["delete"]))},[h("div",$or,[(N(!0),D(Ae,null,Ge(v.value,P=>Qn(I.$slots,"nodeInterface",{key:P.id,type:"output",node:I.node,intf:P},()=>[Z(oO,{node:I.node,intf:P},null,8,["node","intf"])])),128))]),h("div",Bor,[(N(!0),D(Ae,null,Ge(Q.value,P=>Qn(I.$slots,"nodeInterface",{key:P.id,type:"input",node:I.node,intf:P},()=>[Z(oO,{node:I.node,intf:P},null,8,["node","intf"])])),128))])],34)])],46,Hor))}}),Uor=xn({props:{x1:{type:Number,required:!0},y1:{type:Number,required:!0},x2:{type:Number,required:!0},y2:{type:Number,required:!0},state:{type:Number,default:qr.NONE},isTemporary:{type:Boolean,default:!1}},setup(t){const{viewModel:e}=Pr(),{graph:n}=oo(),r=(s,a)=>{const l=(s+n.value.panning.x)*n.value.scaling,c=(a+n.value.panning.y)*n.value.scaling;return[l,c]},o=Ze(()=>{const[s,a]=r(t.x1,t.y1),[l,c]=r(t.x2,t.y2);if(e.value.settings.useStraightConnections)return`M ${s} ${a} L ${l} ${c}`;{const u=.3*Math.abs(s-l);return`M ${s} ${a} C ${s+u} ${a}, ${l-u} ${c}, ${l} ${c}`}}),i=Ze(()=>({"--temporary":t.isTemporary,"--allowed":t.state===qr.ALLOWED,"--forbidden":t.state===qr.FORBIDDEN}));return{d:o,classes:i}}}),Gor=["d"];function qor(t,e,n,r,o,i){return N(),D("path",{class:Le(["baklava-connection",t.classes]),d:t.d},null,10,Gor)}const $H=gn(Uor,[["render",qor]]);function jor(t){return document.getElementById(t.id)}function e2(t){const e=document.getElementById(t.id),n=e==null?void 0:e.getElementsByClassName("__port");return{node:(e==null?void 0:e.closest(".baklava-node"))??null,interface:e,port:n&&n.length>0?n[0]:null}}const zor=xn({components:{"connection-view":$H},props:{connection:{type:Object,required:!0}},setup(t){const{graph:e}=oo();let n;const r=ot({x1:0,y1:0,x2:0,y2:0}),o=Ze(()=>t.connection.isInDanger?qr.FORBIDDEN:qr.NONE),i=Ze(()=>{var c;return(c=e.value.findNodeById(t.connection.from.nodeId))==null?void 0:c.position}),s=Ze(()=>{var c;return(c=e.value.findNodeById(t.connection.to.nodeId))==null?void 0:c.position}),a=c=>c.node&&c.interface&&c.port?[c.node.offsetLeft+c.interface.offsetLeft+c.port.offsetLeft+c.port.clientWidth/2,c.node.offsetTop+c.interface.offsetTop+c.port.offsetTop+c.port.clientHeight/2]:[0,0],l=()=>{const c=e2(t.connection.from),u=e2(t.connection.to);c.node&&u.node&&(n||(n=new ResizeObserver(()=>{l()}),n.observe(c.node),n.observe(u.node)));const[d,f]=a(c),[T,g]=a(u);r.value={x1:d,y1:f,x2:T,y2:g}};return Yo(async()=>{await Re(),l()}),r2(()=>{n&&n.disconnect()}),Bn([i,s],()=>l(),{deep:!0}),{d:r,state:o}}});function Yor(t,e,n,r,o,i){const s=Ke("connection-view");return N(),at(s,{x1:t.d.x1,y1:t.d.y1,x2:t.d.x2,y2:t.d.y2,state:t.state},null,8,["x1","y1","x2","y2","state"])}const Wor=gn(zor,[["render",Yor]]);function ec(t){return t.node&&t.interface&&t.port?[t.node.offsetLeft+t.interface.offsetLeft+t.port.offsetLeft+t.port.clientWidth/2,t.node.offsetTop+t.interface.offsetTop+t.port.offsetTop+t.port.clientHeight/2]:[0,0]}const Kor=xn({components:{"connection-view":$H},props:{connection:{type:Object,required:!0}},setup(t){const e=Ze(()=>t.connection?t.connection.status:qr.NONE);return{d:Ze(()=>{if(!t.connection)return{input:[0,0],output:[0,0]};const r=ec(e2(t.connection.from)),o=t.connection.to?ec(e2(t.connection.to)):[t.connection.mx||r[0],t.connection.my||r[1]];return t.connection.from.isInput?{input:o,output:r}:{input:r,output:o}}),status:e}}});function Zor(t,e,n,r,o,i){const s=Ke("connection-view");return N(),at(s,{x1:t.d.input[0],y1:t.d.input[1],x2:t.d.output[0],y2:t.d.output[1],state:t.status,"is-temporary":""},null,8,["x1","y1","x2","y2","state"])}const Xor=gn(Kor,[["render",Zor]]),Jor=xn({setup(){const{viewModel:t}=Pr(),{graph:e}=oo(),n=ot(null),r=K6(t.value.settings.sidebar,"width"),o=Ze(()=>t.value.settings.sidebar.resizable),i=Ze(()=>{const d=e.value.sidebar.nodeId;return e.value.nodes.find(f=>f.id===d)}),s=Ze(()=>({width:`${r.value}px`})),a=Ze(()=>i.value?[...Object.values(i.value.inputs),...Object.values(i.value.outputs)].filter(f=>f.displayInSidebar&&f.component):[]),l=()=>{e.value.sidebar.visible=!1},c=()=>{window.addEventListener("mousemove",u),window.addEventListener("mouseup",()=>{window.removeEventListener("mousemove",u)},{once:!0})},u=d=>{var f,T;const g=((T=(f=n.value)==null?void 0:f.parentElement)==null?void 0:T.getBoundingClientRect().width)??500;let m=r.value-d.movementX;m<300?m=300:m>.9*g&&(m=.9*g),r.value=m};return{el:n,graph:e,resizable:o,node:i,styles:s,displayedInterfaces:a,startResize:c,close:l}}}),eir={class:"__header"},tir={class:"__node-name"};function nir(t,e,n,r,o,i){return N(),D("div",{ref:"el",class:Le(["baklava-sidebar",{"--open":t.graph.sidebar.visible}]),style:zt(t.styles)},[t.resizable?(N(),D("div",{key:0,class:"__resizer",onMousedown:e[0]||(e[0]=(...s)=>t.startResize&&t.startResize(...s))},null,32)):W("",!0),h("div",eir,[h("button",{tabindex:"-1",class:"__close",onClick:e[1]||(e[1]=(...s)=>t.close&&t.close(...s))},"×"),h("div",tir,[h("b",null,ee(t.node?t.node.title:""),1)])]),(N(!0),D(Ae,null,Ge(t.displayedInterfaces,s=>(N(),D("div",{key:s.id,class:"__interface"},[(N(),at(pc(s.component),{modelValue:s.value,"onUpdate:modelValue":a=>s.value=a,node:t.node,intf:s},null,8,["modelValue","onUpdate:modelValue","node","intf"]))]))),128))],6)}const rir=gn(Jor,[["render",nir]]),oir=xn({__name:"Minimap",setup(t){const{viewModel:e}=Pr(),{graph:n}=oo(),r=ot(null),o=ot(!1);let i,s=!1,a={x1:0,y1:0,x2:0,y2:0},l;const c=()=>{var S,L;if(!i)return;i.canvas.width=r.value.offsetWidth,i.canvas.height=r.value.offsetHeight;const w=new Map,A=new Map;for(const P of n.value.nodes){const B=jor(P),$=(B==null?void 0:B.offsetWidth)??0,q=(B==null?void 0:B.offsetHeight)??0,G=((S=P.position)==null?void 0:S.x)??0,X=((L=P.position)==null?void 0:L.y)??0;w.set(P,{x1:G,y1:X,x2:G+$,y2:X+q}),A.set(P,B)}const M={x1:Number.MAX_SAFE_INTEGER,y1:Number.MAX_SAFE_INTEGER,x2:Number.MIN_SAFE_INTEGER,y2:Number.MIN_SAFE_INTEGER};for(const P of w.values())P.x1M.x2&&(M.x2=P.x2),P.y2>M.y2&&(M.y2=P.y2);const k=50;M.x1-=k,M.y1-=k,M.x2+=k,M.y2+=k,a=M;const I=i.canvas.width/i.canvas.height,V=(a.x2-a.x1)/(a.y2-a.y1);if(I>V){const P=(I-V)*(a.y2-a.y1)*.5;a.x1-=P,a.x2+=P}else{const P=a.x2-a.x1,B=a.y2-a.y1,$=(P-I*B)/I*.5;a.y1-=$,a.y2+=$}i.clearRect(0,0,i.canvas.width,i.canvas.height),i.strokeStyle="white";for(const P of n.value.connections){const[B,$]=ec(e2(P.from)),[q,G]=ec(e2(P.to)),[X,K]=u(B,$),[ne,pe]=u(q,G);if(i.beginPath(),i.moveTo(X,K),e.value.settings.useStraightConnections)i.lineTo(ne,pe);else{const re=.3*Math.abs(X-ne);i.bezierCurveTo(X+re,K,ne-re,pe,ne,pe)}i.stroke()}i.strokeStyle="lightgray";for(const[P,B]of w.entries()){const[$,q]=u(B.x1,B.y1),[G,X]=u(B.x2,B.y2);i.fillStyle=f(A.get(P)),i.beginPath(),i.rect($,q,G-$,X-q),i.fill(),i.stroke()}if(o.value){const P=g(),[B,$]=u(P.x1,P.y1),[q,G]=u(P.x2,P.y2);i.fillStyle="rgba(255, 255, 255, 0.2)",i.fillRect(B,$,q-B,G-$)}},u=(S,L)=>[(S-a.x1)/(a.x2-a.x1)*i.canvas.width,(L-a.y1)/(a.y2-a.y1)*i.canvas.height],d=(S,L)=>[S*(a.x2-a.x1)/i.canvas.width+a.x1,L*(a.y2-a.y1)/i.canvas.height+a.y1],f=S=>{if(S){const L=S.querySelector(".__content");if(L){const A=T(L);if(A)return A}const w=T(S);if(w)return w}return"gray"},T=S=>{const L=getComputedStyle(S).backgroundColor;if(L&&L!=="rgba(0, 0, 0, 0)")return L},g=()=>{const S=r.value.parentElement.offsetWidth,L=r.value.parentElement.offsetHeight,w=S/n.value.scaling-n.value.panning.x,A=L/n.value.scaling-n.value.panning.y;return{x1:-n.value.panning.x,y1:-n.value.panning.y,x2:w,y2:A}},m=S=>{S.button===0&&(s=!0,_(S))},_=S=>{if(s){const[L,w]=d(S.offsetX,S.offsetY),A=g(),M=(A.x2-A.x1)/2,k=(A.y2-A.y1)/2;n.value.panning.x=-(L-M),n.value.panning.y=-(w-k)}},Q=()=>{s=!1},v=()=>{o.value=!0},y=()=>{o.value=!1,Q()};Bn([o,n.value.panning,()=>n.value.scaling,()=>n.value.connections.length],()=>{c()});const b=Ze(()=>n.value.nodes.map(S=>S.position)),E=Ze(()=>n.value.nodes.map(S=>S.width));return Bn([b,E],()=>{c()},{deep:!0}),Yo(()=>{i=r.value.getContext("2d"),i.imageSmoothingQuality="high",c(),l=setInterval(c,500)}),r2(()=>{clearInterval(l)}),(S,L)=>(N(),D("canvas",{ref_key:"canvas",ref:r,class:"baklava-minimap",onMouseenter:v,onMouseleave:y,onMousedown:ie(m,["self"]),onMousemove:ie(_,["self"]),onMouseup:Q,onContextmenu:L[0]||(L[0]=ie(()=>{},["stop","prevent"]))},null,544))}}),iir=xn({components:{ContextMenu:H_,VerticalDots:VH},props:{type:{type:String,required:!0},title:{type:String,required:!0}},setup(t){const{viewModel:e}=Pr(),{switchGraph:n}=oo(),r=ot(!1),o=Ze(()=>t.type.startsWith(x3));return{showContextMenu:r,hasContextMenu:o,contextMenuItems:[{label:"Edit Subgraph",value:"editSubgraph"},{label:"Delete Subgraph",value:"deleteSubgraph"}],openContextMenu:()=>{r.value=!0},onContextMenuClick:l=>{const c=t.type.substring(x3.length),u=e.value.editor.graphTemplates.find(d=>d.id===c);if(u)switch(l){case"editSubgraph":n(u);break;case"deleteSubgraph":e.value.editor.removeGraphTemplate(u);break}}}}}),sir=["data-node-type"],air={class:"__title"},lir={class:"__title-label"},cir={key:0,class:"__menu"};function uir(t,e,n,r,o,i){const s=Ke("vertical-dots"),a=Ke("context-menu");return N(),D("div",{class:"baklava-node --palette","data-node-type":t.type},[h("div",air,[h("div",lir,ee(t.title),1),t.hasContextMenu?(N(),D("div",cir,[Z(s,{class:"--clickable",onPointerdown:e[0]||(e[0]=ie(()=>{},["stop","prevent"])),onClick:ie(t.openContextMenu,["stop","prevent"])},null,8,["onClick"]),Z(a,{modelValue:t.showContextMenu,"onUpdate:modelValue":e[1]||(e[1]=l=>t.showContextMenu=l),x:-100,y:0,items:t.contextMenuItems,onClick:t.onContextMenuClick,onPointerdown:e[2]||(e[2]=ie(()=>{},["stop","prevent"]))},null,8,["modelValue","items","onClick"])])):W("",!0)])],8,sir)}const iO=gn(iir,[["render",uir]]),dir={key:0},Tir=xn({__name:"NodePalette",setup(t){const{viewModel:e}=Pr(),{x:n,y:r}=vor(),{transform:o}=DH(),i=NH(e),s=Wr("editorEl"),a=ot(null),l=Ze(()=>{if(!a.value||!(s!=null&&s.value))return{};const{left:u,top:d}=s.value.getBoundingClientRect();return{top:`${r.value-d}px`,left:`${n.value-u}px`}}),c=(u,d)=>{a.value={type:u,nodeInformation:d};const f=()=>{const T=cr(new d.type);e.value.displayedGraph.addNode(T);const g=s.value.getBoundingClientRect(),[m,_]=o(n.value-g.left,r.value-g.top);T.position.x=m,T.position.y=_,a.value=null,document.removeEventListener("pointerup",f)};document.addEventListener("pointerup",f)};return(u,d)=>(N(),D(Ae,null,[h("div",{class:"baklava-node-palette",onContextmenu:d[0]||(d[0]=ie(()=>{},["stop","prevent"]))},[(N(!0),D(Ae,null,Ge(ht(i),f=>(N(),D("section",{key:f.name},[f.name!=="default"?(N(),D("h1",dir,ee(f.name),1)):W("",!0),(N(!0),D(Ae,null,Ge(f.nodeTypes,(T,g)=>(N(),at(iO,{key:g,type:g,title:T.title,onPointerdown:m=>c(g,T)},null,8,["type","title","onPointerdown"]))),128))]))),128))],32),Z(lr,{name:"fade"},{default:Se(()=>[a.value?(N(),D("div",{key:0,class:"baklava-dragged-node",style:zt(l.value)},[Z(iO,{type:a.value.type,title:a.value.nodeInformation.title},null,8,["type","title"])],4)):W("",!0)]),_:1})],64))}});let O6;const fir=new Uint8Array(16);function pir(){if(!O6&&(O6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!O6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return O6(fir)}const Vn=[];for(let t=0;t<256;++t)Vn.push((t+256).toString(16).slice(1));function hir(t,e=0){return Vn[t[e+0]]+Vn[t[e+1]]+Vn[t[e+2]]+Vn[t[e+3]]+"-"+Vn[t[e+4]]+Vn[t[e+5]]+"-"+Vn[t[e+6]]+Vn[t[e+7]]+"-"+Vn[t[e+8]]+Vn[t[e+9]]+"-"+Vn[t[e+10]]+Vn[t[e+11]]+Vn[t[e+12]]+Vn[t[e+13]]+Vn[t[e+14]]+Vn[t[e+15]]}const mir=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),sO={randomUUID:mir};function tc(t,e,n){if(sO.randomUUID&&!e&&!t)return sO.randomUUID();t=t||{};const r=t.random||(t.rng||pir)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,hir(r)}const S3="SAVE_SUBGRAPH";function gir(t,e){const n=()=>{const r=t.value;if(!r.template)throw new Error("Graph template property not set");r.template.update(r.save()),r.template.panning=r.panning,r.template.scaling=r.scaling};e.registerCommand(S3,{canExecute:()=>{var r;return t.value!==((r=t.value.editor)==null?void 0:r.graph)},execute:n})}const _ir={},Qir={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},vir=h("polyline",{points:"6 9 12 15 18 9"},null,-1),yir=[vir];function bir(t,e){return N(),D("svg",Qir,yir)}const Eir=gn(_ir,[["render",bir]]),xir=xn({components:{"i-arrow":Eir},props:{intf:{type:Object,required:!0}},setup(t){const e=ot(null),n=ot(!1),r=Ze(()=>t.intf.items.find(s=>typeof s=="string"?s===t.intf.value:s.value===t.intf.value)),o=Ze(()=>r.value?typeof r.value=="string"?r.value:r.value.text:""),i=s=>{t.intf.value=typeof s=="string"?s:s.value};return HH(e,()=>{n.value=!1}),{el:e,open:n,selectedItem:r,selectedText:o,setSelected:i}}}),Sir=["title"],Lir={class:"__selected"},Cir={class:"__text"},Air={class:"__icon"},wir={class:"__dropdown"},Oir={class:"item --header"},Mir=["onClick"];function Rir(t,e,n,r,o,i){const s=Ke("i-arrow");return N(),D("div",{ref:"el",class:Le(["baklava-select",{"--open":t.open}]),title:t.intf.name,onClick:e[0]||(e[0]=a=>t.open=!t.open)},[h("div",Lir,[h("div",Cir,ee(t.selectedText),1),h("div",Air,[Z(s)])]),Z(lr,{name:"slide-fade"},{default:Se(()=>[Y(h("div",wir,[h("div",Oir,ee(t.intf.name),1),(N(!0),D(Ae,null,Ge(t.intf.items,(a,l)=>(N(),D("div",{key:l,class:Le(["item",{"--active":a===t.selectedItem}]),onClick:c=>t.setSelected(a)},ee(typeof a=="string"?a:a.text),11,Mir))),128))],512),[[gt,t.open]])]),_:1})],10,Sir)}const Nir=gn(xir,[["render",Rir]]);class Dir extends Tn{constructor(e,n,r){super(e,n),this.component=uc(Nir),this.items=r}}const kir=xn({props:{intf:{type:Object,required:!0}}});function Iir(t,e,n,r,o,i){return N(),D("div",null,ee(t.intf.value),1)}const Hir=gn(kir,[["render",Iir]]);class Pir extends Tn{constructor(e,n){super(e,n),this.component=uc(Hir),this.setPort(!1)}}const Vir=xn({props:{intf:{type:Object,required:!0},modelValue:{type:String,required:!0}},emits:["update:modelValue"],setup(t,{emit:e}){return{v:Ze({get:()=>t.modelValue,set:r=>{e("update:modelValue",r)}})}}}),$ir=["placeholder","title"];function Bir(t,e,n,r,o,i){return N(),D("div",null,[Y(h("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>t.v=s),type:"text",class:"baklava-input",placeholder:t.intf.name,title:t.intf.name},null,8,$ir),[[fe,t.v]])])}const Fir=gn(Vir,[["render",Bir]]);class Q4 extends Tn{constructor(){super(...arguments),this.component=uc(Fir)}}class BH extends N_{constructor(){super(...arguments),this._title="Subgraph Input",this.inputs={name:new Q4("Name","Input").setPort(!1)},this.outputs={placeholder:new Tn("Connection",void 0)}}}class FH extends D_{constructor(){super(...arguments),this._title="Subgraph Output",this.inputs={name:new Q4("Name","Output").setPort(!1),placeholder:new Tn("Connection",void 0)},this.outputs={output:new Tn("Output",void 0).setHidden(!0)}}}const UH="CREATE_SUBGRAPH",aO=[Za,Xa];function Uir(t,e,n){const r=()=>t.value.selectedNodes.filter(i=>!aO.includes(i.type)).length>0,o=()=>{const{viewModel:i}=Pr(),s=t.value,a=t.value.editor;if(s.selectedNodes.length===0)return;const l=s.selectedNodes.filter(A=>!aO.includes(A.type)),c=l.flatMap(A=>Object.values(A.inputs)),u=l.flatMap(A=>Object.values(A.outputs)),d=s.connections.filter(A=>!u.includes(A.from)&&c.includes(A.to)),f=s.connections.filter(A=>u.includes(A.from)&&!c.includes(A.to)),T=s.connections.filter(A=>u.includes(A.from)&&c.includes(A.to)),g=l.map(A=>A.save()),m=T.map(A=>({id:A.id,from:A.from.id,to:A.to.id})),_=new Map,{xLeft:Q,xRight:v,yTop:y}=Gir(l);for(const[A,M]of d.entries()){const k=new BH;k.inputs.name.value=M.to.name,g.push({...k.save(),position:{x:v-i.value.settings.nodes.defaultWidth-100,y:y+A*200}}),m.push({id:tc(),from:k.outputs.placeholder.id,to:M.to.id}),_.set(M.to.id,k.graphInterfaceId)}for(const[A,M]of f.entries()){const k=new FH;k.inputs.name.value=M.from.name,g.push({...k.save(),position:{x:Q+100,y:y+A*200}}),m.push({id:tc(),from:M.from.id,to:k.inputs.placeholder.id}),_.set(M.from.id,k.graphInterfaceId)}const b=cr(new i7({connections:m,nodes:g,inputs:[],outputs:[]},a));a.addGraphTemplate(b);const E=a.nodeTypes.get(Ja(b));if(!E)throw new Error("Unable to create subgraph: Could not find corresponding graph node type");s.activeTransactions++;const S=cr(new E.type);s.addNode(S);const L=Math.round(l.map(A=>A.position.x).reduce((A,M)=>A+M,0)/l.length),w=Math.round(l.map(A=>A.position.y).reduce((A,M)=>A+M,0)/l.length);S.position.x=L,S.position.y=w,d.forEach(A=>{s.removeConnection(A),s.addConnection(A.from,S.inputs[_.get(A.to.id)])}),f.forEach(A=>{s.removeConnection(A),s.addConnection(S.outputs[_.get(A.from.id)],A.to)}),l.forEach(A=>s.removeNode(A)),s.activeTransactions--,e.canExecuteCommand(S3)&&e.executeCommand(S3),n(b),t.value.panning={...s.panning},t.value.scaling=s.scaling};e.registerCommand(UH,{canExecute:r,execute:o})}function Gir(t){const e=t.reduce((o,i)=>{const s=i.position.x;return s{const s=i.position.y;return s{const s=i.position.x+i.width;return s>o?s:o},-1/0),xRight:e,yTop:n}}class lO{constructor(e,n){this.type=e,e==="addNode"?this.nodeId=n:this.nodeState=n}undo(e){this.type==="addNode"?this.removeNode(e):this.addNode(e)}redo(e){this.type==="addNode"&&this.nodeState?this.addNode(e):this.type==="removeNode"&&this.nodeId&&this.removeNode(e)}addNode(e){const n=e.editor.nodeTypes.get(this.nodeState.type);if(!n)return;const r=new n.type;e.addNode(r),r.load(this.nodeState),this.nodeId=r.id}removeNode(e){const n=e.nodes.find(r=>r.id===this.nodeId);n&&(this.nodeState=n.save(),e.removeNode(n))}}class cO{constructor(e,n){if(this.type=e,e==="addConnection")this.connectionId=n;else{const r=n;this.connectionState={id:r.id,from:r.from.id,to:r.to.id}}}undo(e){this.type==="addConnection"?this.removeConnection(e):this.addConnection(e)}redo(e){this.type==="addConnection"&&this.connectionState?this.addConnection(e):this.type==="removeConnection"&&this.connectionId&&this.removeConnection(e)}addConnection(e){const n=e.findNodeInterface(this.connectionState.from),r=e.findNodeInterface(this.connectionState.to);if(!n||!r)return;const o=e.addConnection(n,r);o&&(o.id=this.connectionState.id),this.connectionId=o==null?void 0:o.id}removeConnection(e){const n=e.connections.find(r=>r.id===this.connectionId);n&&(this.connectionState={id:n.id,from:n.from.id,to:n.to.id},e.removeConnection(n))}}class qir{constructor(e){if(this.type="transaction",e.length===0)throw new Error("Can't create a transaction with no steps");this.steps=e}undo(e){for(let n=this.steps.length-1;n>=0;n--)this.steps[n].undo(e)}redo(e){for(let n=0;n{if(!i.value)if(a.value)l.value.push(_);else for(s.value!==o.value.length-1&&(o.value=o.value.slice(0,s.value+1)),o.value.push(_),s.value++;o.value.length>r.value;)o.value.shift()},u=()=>{a.value=!0},d=()=>{a.value=!1,l.value.length>0&&(c(new qir(l.value)),l.value=[])},f=()=>o.value.length!==0&&s.value!==-1,T=()=>{f()&&(i.value=!0,o.value[s.value--].undo(t.value),i.value=!1)},g=()=>o.value.length!==0&&s.value{g()&&(i.value=!0,o.value[++s.value].redo(t.value),i.value=!1)};return Bn(t,(_,Q)=>{Q&&(Q.events.addNode.unsubscribe(n),Q.events.removeNode.unsubscribe(n),Q.events.addConnection.unsubscribe(n),Q.events.removeConnection.unsubscribe(n)),_&&(_.events.addNode.subscribe(n,v=>{c(new lO("addNode",v.id))}),_.events.removeNode.subscribe(n,v=>{c(new lO("removeNode",v.save()))}),_.events.addConnection.subscribe(n,v=>{c(new cO("addConnection",v.id))}),_.events.removeConnection.subscribe(n,v=>{c(new cO("removeConnection",v))}))},{immediate:!0}),e.registerCommand(Bh,{canExecute:f,execute:T}),e.registerCommand(Fh,{canExecute:g,execute:m}),e.registerCommand(P_,{canExecute:()=>!a.value,execute:u}),e.registerCommand(V_,{canExecute:()=>a.value,execute:d}),e.registerHotkey(["Control","z"],Bh),e.registerHotkey(["Control","y"],Fh),cr({maxSteps:r})}const Uh="DELETE_NODES";function zir(t,e){e.registerCommand(Uh,{canExecute:()=>t.value.selectedNodes.length>0,execute(){e.executeCommand(P_);for(let n=t.value.selectedNodes.length-1;n>=0;n--){const r=t.value.selectedNodes[n];t.value.removeNode(r)}e.executeCommand(V_)}}),e.registerHotkey(["Delete"],Uh)}const GH="SWITCH_TO_MAIN_GRAPH";function Yir(t,e,n){e.registerCommand(GH,{canExecute:()=>t.value!==t.value.editor.graph,execute:()=>{e.executeCommand(S3),n(t.value.editor.graph)}})}function Wir(t,e,n){zir(t,e),Uir(t,e,n),gir(t,e),Yir(t,e,n)}const Gh="COPY",qh="PASTE",Kir="CLEAR_CLIPBOARD";function Zir(t,e,n){const r=Symbol("ClipboardToken"),o=ot(""),i=ot(""),s=Ze(()=>!o.value),a=()=>{o.value="",i.value=""},l=()=>{const d=t.value.selectedNodes.flatMap(T=>[...Object.values(T.inputs),...Object.values(T.outputs)]),f=t.value.connections.filter(T=>d.includes(T.from)||d.includes(T.to)).map(T=>({from:T.from.id,to:T.to.id}));i.value=JSON.stringify(f),o.value=JSON.stringify(t.value.selectedNodes.map(T=>T.save()))},c=(d,f,T)=>{for(const g of d){let m;if((!T||T==="input")&&(m=Object.values(g.inputs).find(_=>_.id===f)),!m&&(!T||T==="output")&&(m=Object.values(g.outputs).find(_=>_.id===f)),m)return m}},u=()=>{if(s.value)return;const d=new Map,f=JSON.parse(o.value),T=JSON.parse(i.value),g=[],m=[],_=t.value;n.executeCommand(P_);for(const Q of f){const v=e.value.nodeTypes.get(Q.type);if(!v){console.warn(`Node type ${Q.type} not registered`);return}const y=new v.type,b=y.id;g.push(y),y.hooks.beforeLoad.subscribe(r,E=>{const S=E;return S.position&&(S.position.x+=100,S.position.y+=100),y.hooks.beforeLoad.unsubscribe(r),S}),_.addNode(y),y.load({...Q,id:b}),y.id=b,d.set(Q.id,b);for(const E of Object.values(y.inputs)){const S=tc();d.set(E.id,S),E.id=S}for(const E of Object.values(y.outputs)){const S=tc();d.set(E.id,S),E.id=S}}for(const Q of T){const v=c(g,d.get(Q.from),"output"),y=c(g,d.get(Q.to),"input");if(!v||!y)continue;const b=_.addConnection(v,y);b&&m.push(b)}return t.value.selectedNodes=g,n.executeCommand(V_),{newNodes:g,newConnections:m}};return n.registerCommand(Gh,{canExecute:()=>t.value.selectedNodes.length>0,execute:l}),n.registerHotkey(["Control","c"],Gh),n.registerCommand(qh,{canExecute:()=>!s.value,execute:u}),n.registerHotkey(["Control","v"],qh),n.registerCommand(Kir,{canExecute:()=>!0,execute:a}),cr({isEmpty:s})}const Xir="OPEN_SIDEBAR";function Jir(t,e){e.registerCommand(Xir,{execute:n=>{t.value.sidebar.nodeId=n,t.value.sidebar.visible=!0},canExecute:()=>!0})}function esr(t,e){Jir(t,e)}const tsr={},nsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},rsr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),osr=h("path",{d:"M9 13l-4 -4l4 -4m-4 4h11a4 4 0 0 1 0 8h-1"},null,-1),isr=[rsr,osr];function ssr(t,e){return N(),D("svg",nsr,isr)}const asr=gn(tsr,[["render",ssr]]),lsr={},csr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},usr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),dsr=h("path",{d:"M15 13l4 -4l-4 -4m4 4h-11a4 4 0 0 0 0 8h1"},null,-1),Tsr=[usr,dsr];function fsr(t,e){return N(),D("svg",csr,Tsr)}const psr=gn(lsr,[["render",fsr]]),hsr={},msr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},gsr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),_sr=h("line",{x1:"5",y1:"12",x2:"19",y2:"12"},null,-1),Qsr=h("line",{x1:"5",y1:"12",x2:"11",y2:"18"},null,-1),vsr=h("line",{x1:"5",y1:"12",x2:"11",y2:"6"},null,-1),ysr=[gsr,_sr,Qsr,vsr];function bsr(t,e){return N(),D("svg",msr,ysr)}const Esr=gn(hsr,[["render",bsr]]),xsr={},Ssr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Lsr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Csr=h("path",{d:"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2"},null,-1),Asr=h("rect",{x:"9",y:"3",width:"6",height:"4",rx:"2"},null,-1),wsr=[Lsr,Csr,Asr];function Osr(t,e){return N(),D("svg",Ssr,wsr)}const Msr=gn(xsr,[["render",Osr]]),Rsr={},Nsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Dsr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),ksr=h("rect",{x:"8",y:"8",width:"12",height:"12",rx:"2"},null,-1),Isr=h("path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"},null,-1),Hsr=[Dsr,ksr,Isr];function Psr(t,e){return N(),D("svg",Nsr,Hsr)}const Vsr=gn(Rsr,[["render",Psr]]),$sr={},Bsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Fsr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Usr=h("path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2"},null,-1),Gsr=h("circle",{cx:"12",cy:"14",r:"2"},null,-1),qsr=h("polyline",{points:"14 4 14 8 8 8 8 4"},null,-1),jsr=[Fsr,Usr,Gsr,qsr];function zsr(t,e){return N(),D("svg",Bsr,jsr)}const Ysr=gn($sr,[["render",zsr]]),Wsr={},Ksr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Zsr=o2('',6),Xsr=[Zsr];function Jsr(t,e){return N(),D("svg",Ksr,Xsr)}const e1r=gn(Wsr,[["render",Jsr]]),t1r={},n1r={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},r1r=o2('',18),o1r=[r1r];function i1r(t,e){return N(),D("svg",n1r,o1r)}const s1r=gn(t1r,[["render",i1r]]),a1r={},l1r={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},c1r=o2('',6),u1r=[c1r];function d1r(t,e){return N(),D("svg",l1r,u1r)}const T1r=gn(a1r,[["render",d1r]]),f1r=xn({props:{command:{type:String,required:!0},title:{type:String,required:!0},icon:{type:Object,required:!1,default:void 0}},setup(){const{viewModel:t}=Pr();return{viewModel:t}}}),p1r=["disabled","title"];function h1r(t,e,n,r,o,i){return N(),D("button",{class:"baklava-toolbar-entry baklava-toolbar-button",disabled:!t.viewModel.commandHandler.canExecuteCommand(t.command),title:t.title,onClick:e[0]||(e[0]=s=>t.viewModel.commandHandler.executeCommand(t.command))},[t.icon?(N(),at(pc(t.icon),{key:0})):(N(),D(Ae,{key:1},[Be(ee(t.title),1)],64))],8,p1r)}const m1r=gn(f1r,[["render",h1r]]),g1r=xn({components:{ToolbarButton:m1r},setup(){const{viewModel:t}=Pr();return{isSubgraph:Ze(()=>t.value.displayedGraph!==t.value.editor.graph),commands:[{command:Gh,title:"Copy",icon:Vsr},{command:qh,title:"Paste",icon:Msr},{command:Uh,title:"Delete selected nodes",icon:T1r},{command:Bh,title:"Undo",icon:asr},{command:Fh,title:"Redo",icon:psr},{command:j6,title:"Box Select",icon:s1r},{command:UH,title:"Create Subgraph",icon:e1r}],subgraphCommands:[{command:S3,title:"Save Subgraph",icon:Ysr},{command:GH,title:"Back to Main Graph",icon:Esr}]}}});function _1r(t,e,n,r,o,i){const s=Ke("toolbar-button");return N(),D("div",{class:"baklava-toolbar",onContextmenu:e[0]||(e[0]=ie(()=>{},["stop","prevent"]))},[(N(!0),D(Ae,null,Ge(t.commands,a=>(N(),at(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)),t.isSubgraph?(N(!0),D(Ae,{key:0},Ge(t.subgraphCommands,a=>(N(),at(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)):W("",!0)],32)}const Q1r=gn(g1r,[["render",_1r]]),v1r={class:"connections-container"},y1r=xn({__name:"Editor",props:{viewModel:{}},setup(t){const e=t,n=Symbol("EditorToken"),r=K6(e,"viewModel");ror(r);const o=ot(null);Sa("editorEl",o);const i=Ze(()=>e.viewModel.displayedGraph.nodes),s=Ze(()=>e.viewModel.displayedGraph.nodes.map(w=>MH(K6(w,"position")))),a=Ze(()=>e.viewModel.displayedGraph.connections),l=Ze(()=>e.viewModel.displayedGraph.selectedNodes),c=oor(),u=ior(),d=sor(r),f=aor(o),T=Ze(()=>({...c.styles.value})),g=ot(0);e.viewModel.editor.hooks.load.subscribe(n,w=>(g.value++,w));const m=w=>{c.onPointerMove(w),u.onMouseMove(w)},_=w=>{if(w.button===0){if(f.onPointerDown(w))return;w.target===o.value&&(E(),c.onPointerDown(w)),u.onMouseDown()}},Q=w=>{c.onPointerUp(w),u.onMouseUp()},v=w=>{w.key==="Tab"&&w.preventDefault(),e.viewModel.commandHandler.handleKeyDown(w)},y=w=>{e.viewModel.commandHandler.handleKeyUp(w)},b=w=>{["Control","Shift"].some(A=>e.viewModel.commandHandler.pressedKeys.includes(A))||E(),e.viewModel.displayedGraph.selectedNodes.push(w)},E=()=>{e.viewModel.displayedGraph.selectedNodes=[]},S=w=>{for(const A of e.viewModel.displayedGraph.selectedNodes){const M=i.value.indexOf(A),k=s.value[M];k.onPointerDown(w),document.addEventListener("pointermove",k.onPointerMove)}document.addEventListener("pointerup",L)},L=()=>{for(const w of e.viewModel.displayedGraph.selectedNodes){const A=i.value.indexOf(w),M=s.value[A];M.onPointerUp(),document.removeEventListener("pointermove",M.onPointerMove)}document.removeEventListener("pointerup",L)};return(w,A)=>(N(),D("div",{ref_key:"el",ref:o,tabindex:"-1",class:Le(["baklava-editor",{"baklava-ignore-mouse":!!ht(u).temporaryConnection.value||ht(c).dragging.value,"--temporary-connection":!!ht(u).temporaryConnection.value,"--start-selection-box":ht(f).startSelection}]),onPointermove:ie(m,["self"]),onPointerdown:_,onPointerup:Q,onWheel:A[1]||(A[1]=ie((...M)=>ht(c).onMouseWheel&&ht(c).onMouseWheel(...M),["self"])),onKeydown:v,onKeyup:y,onContextmenu:A[2]||(A[2]=(...M)=>ht(d).open&&ht(d).open(...M))},[Qn(w.$slots,"background",{},()=>[Z(uor)]),Qn(w.$slots,"toolbar",{},()=>[w.viewModel.settings.toolbar.enabled?(N(),at(Q1r,{key:0})):W("",!0)]),Qn(w.$slots,"palette",{},()=>[w.viewModel.settings.palette.enabled?(N(),at(Tir,{key:0})):W("",!0)]),(N(),D("svg",v1r,[(N(!0),D(Ae,null,Ge(a.value,M=>(N(),D("g",{key:M.id+g.value.toString()},[Qn(w.$slots,"connection",{connection:M},()=>[Z(Wor,{connection:M},null,8,["connection"])])]))),128)),Qn(w.$slots,"temporaryConnection",{temporaryConnection:ht(u).temporaryConnection.value},()=>[ht(u).temporaryConnection.value?(N(),at(Xor,{key:0,connection:ht(u).temporaryConnection.value},null,8,["connection"])):W("",!0)])])),h("div",{class:"node-container",style:zt(T.value)},[Z(bi,{name:"fade"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(i.value,(M,k)=>Qn(w.$slots,"node",{key:M.id+g.value.toString(),node:M,selected:l.value.includes(M),dragging:s.value[k].dragging.value,onSelect:I=>b(M),onStartDrag:S},()=>[Z(For,{node:M,selected:l.value.includes(M),dragging:s.value[k].dragging.value,onSelect:I=>b(M),onStartDrag:S},null,8,["node","selected","dragging","onSelect"])])),128))]),_:3})],4),Qn(w.$slots,"sidebar",{},()=>[w.viewModel.settings.sidebar.enabled?(N(),at(rir,{key:0})):W("",!0)]),Qn(w.$slots,"minimap",{},()=>[w.viewModel.settings.enableMinimap?(N(),at(oir,{key:0})):W("",!0)]),Qn(w.$slots,"contextMenu",{contextMenu:ht(d)},()=>[w.viewModel.settings.contextMenu.enabled?(N(),at(H_,{key:0,modelValue:ht(d).show.value,"onUpdate:modelValue":A[0]||(A[0]=M=>ht(d).show.value=M),items:ht(d).items.value,x:ht(d).x.value,y:ht(d).y.value,onClick:ht(d).onClick},null,8,["modelValue","items","x","y","onClick"])):W("",!0)]),ht(f).isSelecting?(N(),D("div",{key:0,class:"selection-box",style:zt(ht(f).getStyles())},null,4)):W("",!0)],34))}});function b1r(t){const e=ot([]),n=ot([]);return{pressedKeys:e,handleKeyDown:s=>{e.value.includes(s.key)||e.value.push(s.key),!(document.activeElement&&OH(document.activeElement))&&n.value.forEach(a=>{var l,c;a.keys.every(u=>e.value.includes(u))&&((l=a.options)!=null&&l.preventDefault&&s.preventDefault(),(c=a.options)!=null&&c.stopPropagation&&s.stopPropagation(),t(a.commandName))})},handleKeyUp:s=>{const a=e.value.indexOf(s.key);a>=0&&e.value.splice(a,1)},registerHotkey:(s,a,l)=>{n.value.push({keys:s,commandName:a,options:l})}}}const E1r=()=>{const t=ot(new Map),e=s=>t.value.has(s),n=(s,a)=>{if(t.value.has(s))throw new Error(`Command "${s}" already exists`);t.value.set(s,a)},r=(s,a=!1,...l)=>{if(!t.value.has(s)){if(a)throw new Error(`[CommandHandler] Command ${s} not registered`);return}return t.value.get(s).execute(...l)},o=(s,a=!1,...l)=>{if(!t.value.has(s)){if(a)throw new Error(`[CommandHandler] Command ${s} not registered`);return!1}return t.value.get(s).canExecute(l)},i=b1r(r);return cr({hasCommand:e,registerCommand:n,executeCommand:r,canExecuteCommand:o,...i})},x1r=t=>!(t instanceof _4);function S1r(t,e){return{switchGraph:r=>{let o;if(x1r(r))o=new _4(t.value),r.createGraph(o);else{if(r!==t.value.graph)throw new Error("Can only switch using 'Graph' instance when it is the root graph. Otherwise a 'GraphTemplate' must be used.");o=r}e.value&&e.value!==t.value.graph&&e.value.destroy(),o.panning=o.panning??r.panning??{x:0,y:0},o.scaling=o.scaling??r.scaling??1,o.selectedNodes=o.selectedNodes??[],o.sidebar=o.sidebar??{visible:!1,nodeId:"",optionName:""},e.value=o}}}function L1r(t,e){t.position=t.position??{x:0,y:0},t.disablePointerEvents=!1,t.twoColumn=t.twoColumn??!1,t.width=t.width??e.defaultWidth}const C1r=()=>({useStraightConnections:!1,enableMinimap:!1,toolbar:{enabled:!0},palette:{enabled:!0},background:{gridSize:100,gridDivision:5,subGridVisibleThreshold:.6},sidebar:{enabled:!0,width:300,resizable:!0},displayValueOnHover:!1,nodes:{defaultWidth:200,maxWidth:320,minWidth:150,resizable:!1,reverseY:!1},contextMenu:{enabled:!0,additionalItems:[]}});function A1r(t){const e=ot(new Krr),n=Symbol("ViewModelToken"),r=ot(null),o=JP(r),{switchGraph:i}=S1r(e,r),s=Ze(()=>o.value&&o.value!==e.value.graph),a=cr(C1r()),l=E1r(),c=jir(o,l),u=Zir(o,e,l),d={renderNode:new Hr(null),renderInterface:new Hr(null)};return Wir(o,l,i),esr(o,l),Bn(e,(f,T)=>{T&&(T.events.registerGraph.unsubscribe(n),T.graphEvents.beforeAddNode.unsubscribe(n),f.nodeHooks.beforeLoad.unsubscribe(n),f.nodeHooks.afterSave.unsubscribe(n),f.graphTemplateHooks.beforeLoad.unsubscribe(n),f.graphTemplateHooks.afterSave.unsubscribe(n),f.graph.hooks.load.unsubscribe(n),f.graph.hooks.save.unsubscribe(n)),f&&(f.nodeHooks.beforeLoad.subscribe(n,(g,m)=>(m.position=g.position??{x:0,y:0},m.width=g.width??a.nodes.defaultWidth,m.twoColumn=g.twoColumn??!1,g)),f.nodeHooks.afterSave.subscribe(n,(g,m)=>(g.position=m.position,g.width=m.width,g.twoColumn=m.twoColumn,g)),f.graphTemplateHooks.beforeLoad.subscribe(n,(g,m)=>(m.panning=g.panning,m.scaling=g.scaling,g)),f.graphTemplateHooks.afterSave.subscribe(n,(g,m)=>(g.panning=m.panning,g.scaling=m.scaling,g)),f.graph.hooks.load.subscribe(n,(g,m)=>(m.panning=g.panning,m.scaling=g.scaling,g)),f.graph.hooks.save.subscribe(n,(g,m)=>(g.panning=m.panning,g.scaling=m.scaling,g)),f.graphEvents.beforeAddNode.subscribe(n,g=>L1r(g,{defaultWidth:a.nodes.defaultWidth})),e.value.registerNodeType(BH,{category:"Subgraphs"}),e.value.registerNodeType(FH,{category:"Subgraphs"}),i(f.graph))},{immediate:!0}),cr({editor:e,displayedGraph:o,isSubgraph:s,settings:a,commandHandler:l,history:c,clipboard:u,hooks:d,switchGraph:i})}const w1r=L2({type:"PersonalityNode",title:"Personality",inputs:{request:()=>new Tn("Request",""),agent_name:()=>new Dir("Personality","",_i.state.config.personalities).setPort(!1)},outputs:{response:()=>new Tn("Response","")},async calculate({request:t}){console.log(_i.state.config.personalities);let e="";try{e=(await se.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),O1r=L2({type:"RAGNode",title:"RAG",inputs:{request:()=>new Tn("Prompt",""),document_path:()=>new Q4("Document path","").setPort(!1)},outputs:{prompt:()=>new Tn("Prompt with Data","")},async calculate({request:t,document_path:e}){let n="";try{n=(await se.get("/rag",{params:{text:t,doc_path:e}})).data}catch(r){console.error(r)}return{response:n}}}),uO=L2({type:"Task",title:"Task",inputs:{description:()=>new Q4("Task description","").setPort(!1)},outputs:{prompt:()=>new Tn("Prompt")},calculate({description:t}){return{prompt:t}}}),dO=L2({type:"TextDisplayNode",title:"TextDisplay",inputs:{text2display:()=>new Tn("Input","")},outputs:{response:()=>new Pir("Text","")},async calculate({request:t}){}}),TO=L2({type:"LLMNode",title:"LLM",inputs:{request:()=>new Tn("Request","")},outputs:{response:()=>new Tn("Response","")},async calculate({request:t}){console.log(_i.state.config.personalities);let e="";try{e=(await se.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),M1r=L2({type:"MultichoiceNode",title:"Multichoice",inputs:{question:()=>new Tn("Question",""),outputs:()=>new Q4("choices, one per line","","").setPort(!1)},outputs:{response:()=>new Tn("Response","")}}),R1r=xn({components:{"baklava-editor":y1r},setup(){const t=A1r(),e=new tor(t.editor);t.editor.registerNodeType(w1r),t.editor.registerNodeType(uO),t.editor.registerNodeType(O1r),t.editor.registerNodeType(dO),t.editor.registerNodeType(TO),t.editor.registerNodeType(M1r);const n=Symbol();e.events.afterRun.subscribe(n,a=>{e.pause(),Zrr(a,t.editor),e.resume()}),e.start();function r(a,l,c){const u=new a;return t.displayedGraph.addNode(u),u.position.x=l,u.position.y=c,u}const o=r(uO,300,140),i=r(TO,550,140),s=r(dO,850,140);return t.displayedGraph.addConnection(o.outputs.prompt,i.inputs.request),t.displayedGraph.addConnection(i.outputs.response,s.inputs.text2display),{baklava:t,saveGraph:()=>{const a=e.export();localStorage.setItem("myGraph",JSON.stringify(a))},loadGraph:()=>{const a=JSON.parse(localStorage.getItem("myGraph"));e.import(a)}}}}),N1r={style:{width:"100vw",height:"100vh"}};function D1r(t,e,n,r,o,i){const s=Ke("baklava-editor");return N(),D("div",N1r,[Z(s,{"view-model":t.baklava},null,8,["view-model"]),h("button",{onClick:e[0]||(e[0]=(...a)=>t.saveGraph&&t.saveGraph(...a))},"Save Graph"),h("button",{onClick:e[1]||(e[1]=(...a)=>t.loadGraph&&t.loadGraph(...a))},"Load Graph")])}const k1r=Je(R1r,[["render",D1r]]),I1r={},H1r={style:{width:"100vw",height:"100vh"}},P1r=["src"];function V1r(t,e,n,r,o,i){return N(),D("div",H1r,[h("iframe",{src:t.$store.state.config.comfyui_base_url,class:"m-0 p-0 w-full h-full"},null,8,P1r)])}const $1r=Je(I1r,[["render",V1r]]),B1r={},F1r={style:{width:"100vw",height:"100vh"}},U1r=["src"];function G1r(t,e,n,r,o,i){return N(),D("div",F1r,[h("iframe",{src:t.$store.state.config.sd_base_url,class:"m-0 p-0 w-full h-full"},null,8,U1r)])}const q1r=Je(B1r,[["render",G1r]]),j1r={name:"AppCard",props:{app:{type:Object,required:!0},isFavorite:{type:Boolean,default:!1}},methods:{formatDate(t){const e={year:"numeric",month:"short",day:"numeric"};return new Date(t).toLocaleDateString(void 0,e)}}},z1r={class:"app-card flex flex-col h-full"},Y1r={class:"flex-grow"},W1r={class:"flex items-center mb-4"},K1r=["src"],Z1r={class:"font-bold text-xl text-gray-800"},X1r={class:"text-sm text-gray-600"},J1r={class:"text-sm text-gray-600"},ear={class:"text-sm text-gray-600"},tar={class:"text-sm text-gray-600"},nar={class:"text-sm text-gray-600"},rar={class:"mb-4"},oar={class:"text-sm text-gray-600 h-20 overflow-y-auto"},iar={class:"text-sm text-gray-600 mb-2"},sar={key:0,class:"mb-4"},aar={class:"text-xs text-gray-500 italic h-16 overflow-y-auto"},lar={class:"mt-auto pt-4 border-t"},car={class:"flex justify-between items-center flex-wrap"},uar=["title"],dar=["fill"];function Tar(t,e,n,r,o,i){return N(),D("div",z1r,[h("div",Y1r,[h("div",W1r,[h("img",{src:n.app.icon,alt:"App Icon",class:"w-16 h-16 rounded-full border border-gray-300 mr-4"},null,8,K1r),h("div",null,[h("h3",Z1r,ee(n.app.name),1),h("p",X1r,"Author: "+ee(n.app.author),1),h("p",J1r,"Version: "+ee(n.app.version),1),h("p",ear,"Category: "+ee(n.app.category),1),h("p",tar,"Creation date: "+ee(i.formatDate(n.app.creation_date)),1),h("p",nar,"Last update: "+ee(i.formatDate(n.app.last_update_date)),1),h("p",{class:Le(["text-sm",n.app.is_public?"text-green-600":"text-orange-600"])},ee(n.app.is_public?"Public App":"Local App"),3)])]),h("div",rar,[e[10]||(e[10]=h("h4",{class:"font-semibold mb-1 text-gray-700"},"Description:",-1)),h("p",oar,ee(n.app.description),1)]),h("p",iar,"AI Model: "+ee(n.app.model_name),1),n.app.disclaimer&&n.app.disclaimer.trim()!==""?(N(),D("div",sar,[e[11]||(e[11]=h("h4",{class:"font-semibold mb-1 text-gray-700"},"Disclaimer:",-1)),h("p",aar,ee(n.app.disclaimer),1)])):W("",!0)]),h("div",lar,[h("div",car,[h("button",{onClick:e[0]||(e[0]=ie(s=>t.$emit("toggle-favorite",n.app.name),["stop"])),class:"text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out",title:n.isFavorite?"Remove from favorites":"Add to favorites"},[(N(),D("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:n.isFavorite?"currentColor":"none",viewBox:"0 0 24 24",stroke:"currentColor"},e[12]||(e[12]=[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"},null,-1)]),8,dar))],8,uar),n.app.installed?(N(),D("button",{key:0,onClick:e[1]||(e[1]=ie(s=>t.$emit("uninstall",n.app.folder_name),["stop"])),class:"text-red-500 hover:text-red-600 transition duration-300 ease-in-out",title:"Uninstall"},e[13]||(e[13]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)]))):n.app.existsInFolder?(N(),D("button",{key:1,onClick:e[2]||(e[2]=ie(s=>t.$emit("delete",n.app.name),["stop"])),class:"text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out",title:"Delete"},e[14]||(e[14]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)]))):(N(),D("button",{key:2,onClick:e[3]||(e[3]=ie(s=>t.$emit("install",n.app.folder_name),["stop"])),class:"text-blue-500 hover:text-blue-600 transition duration-300 ease-in-out",title:"Install"},e[15]||(e[15]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)]))),n.app.installed?(N(),D("button",{key:3,onClick:e[4]||(e[4]=ie(s=>t.$emit("edit",n.app),["stop"])),class:"text-purple-500 hover:text-purple-600 transition duration-300 ease-in-out",title:"Edit"},e[16]||(e[16]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})],-1)]))):W("",!0),h("button",{onClick:e[5]||(e[5]=ie(s=>t.$emit("download",n.app.folder_name),["stop"])),class:"text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Download"},e[17]||(e[17]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)])),n.app.has_readme?(N(),D("button",{key:4,onClick:e[6]||(e[6]=ie(s=>t.$emit("help",n.app),["stop"])),class:"text-gray-500 hover:text-gray-600 transition duration-300 ease-in-out",title:"Help"},e[18]||(e[18]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M12 21a9 9 0 100-18 9 9 0 000 18z"})],-1)]))):W("",!0),n.app.installed?(N(),D("button",{key:5,onClick:e[7]||(e[7]=ie(s=>t.$emit("open",n.app),["stop"])),class:"text-indigo-500 hover:text-indigo-600 transition duration-300 ease-in-out",title:"Open"},e[19]||(e[19]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)]))):W("",!0),n.app.has_server&&n.app.installed?(N(),D("button",{key:6,onClick:e[8]||(e[8]=ie(s=>t.$emit("start-server",n.app.folder_name),["stop"])),class:"text-teal-500 hover:text-teal-600 transition duration-300 ease-in-out",title:"Start Server"},e[20]||(e[20]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14M12 5l7 7-7 7"})],-1)]))):W("",!0),n.app.has_update?(N(),D("button",{key:7,onClick:e[9]||(e[9]=ie(s=>t.$emit("install",n.app.folder_name),["stop"])),class:"relative text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out animate-pulse",title:"Update Available"},e[21]||(e[21]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),h("span",{class:"absolute top-0 right-0 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-100 transform translate-x-1/2 -translate-y-1/2 bg-red-600 rounded-full"},"!",-1)]))):W("",!0)])])])}const far=Je(j1r,[["render",Tar],["__scopeId","data-v-ae134649"]]),par={components:{AppCard:far},data(){return{apps:[],githubApps:[],favorites:[],selectedCategory:"all",selectedApp:null,appCode:"",loading:!1,message:"",successMessage:!0,searchQuery:"",selectedFile:null,isUploading:!1,error:"",sortBy:"update",sortOrder:"desc",showOnlyInstalled:!1,showOnlyUnInstalled:!1}},computed:{currentCategoryName(){return this.selectedCategory==="all"?"All Apps":this.selectedCategory},combinedApps(){this.apps.map(e=>e.name);const t=new Map(this.apps.map(e=>[e.name,{...e,installed:!0,existsInFolder:!0}]));return this.githubApps.forEach(e=>{t.has(e.name)||t.set(e.name,{...e,installed:!1,existsInFolder:!1})}),Array.from(t.values())},categories(){return[...new Set(this.combinedApps.map(t=>t.category))]},filteredApps(){return this.combinedApps.filter(t=>{const e=t.name.toLowerCase().includes(this.searchQuery.toLowerCase())||t.description.toLowerCase().includes(this.searchQuery.toLowerCase())||t.author.toLowerCase().includes(this.searchQuery.toLowerCase()),n=this.selectedCategory==="all"||t.category===this.selectedCategory,r=this.showOnlyInstalled&&t.installed||this.showOnlyUnInstalled&&!t.installed||!this.showOnlyInstalled&&!this.showOnlyUnInstalled;return e&&n&&r})},sortedAndFilteredApps(){return[...this.filteredApps].sort((t,e)=>{let n=0;switch(this.sortBy){case"name":n=t.name.localeCompare(e.name);break;case"author":n=t.author.localeCompare(e.author);break;case"date":n=this.getDateValue(t.creation_date)-this.getDateValue(e.creation_date);break;case"update":n=this.getDateValue(t.last_update_date)-this.getDateValue(e.last_update_date);break}return this.sortOrder==="asc"?n:-n})},favoriteApps(){return this.combinedApps.filter(t=>this.favorites.includes(t.appName))}},methods:{getDateValue(t){if(!t)return 0;const e=new Date(t);return isNaN(e.getTime())?0:e.getTime()},toggleSortOrder(){this.sortOrder=this.sortOrder==="asc"?"desc":"asc"},toggleFavorite(t){console.log("Toggling favorite"),console.log(t);const e=this.favorites.indexOf(t);e===-1?this.favorites.push(t):this.favorites.splice(e,1),this.saveFavoritesToLocalStorage()},saveFavoritesToLocalStorage(){localStorage.setItem("appZooFavorites",JSON.stringify(this.favorites))},loadFavoritesFromLocalStorage(){const t=localStorage.getItem("appZooFavorites");console.log("savedFavorites",t),t&&(this.favorites=JSON.parse(t))},startServer(t){const e={client_id:this.$store.state.client_id,app_name:t};this.$store.state.messageBox.showBlockingMessage(`Loading server. -This may take some time the first time as some libraries need to be installed.`),se.post("/apps/start_server",e).then(n=>{this.$store.state.messageBox.hideMessage(),console.log("Server start initiated:",n.data.message),this.$notify({type:"success",title:"Server Starting",text:n.data.message})}).catch(n=>{var r,o;this.$store.state.messageBox.hideMessage(),console.error("Error starting server:",n),this.$notify({type:"error",title:"Server Start Failed",text:((o=(r=n.response)==null?void 0:r.data)==null?void 0:o.detail)||"An error occurred while starting the server"})})},triggerFileInput(){this.$refs.fileInput.click()},onFileSelected(t){this.selectedFile=t.target.files[0],this.message="",this.error="",this.uploadApp()},async uploadApp(){var e,n;if(!this.selectedFile){this.error="Please select a file to upload.";return}this.isUploading=!0,this.message="",this.error="";const t=new FormData;t.append("file",this.selectedFile),t.append("client_id",this.$store.state.client_id);try{const r=await se.post("/upload_app",t,{headers:{"Content-Type":"multipart/form-data"}});this.message=r.data.message,this.$refs.fileInput.value="",this.selectedFile=null}catch(r){console.error("Error uploading app:",r),this.error=((n=(e=r.response)==null?void 0:e.data)==null?void 0:n.detail)||"Failed to upload the app. Please try again."}finally{this.isUploading=!1}},async fetchApps(){this.loading=!0;try{const t=await se.get("/apps");this.apps=t.data,this.showMessage("Refresh successful!",!0)}catch{this.showMessage("Failed to refresh apps.",!1)}finally{this.loading=!1}},async openAppsFolder(){this.loading=!0;try{console.log("opening apps folder");const t=await se.post("/show_apps_folder",{client_id:this.$store.state.client_id})}catch{this.showMessage("Failed to open apps folder.",!1)}finally{this.loading=!1}},async fetchGithubApps(){this.loading=!0;try{const t=await se.get("/github/apps");this.githubApps=t.data.apps,await this.fetchApps()}catch{this.showMessage("Failed to refresh GitHub apps.",!1)}finally{this.loading=!1}},async handleAppClick(t){if(t.installed){this.selectedApp=t;const e=await se.get(`/apps/${t.folder_name}/README.md`);this.appCode=Mt(e.data)}else this.showMessage(`Please install ${t.folder_name} to view its code.`,!1)},backToZoo(){this.selectedApp=null,this.appCode=""},async installApp(t){this.loading=!0,this.$store.state.messageBox.showBlockingMessage(`Installing app ${t}`);try{await se.post(`/install/${t}`,{client_id:this.$store.state.client_id}),this.showMessage("Installation succeeded!",!0)}catch{this.showMessage("Installation failed.",!1)}finally{this.loading=!1,this.fetchApps(),this.fetchGithubApps(),this.$store.state.messageBox.hideMessage()}},async uninstallApp(t){this.loading=!0;try{await se.post(`/uninstall/${t}`,{client_id:this.$store.state.client_id}),this.showMessage("Uninstallation succeeded!",!0)}catch{this.showMessage("Uninstallation failed.",!1)}finally{this.loading=!1,this.fetchApps()}},async deleteApp(t){this.loading=!0;try{await se.post(`/delete/${t}`,{client_id:this.$store.state.client_id}),this.showMessage("Deletion succeeded!",!0)}catch{this.showMessage("Deletion failed.",!1)}finally{this.loading=!1,this.fetchApps()}},async editApp(t){this.loading=!0;try{const e=await se.post("/open_app_in_vscode",{client_id:this.$store.state.client_id,app_name:t.folder_name});this.showMessage(e.data.message,!0)}catch{this.showMessage("Failed to open folder in VSCode.",!1)}finally{this.loading=!1}},async downloadApp(t){this.isLoading=!0,this.error=null;try{const e=await se.post("/download_app",{client_id:this.$store.state.client_id,app_name:t},{responseType:"arraybuffer"}),n=e.headers["content-disposition"],r=n&&n.match(/filename="?(.+)"?/i),o=r?r[1]:"app.zip",i=new Blob([e.data],{type:"application/zip"}),s=window.URL.createObjectURL(i),a=document.createElement("a");a.style.display="none",a.href=s,a.download=o,document.body.appendChild(a),a.click(),window.URL.revokeObjectURL(s),document.body.removeChild(a)}catch(e){console.error("Error downloading app:",e),this.error="Failed to download the app. Please try again."}finally{this.isLoading=!1}},openApp(t){t.installed?window.open(`/apps/${t.folder_name}/index.html?client_id=${this.$store.state.client_id}`,"_blank"):this.showMessage(`Please install ${t.name} before opening.`,!1)},showMessage(t,e){this.message=t,this.successMessage=e,setTimeout(()=>{this.message=""},3e3)}},mounted(){this.fetchGithubApps(),this.loadFavoritesFromLocalStorage()}},har={class:"app-zoo background-color w-full p-6 pt-12 min-h-screen overflow-y-auto"},mar={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},gar={class:"flex flex-wrap items-center justify-between gap-4"},_ar={class:"flex items-center space-x-4"},Qar=["disabled"],yar={key:0},bar={key:1,class:"error"},Ear={class:"relative flex-grow max-w-md"},xar={class:"flex items-center space-x-4"},Sar=["value"],Lar={class:"flex items-center space-x-4"},Car={for:"installed-only",class:"font-semibold"},Aar={for:"installed-only",class:"font-semibold"},war={class:"flex items-center space-x-4"},Oar={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},Mar={key:1,class:"pb-20"},Rar={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-8"},Nar={class:"text-2xl font-bold mb-4"},Dar={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"},kar={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"},Iar={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},Har={class:"flex justify-between items-center mb-4"},Par={class:"text-2xl font-bold"},Var=["srcdoc"],$ar={key:1,class:"text-center text-red-500"};function Bar(t,e,n,r,o,i){const s=Ke("app-card");return N(),D("div",har,[h("nav",mar,[h("div",gar,[h("div",_ar,[h("button",{onClick:e[0]||(e[0]=(...a)=>i.fetchGithubApps&&i.fetchGithubApps(...a)),class:"btn btn-primary","aria-label":"Refresh apps from GitHub"},e[11]||(e[11]=[h("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),Be(" Refresh ")])),h("button",{onClick:e[1]||(e[1]=(...a)=>i.openAppsFolder&&i.openAppsFolder(...a)),class:"btn btn-secondary","aria-label":"Open apps folder"},e[12]||(e[12]=[h("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z"})],-1),Be(" Open Folder ")])),h("input",{type:"file",onChange:e[2]||(e[2]=(...a)=>i.onFileSelected&&i.onFileSelected(...a)),accept:".zip",ref:"fileInput",style:{display:"none"}},null,544),h("button",{onClick:e[3]||(e[3]=(...a)=>i.triggerFileInput&&i.triggerFileInput(...a)),disabled:o.isUploading,class:"btn-secondary text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Upload App"},ee(o.isUploading?"Uploading...":"Upload App"),9,Qar)]),o.message?(N(),D("p",yar,ee(o.message),1)):W("",!0),o.error?(N(),D("p",bar,ee(o.error),1)):W("",!0),h("div",Ear,[Y(h("input",{"onUpdate:modelValue":e[4]||(e[4]=a=>o.searchQuery=a),placeholder:"Search apps...",class:"w-full border-b-2 border-gray-300 px-4 py-2 pl-10 focus:outline-none focus:border-blue-500 transition duration-300 ease-in-out","aria-label":"Search apps"},null,512),[[fe,o.searchQuery]]),e[13]||(e[13]=h("svg",{class:"w-5 h-5 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1))]),h("div",xar,[e[15]||(e[15]=h("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Y(h("select",{id:"category-select","onUpdate:modelValue":e[5]||(e[5]=a=>o.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[14]||(e[14]=h("option",{value:"all"},"All Categories",-1)),(N(!0),D(Ae,null,Ge(i.categories,a=>(N(),D("option",{key:a,value:a},ee(a),9,Sar))),128))],512),[[$t,o.selectedCategory]])]),h("div",Lar,[h("label",Car,[Y(h("input",{id:"installed-only",type:"checkbox","onUpdate:modelValue":e[6]||(e[6]=a=>o.showOnlyInstalled=a),class:"mr-2"},null,512),[[qe,o.showOnlyInstalled]]),e[16]||(e[16]=Be(" Show only installed apps "))]),h("label",Aar,[Y(h("input",{id:"uninstalled-only",type:"checkbox","onUpdate:modelValue":e[7]||(e[7]=a=>o.showOnlyUnInstalled=a),class:"mr-2"},null,512),[[qe,o.showOnlyUnInstalled]]),e[17]||(e[17]=Be(" Show only non installed apps "))])]),h("div",war,[e[19]||(e[19]=h("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Y(h("select",{id:"sort-select","onUpdate:modelValue":e[8]||(e[8]=a=>o.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[18]||(e[18]=[h("option",{value:"name"},"Name",-1),h("option",{value:"author"},"Author",-1),h("option",{value:"date"},"Creation Date",-1),h("option",{value:"update"},"Last Update",-1)]),512),[[$t,o.sortBy]]),h("button",{onClick:e[9]||(e[9]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},ee(o.sortOrder==="asc"?"↑":"↓"),1)])])]),o.loading?(N(),D("div",Oar,e[20]||(e[20]=[h("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),h("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),D("div",Mar,[e[21]||(e[21]=h("h2",{class:"text-2xl font-bold mb-4"},"Favorite Apps",-1)),h("div",Rar,[(N(!0),D(Ae,null,Ge(i.favoriteApps,a=>(N(),at(s,{key:a.appName,app:a,onToggleFavorite:i.toggleFavorite,onInstall:i.installApp,onUninstall:i.uninstallApp,onDelete:i.deleteApp,onEdit:i.editApp,onDownload:i.downloadApp,onHelp:i.handleAppClick,onOpen:i.openApp,onStartServer:i.startServer},null,8,["app","onToggleFavorite","onInstall","onUninstall","onDelete","onEdit","onDownload","onHelp","onOpen","onStartServer"]))),128))]),h("h2",Nar,ee(i.currentCategoryName)+" ("+ee(i.sortedAndFilteredApps.length)+")",1),h("div",Dar,[(N(!0),D(Ae,null,Ge(i.sortedAndFilteredApps,a=>(N(),at(s,{key:a.name,app:a,onToggleFavorite:i.toggleFavorite,onInstall:i.installApp,onUninstall:i.uninstallApp,onDelete:i.deleteApp,onEdit:i.editApp,onDownload:i.downloadApp,onHelp:i.handleAppClick,onOpen:i.openApp,onStartServer:i.startServer},null,8,["app","onToggleFavorite","onInstall","onUninstall","onDelete","onEdit","onDownload","onHelp","onOpen","onStartServer"]))),128))])])),o.selectedApp?(N(),D("div",kar,[h("div",Iar,[h("div",Har,[h("h2",Par,ee(o.selectedApp.name),1),h("button",{onClick:e[10]||(e[10]=(...a)=>i.backToZoo&&i.backToZoo(...a)),class:"bg-gray-300 hover:bg-gray-400 px-4 py-2 rounded-lg transition duration-300 ease-in-out"},"Close")]),o.appCode?(N(),D("iframe",{key:0,srcdoc:o.appCode,class:"flex-grow border-none"},null,8,Var)):(N(),D("p",$ar,"Please install this app to view its code."))])])):W("",!0),o.message?(N(),D("div",{key:3,class:Le(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":o.successMessage,"bg-red-100 text-red-800":!o.successMessage}])},ee(o.message),3)):W("",!0)])}const Far=Je(par,[["render",Bar]]),Uar={components:{PersonalityEntry:tH},data(){return{personalities:[],githubApps:[],favorites:[],selectedCategory:"all",selectedApp:null,appCode:"",loading:!1,message:"",successMessage:!0,searchQuery:"",selectedFile:null,isUploading:!1,error:"",sortBy:"name",sortOrder:"asc"}},computed:{currentCategoryName(){return this.selectedCategory=="all"?"All Personalities":this.selectedCategory},configFile:{get(){return this.$store.state.config},set(t){this.$store.commit("setConfig",t)}},combinedApps(){this.personalities.map(e=>e.name);const t=new Map(this.personalities.map(e=>[e.name,{...e,installed:!0,existsInFolder:!0}]));return this.githubApps.forEach(e=>{t.has(e.name)||t.set(e.name,{...e,installed:!1,existsInFolder:!1})}),Array.from(t.values())},categories(){return[...new Set(this.combinedApps.map(t=>t.category))].sort((t,e)=>t.localeCompare(e))},filteredApps(){return this.combinedApps.filter(t=>{const e=t.name.toLowerCase().includes(this.searchQuery.toLowerCase())||t.author.toLowerCase().includes(this.searchQuery.toLowerCase())||t.description.toLowerCase().includes(this.searchQuery.toLowerCase()),n=this.selectedCategory==="all"||t.category===this.selectedCategory;return e&&n})},sortedAndFilteredPersonalities(){return[...this.filteredApps].sort((t,e)=>{let n=0;switch(this.sortBy){case"name":n=t.name.localeCompare(e.name);break;case"author":n=t.author.localeCompare(e.author);break;case"date":n=this.getDateValue(t.creation_date)-this.getDateValue(e.creation_date);break;case"update":n=this.getDateValue(t.last_update_date)-this.getDateValue(e.last_update_date);break}return this.sortOrder==="asc"?n:-n})},favoriteApps(){return this.combinedApps.filter(t=>this.favorites.includes(t.uid))}},methods:{getDateValue(t){if(!t)return 0;const e=new Date(t);return isNaN(e.getTime())?0:e.getTime()},async onPersonalitySelected(t){if(console.log("on pers",t),this.isLoading&&this.$store.state.toast.showToast("Loading... please wait",4,!1),this.isLoading=!0,console.log("selecting ",t),t){if(t.selected){this.$store.state.toast.showToast("Personality already selected",4,!0),this.isLoading=!1;return}let e=t.language==null?t.full_path:t.full_path+":"+t.language;if(console.log("pth",e),t.isMounted&&this.configFile.personalities.includes(e)){const n=await this.select_personality(t);console.log("pers is mounted",n),n&&n.status&&n.active_personality_id>-1?this.$store.state.toast.showToast(`Selected personality: +This is likely a Baklava internal issue. Please report it on GitHub.`);return e.get(n)}}const ror=["INPUT","TEXTAREA","SELECT"];function OH(t){return ror.includes(t.tagName)}let $h=null;function oor(t){$h=t}function Pr(){if(!$h)throw new Error("providePlugin() must be called before usePlugin()");return{viewModel:$h}}function oo(){const{viewModel:t}=Pr();return{graph:K6(t.value,"displayedGraph"),switchGraph:t.value.switchGraph}}function MH(t){const{graph:e}=oo(),n=ot(null),r=ot(null);return{dragging:Ze(()=>!!n.value),onPointerDown:l=>{n.value={x:l.pageX,y:l.pageY},r.value={x:t.value.x,y:t.value.y}},onPointerMove:l=>{if(n.value){const c=l.pageX-n.value.x,u=l.pageY-n.value.y;t.value.x=r.value.x+c/e.value.scaling,t.value.y=r.value.y+u/e.value.scaling}},onPointerUp:()=>{n.value=null,r.value=null}}}function RH(t,e,n){if(!e.template)return!1;if(Ja(e.template)===n)return!0;const r=t.graphTemplates.find(i=>Ja(i)===n);return r?r.nodes.filter(i=>i.type.startsWith(x3)).some(i=>RH(t,e,i.type)):!1}function NH(t){return Ze(()=>{const e=Array.from(t.value.editor.nodeTypes.entries()),n=new Set(e.map(([,o])=>o.category)),r=[];for(const o of n.values()){let i=e.filter(([,s])=>s.category===o);t.value.displayedGraph.template?i=i.filter(([s])=>!RH(t.value.editor,t.value.displayedGraph,s)):i=i.filter(([s])=>![Za,Xa].includes(s)),i.length>0&&r.push({name:o,nodeTypes:Object.fromEntries(i)})}return r.sort((o,i)=>o.name==="default"?-1:i.name==="default"||o.name>i.name?1:-1),r})}function DH(){const{graph:t}=oo();return{transform:(n,r)=>{const o=n/t.value.scaling-t.value.panning.x,i=r/t.value.scaling-t.value.panning.y;return[o,i]}}}function ior(){const{graph:t}=oo();let e=[],n=-1,r={x:0,y:0};const o=Ze(()=>t.value.panning),i=MH(o),s=Ze(()=>({"transform-origin":"0 0",transform:`scale(${t.value.scaling}) translate(${t.value.panning.x}px, ${t.value.panning.y}px)`})),a=(T,g,m)=>{const _=[T/t.value.scaling-t.value.panning.x,g/t.value.scaling-t.value.panning.y],Q=[T/m-t.value.panning.x,g/m-t.value.panning.y],v=[Q[0]-_[0],Q[1]-_[1]];t.value.panning.x+=v[0],t.value.panning.y+=v[1],t.value.scaling=m},l=T=>{T.preventDefault();let g=T.deltaY;T.deltaMode===1&&(g*=32);const m=t.value.scaling*(1-g/3e3);a(T.offsetX,T.offsetY,m)},c=()=>({ax:e[0].clientX,ay:e[0].clientY,bx:e[1].clientX,by:e[1].clientY});return{styles:s,...i,onPointerDown:T=>{if(e.push(T),i.onPointerDown(T),e.length===2){const{ax:g,ay:m,bx:_,by:Q}=c();r={x:g+(_-g)/2,y:m+(Q-m)/2}}},onPointerMove:T=>{for(let g=0;g0){const E=t.value.scaling*(1+(b-n)/500);a(r.x,r.y,E)}n=b}else i.onPointerMove(T)},onPointerUp:T=>{e=e.filter(g=>g.pointerId!==T.pointerId),n=-1,i.onPointerUp()},onMouseWheel:l}}var qr=(t=>(t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.FORBIDDEN=2]="FORBIDDEN",t))(qr||{});const kH=Symbol();function sor(){const{graph:t}=oo(),e=ot(null),n=ot(null),r=a=>{e.value&&(e.value.mx=a.offsetX/t.value.scaling-t.value.panning.x,e.value.my=a.offsetY/t.value.scaling-t.value.panning.y)},o=()=>{if(n.value){if(e.value)return;const a=t.value.connections.find(l=>l.to===n.value);n.value.isInput&&a?(e.value={status:qr.NONE,from:a.from},t.value.removeConnection(a)):e.value={status:qr.NONE,from:n.value},e.value.mx=void 0,e.value.my=void 0}},i=()=>{if(e.value&&n.value){if(e.value.from===n.value)return;t.value.addConnection(e.value.from,e.value.to)}e.value=null},s=a=>{if(n.value=a??null,a&&e.value){e.value.to=a;const l=t.value.checkConnection(e.value.from,e.value.to);if(e.value.status=l.connectionAllowed?qr.ALLOWED:qr.FORBIDDEN,l.connectionAllowed){const c=l.connectionsInDanger.map(u=>u.id);t.value.connections.forEach(u=>{c.includes(u.id)&&(u.isInDanger=!0)})}}else!a&&e.value&&(e.value.to=void 0,e.value.status=qr.NONE,t.value.connections.forEach(l=>{l.isInDanger=!1}))};return Sa(kH,{temporaryConnection:e,hoveredOver:s}),{temporaryConnection:e,onMouseMove:r,onMouseDown:o,onMouseUp:i,hoveredOver:s}}function aor(t){const e=ot(!1),n=ot(0),r=ot(0),o=NH(t),{transform:i}=DH(),s=Ze(()=>{let u=[];const d={};for(const T of o.value){const g=Object.entries(T.nodeTypes).map(([m,_])=>({label:_.title,value:"addNode:"+m}));T.name==="default"?u=g:d[T.name]=g}const f=[...Object.entries(d).map(([T,g])=>({label:T,submenu:g}))];return f.length>0&&u.length>0&&f.push({isDivider:!0}),f.push(...u),f}),a=Ze(()=>t.value.settings.contextMenu.additionalItems.length===0?s.value:[{label:"Add node",submenu:s.value},...t.value.settings.contextMenu.additionalItems.map(u=>"isDivider"in u||"submenu"in u?u:{label:u.label,value:"command:"+u.command,disabled:!t.value.commandHandler.canExecuteCommand(u.command)})]);function l(u){const d=u.target;if(!(d instanceof Element)||OH(d))return;u.preventDefault(),e.value=!0;const f=d.getBoundingClientRect(),g=d.closest(".baklava-editor").getBoundingClientRect();n.value=f.x+u.offsetX-g.x,r.value=f.y+u.offsetY-g.y}function c(u){if(u.startsWith("addNode:")){const d=u.substring(8),f=t.value.editor.nodeTypes.get(d);if(!f)return;const T=cr(new f.type);t.value.displayedGraph.addNode(T);const[g,m]=i(n.value,r.value);T.position.x=g,T.position.y=m}else if(u.startsWith("command:")){const d=u.substring(8);t.value.commandHandler.canExecuteCommand(d)&&t.value.commandHandler.executeCommand(d)}}return{show:e,x:n,y:r,items:a,open:l,onClick:c}}const j6="START_SELECTION_BOX";function lor(t){const{viewModel:e}=Pr(),{graph:n}=oo(),r=Ze(()=>n.value.nodes),o=ot(!1),i=ot(!1),s=ot([0,0]),a=ot([0,0]);Bn(e,()=>{e.value.commandHandler.hasCommand(j6)||(e.value.commandHandler.registerCommand(j6,{canExecute:()=>!0,execute(){o.value=!0}}),e.value.commandHandler.registerHotkey(["b"],j6))},{immediate:!0});function l(Q){return[Q.clientX-t.value.getBoundingClientRect().left,Q.clientY-t.value.getBoundingClientRect().top]}function c(Q){return o.value?(i.value=!0,o.value=!1,s.value=l(Q),a.value=l(Q),document.addEventListener("pointermove",u),document.addEventListener("pointerup",d),!0):!1}function u(Q){s.value=l(Q)}function d(Q){document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",d),s.value=l(Q),i.value=!1;const v=f();for(const y of v)e.value.displayedGraph.selectedNodes.push(y)}function f(){const Q=T(),y=document.querySelector(".baklava-editor").getBoundingClientRect();return r.value.filter(b=>{const E=g(b,y);return m(Q,E)})}function T(){return{left:Math.min(s.value[0],a.value[0]),top:Math.min(s.value[1],a.value[1]),right:Math.max(s.value[0],a.value[0]),bottom:Math.max(s.value[1],a.value[1])}}function g(Q,v){const y=document.getElementById(Q.id),b=y?y.getBoundingClientRect():{x:0,y:0,width:0,height:0},E=b.x-v.left,S=b.y-v.top;return{left:E,top:S,right:E+b.width,bottom:S+b.height}}function m(Q,v){return Q.leftv.left&&Q.topv.top}function _(){return{width:Math.abs(a.value[0]-s.value[0])+"px",height:Math.abs(a.value[1]-s.value[1])+"px",left:(a.value[0]>s.value[0]?s.value[0]:a.value[0])+"px",top:(a.value[1]>s.value[1]?s.value[1]:a.value[1])+"px"}}return cr({startSelection:o,isSelecting:i,start:s,end:a,onPointerDown:c,getStyles:_})}const cor=xn({setup(){const{viewModel:t}=Pr(),{graph:e}=oo();return{styles:Ze(()=>{const r=t.value.settings.background,o=e.value.panning.x*e.value.scaling,i=e.value.panning.y*e.value.scaling,s=e.value.scaling*r.gridSize,a=s/r.gridDivision,l=`${s}px ${s}px, ${s}px ${s}px`,c=e.value.scaling>r.subGridVisibleThreshold?`, ${a}px ${a}px, ${a}px ${a}px`:"";return{backgroundPosition:`left ${o}px top ${i}px`,backgroundSize:`${l} ${c}`}})}}}),gn=(t,e)=>{const n=t.__vccOpts||t;for(const[r,o]of e)n[r]=o;return n};function uor(t,e,n,r,o,i){return N(),D("div",{class:"background",style:zt(t.styles)},null,4)}const dor=gn(cor,[["render",uor]]);function Tor(t){return bO()?(OP(t),!0):!1}function k_(t){return typeof t=="function"?t():ht(t)}const IH=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const por=Object.prototype.toString,hor=t=>por.call(t)==="[object Object]",z6=()=>{},mor=gor();function gor(){var t,e;return IH&&((t=window==null?void 0:window.navigator)==null?void 0:t.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((e=window==null?void 0:window.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function _or(t,e,n=!1){return e.reduce((r,o)=>(o in t&&(!n||t[o]!==void 0)&&(r[o]=t[o]),r),{})}function Qor(t,e={}){if(!An(t))return iV(t);const n=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const r in t.value)n[r]=oV(()=>({get(){return t.value[r]},set(o){var i;if((i=k_(e.replaceRef))!=null?i:!0)if(Array.isArray(t.value)){const a=[...t.value];a[r]=o,t.value=a}else{const a={...t.value,[r]:o};Object.setPrototypeOf(a,Object.getPrototypeOf(t.value)),t.value=a}else t.value[r]=o}}));return n}function $l(t){var e;const n=k_(t);return(e=n==null?void 0:n.$el)!=null?e:n}const I_=IH?window:void 0;function e3(...t){let e,n,r,o;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,o]=t,e=I_):[e,n,r,o]=t,!e)return z6;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],s=()=>{i.forEach(u=>u()),i.length=0},a=(u,d,f,T)=>(u.addEventListener(d,f,T),()=>u.removeEventListener(d,f,T)),l=Bn(()=>[$l(e),k_(o)],([u,d])=>{if(s(),!u)return;const f=hor(d)?{...d}:d;i.push(...n.flatMap(T=>r.map(g=>a(u,T,g,f))))},{immediate:!0,flush:"post"}),c=()=>{l(),s()};return Tor(c),c}let rO=!1;function HH(t,e,n={}){const{window:r=I_,ignore:o=[],capture:i=!0,detectIframe:s=!1}=n;if(!r)return z6;mor&&!rO&&(rO=!0,Array.from(r.document.body.children).forEach(f=>f.addEventListener("click",z6)),r.document.documentElement.addEventListener("click",z6));let a=!0;const l=f=>o.some(T=>{if(typeof T=="string")return Array.from(r.document.querySelectorAll(T)).some(g=>g===f.target||f.composedPath().includes(g));{const g=$l(T);return g&&(f.target===g||f.composedPath().includes(g))}}),u=[e3(r,"click",f=>{const T=$l(t);if(!(!T||T===f.target||f.composedPath().includes(T))){if(f.detail===0&&(a=!l(f)),!a){a=!0;return}e(f)}},{passive:!0,capture:i}),e3(r,"pointerdown",f=>{const T=$l(t);a=!l(f)&&!!(T&&!f.composedPath().includes(T))},{passive:!0}),s&&e3(r,"blur",f=>{setTimeout(()=>{var T;const g=$l(t);((T=r.document.activeElement)==null?void 0:T.tagName)==="IFRAME"&&!(g!=null&&g.contains(r.document.activeElement))&&e(f)},0)})].filter(Boolean);return()=>u.forEach(f=>f())}const PH={x:0,y:0,pointerId:0,pressure:0,tiltX:0,tiltY:0,width:0,height:0,twist:0,pointerType:null},vor=Object.keys(PH);function yor(t={}){const{target:e=I_}=t,n=ot(!1),r=ot(t.initialValue||{});Object.assign(r.value,PH,r.value);const o=i=>{n.value=!0,!(t.pointerTypes&&!t.pointerTypes.includes(i.pointerType))&&(r.value=_or(i,vor,!1))};if(e){const i={passive:!0};e3(e,["pointerdown","pointermove","pointerup"],o,i),e3(e,"pointerleave",()=>n.value=!1,i)}return{...Qor(r),isInside:n}}const bor=["onMouseenter","onMouseleave","onClick"],Eor={class:"flex-fill"},xor={key:0,class:"__submenu-icon",style:{"line-height":"1em"}},Sor=h("svg",{width:"13",height:"13",viewBox:"-60 120 250 250"},[h("path",{d:"M160.875 279.5625 L70.875 369.5625 L70.875 189.5625 L160.875 279.5625 Z",stroke:"none",fill:"white"})],-1),Lor=[Sor],H_=xn({__name:"ContextMenu",props:{modelValue:{type:Boolean},items:{},x:{default:0},y:{default:0},isNested:{type:Boolean,default:!1},isFlipped:{default:()=>({x:!1,y:!1})},flippable:{type:Boolean,default:!1}},emits:["update:modelValue","click"],setup(t,{emit:e}){const n=t,r=e;let o=null;const i=ot(null),s=ot(-1),a=ot(0),l=ot({x:!1,y:!1}),c=Ze(()=>n.flippable&&(l.value.x||n.isFlipped.x)),u=Ze(()=>n.flippable&&(l.value.y||n.isFlipped.y)),d=Ze(()=>{const v={};return n.isNested||(v.top=(u.value?n.y-a.value:n.y)+"px",v.left=n.x+"px"),v}),f=Ze(()=>({"--flipped-x":c.value,"--flipped-y":u.value,"--nested":n.isNested})),T=Ze(()=>n.items.map(v=>({...v,hover:!1})));Bn([()=>n.y,()=>n.items],()=>{var v,y,b,E;a.value=n.items.length*30;const S=((y=(v=i.value)==null?void 0:v.parentElement)==null?void 0:y.offsetWidth)??0,L=((E=(b=i.value)==null?void 0:b.parentElement)==null?void 0:E.offsetHeight)??0;l.value.x=!n.isNested&&n.x>S*.75,l.value.y=!n.isNested&&n.y+a.value>L-20}),HH(i,()=>{n.modelValue&&r("update:modelValue",!1)});const g=v=>{!v.submenu&&v.value&&(r("click",v.value),r("update:modelValue",!1))},m=v=>{r("click",v),s.value=-1,n.isNested||r("update:modelValue",!1)},_=(v,y)=>{n.items[y].submenu&&(s.value=y,o!==null&&(clearTimeout(o),o=null))},Q=(v,y)=>{n.items[y].submenu&&(o=window.setTimeout(()=>{s.value=-1,o=null},200))};return(v,y)=>{const b=Ke("ContextMenu",!0);return N(),at(lr,{name:"slide-fade"},{default:Se(()=>[Y(h("div",{ref_key:"el",ref:i,class:Le(["baklava-context-menu",f.value]),style:zt(d.value)},[(N(!0),D(Ae,null,Ge(T.value,(E,S)=>(N(),D(Ae,null,[E.isDivider?(N(),D("div",{key:`d-${S}`,class:"divider"})):(N(),D("div",{key:`i-${S}`,class:Le(["item",{submenu:!!E.submenu,"--disabled":!!E.disabled}]),onMouseenter:L=>_(L,S),onMouseleave:L=>Q(L,S),onClick:ie(L=>g(E),["stop","prevent"])},[h("div",Eor,ee(E.label),1),E.submenu?(N(),D("div",xor,Lor)):W("",!0),E.submenu?(N(),at(b,{key:1,"model-value":s.value===S,items:E.submenu,"is-nested":!0,"is-flipped":{x:c.value,y:u.value},flippable:v.flippable,onClick:m},null,8,["model-value","items","is-flipped","flippable"])):W("",!0)],42,bor))],64))),256))],6),[[gt,v.modelValue]])]),_:1})}}}),Cor={},Aor={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"16",height:"16",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},wor=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Oor=h("circle",{cx:"12",cy:"12",r:"1"},null,-1),Mor=h("circle",{cx:"12",cy:"19",r:"1"},null,-1),Ror=h("circle",{cx:"12",cy:"5",r:"1"},null,-1),Nor=[wor,Oor,Mor,Ror];function Dor(t,e){return N(),D("svg",Aor,Nor)}const VH=gn(Cor,[["render",Dor]]),kor=["id"],Ior={key:0,class:"__tooltip"},Hor={key:2,class:"align-middle"},oO=xn({__name:"NodeInterface",props:{node:{},intf:{}},setup(t){const e=(_,Q=100)=>{const v=typeof(_==null?void 0:_.toString)=="function"?String(_):"";return v.length>Q?v.slice(0,Q)+"...":v},n=t,{viewModel:r}=Pr(),{hoveredOver:o,temporaryConnection:i}=Wr(kH),s=ot(null),a=Ze(()=>n.intf.connectionCount>0),l=ot(!1),c=Ze(()=>r.value.settings.displayValueOnHover&&l.value),u=Ze(()=>({"--input":n.intf.isInput,"--output":!n.intf.isInput,"--connected":a.value})),d=Ze(()=>n.intf.component&&(!n.intf.isInput||!n.intf.port||n.intf.connectionCount===0)),f=()=>{l.value=!0,o(n.intf)},T=()=>{l.value=!1,o(void 0)},g=()=>{s.value&&r.value.hooks.renderInterface.execute({intf:n.intf,el:s.value})},m=()=>{const _=r.value.displayedGraph.sidebar;_.nodeId=n.node.id,_.optionName=n.intf.name,_.visible=!0};return Yo(g),C3(g),(_,Q)=>{var v;return N(),D("div",{id:_.intf.id,ref_key:"el",ref:s,class:Le(["baklava-node-interface",u.value])},[_.intf.port?(N(),D("div",{key:0,class:Le(["__port",{"--selected":((v=ht(i))==null?void 0:v.from)===_.intf}]),onPointerover:f,onPointerout:T},[Qn(_.$slots,"portTooltip",{showTooltip:c.value},()=>[c.value===!0?(N(),D("span",Ior,ee(e(_.intf.value)),1)):W("",!0)])],34)):W("",!0),d.value?(N(),at(pc(_.intf.component),{key:1,modelValue:_.intf.value,"onUpdate:modelValue":Q[0]||(Q[0]=y=>_.intf.value=y),node:_.node,intf:_.intf,onOpenSidebar:m},null,40,["modelValue","node","intf"])):(N(),D("span",Hor,ee(_.intf.name),1))],10,kor)}}}),Por=["id","data-node-type"],Vor={class:"__title-label"},$or={class:"__menu"},Bor={class:"__outputs"},For={class:"__inputs"},Uor=xn({__name:"Node",props:{node:{},selected:{type:Boolean,default:!1},dragging:{type:Boolean}},emits:["select","start-drag"],setup(t,{emit:e}){const n=t,r=e,{viewModel:o}=Pr(),{graph:i,switchGraph:s}=oo(),a=ot(null),l=ot(!1),c=ot(""),u=ot(null),d=ot(!1),f=ot(!1),T=Ze(()=>{const I=[{value:"rename",label:"Rename"},{value:"delete",label:"Delete"}];return n.node.type.startsWith(x3)&&I.push({value:"editSubgraph",label:"Edit Subgraph"}),I}),g=Ze(()=>({"--selected":n.selected,"--dragging":n.dragging,"--two-column":!!n.node.twoColumn})),m=Ze(()=>({"--reverse-y":n.node.reverseY??o.value.settings.nodes.reverseY})),_=Ze(()=>{var I,V;return{top:`${((I=n.node.position)==null?void 0:I.y)??0}px`,left:`${((V=n.node.position)==null?void 0:V.x)??0}px`,"--width":`${n.node.width??o.value.settings.nodes.defaultWidth}px`}}),Q=Ze(()=>Object.values(n.node.inputs).filter(I=>!I.hidden)),v=Ze(()=>Object.values(n.node.outputs).filter(I=>!I.hidden)),y=()=>{r("select")},b=I=>{n.selected||y(),r("start-drag",I)},E=()=>{f.value=!0},S=async I=>{var V;switch(I){case"delete":i.value.removeNode(n.node);break;case"rename":c.value=n.node.title,l.value=!0,await Re(),(V=u.value)==null||V.focus();break;case"editSubgraph":s(n.node.template);break}},L=()=>{n.node.title=c.value,l.value=!1},w=()=>{a.value&&o.value.hooks.renderNode.execute({node:n.node,el:a.value})},A=I=>{d.value=!0,I.preventDefault()},M=I=>{if(!d.value)return;const V=n.node.width+I.movementX/i.value.scaling,P=o.value.settings.nodes.minWidth,B=o.value.settings.nodes.maxWidth;n.node.width=Math.max(P,Math.min(B,V))},k=()=>{d.value=!1};return Yo(()=>{w(),window.addEventListener("mousemove",M),window.addEventListener("mouseup",k)}),C3(w),r2(()=>{window.removeEventListener("mousemove",M),window.removeEventListener("mouseup",k)}),(I,V)=>(N(),D("div",{id:I.node.id,ref_key:"el",ref:a,class:Le(["baklava-node",g.value]),style:zt(_.value),"data-node-type":I.node.type,onPointerdown:y},[ht(o).settings.nodes.resizable?(N(),D("div",{key:0,class:"__resize-handle",onMousedown:A},null,32)):W("",!0),Qn(I.$slots,"title",{},()=>[h("div",{class:"__title",onPointerdown:ie(b,["self","stop"])},[l.value?Y((N(),D("input",{key:1,ref_key:"renameInputEl",ref:u,"onUpdate:modelValue":V[1]||(V[1]=P=>c.value=P),type:"text",class:"baklava-input",placeholder:"Node Name",onBlur:L,onKeydown:ur(L,["enter"])},null,544)),[[fe,c.value]]):(N(),D(Ae,{key:0},[h("div",Vor,ee(I.node.title),1),h("div",$or,[Z(VH,{class:"--clickable",onClick:E}),Z(ht(H_),{modelValue:f.value,"onUpdate:modelValue":V[0]||(V[0]=P=>f.value=P),x:0,y:0,items:T.value,onClick:S},null,8,["modelValue","items"])])],64))],32)]),Qn(I.$slots,"content",{},()=>[h("div",{class:Le(["__content",m.value]),onKeydown:V[2]||(V[2]=ur(ie(()=>{},["stop"]),["delete"]))},[h("div",Bor,[(N(!0),D(Ae,null,Ge(v.value,P=>Qn(I.$slots,"nodeInterface",{key:P.id,type:"output",node:I.node,intf:P},()=>[Z(oO,{node:I.node,intf:P},null,8,["node","intf"])])),128))]),h("div",For,[(N(!0),D(Ae,null,Ge(Q.value,P=>Qn(I.$slots,"nodeInterface",{key:P.id,type:"input",node:I.node,intf:P},()=>[Z(oO,{node:I.node,intf:P},null,8,["node","intf"])])),128))])],34)])],46,Por))}}),Gor=xn({props:{x1:{type:Number,required:!0},y1:{type:Number,required:!0},x2:{type:Number,required:!0},y2:{type:Number,required:!0},state:{type:Number,default:qr.NONE},isTemporary:{type:Boolean,default:!1}},setup(t){const{viewModel:e}=Pr(),{graph:n}=oo(),r=(s,a)=>{const l=(s+n.value.panning.x)*n.value.scaling,c=(a+n.value.panning.y)*n.value.scaling;return[l,c]},o=Ze(()=>{const[s,a]=r(t.x1,t.y1),[l,c]=r(t.x2,t.y2);if(e.value.settings.useStraightConnections)return`M ${s} ${a} L ${l} ${c}`;{const u=.3*Math.abs(s-l);return`M ${s} ${a} C ${s+u} ${a}, ${l-u} ${c}, ${l} ${c}`}}),i=Ze(()=>({"--temporary":t.isTemporary,"--allowed":t.state===qr.ALLOWED,"--forbidden":t.state===qr.FORBIDDEN}));return{d:o,classes:i}}}),qor=["d"];function jor(t,e,n,r,o,i){return N(),D("path",{class:Le(["baklava-connection",t.classes]),d:t.d},null,10,qor)}const $H=gn(Gor,[["render",jor]]);function zor(t){return document.getElementById(t.id)}function e2(t){const e=document.getElementById(t.id),n=e==null?void 0:e.getElementsByClassName("__port");return{node:(e==null?void 0:e.closest(".baklava-node"))??null,interface:e,port:n&&n.length>0?n[0]:null}}const Yor=xn({components:{"connection-view":$H},props:{connection:{type:Object,required:!0}},setup(t){const{graph:e}=oo();let n;const r=ot({x1:0,y1:0,x2:0,y2:0}),o=Ze(()=>t.connection.isInDanger?qr.FORBIDDEN:qr.NONE),i=Ze(()=>{var c;return(c=e.value.findNodeById(t.connection.from.nodeId))==null?void 0:c.position}),s=Ze(()=>{var c;return(c=e.value.findNodeById(t.connection.to.nodeId))==null?void 0:c.position}),a=c=>c.node&&c.interface&&c.port?[c.node.offsetLeft+c.interface.offsetLeft+c.port.offsetLeft+c.port.clientWidth/2,c.node.offsetTop+c.interface.offsetTop+c.port.offsetTop+c.port.clientHeight/2]:[0,0],l=()=>{const c=e2(t.connection.from),u=e2(t.connection.to);c.node&&u.node&&(n||(n=new ResizeObserver(()=>{l()}),n.observe(c.node),n.observe(u.node)));const[d,f]=a(c),[T,g]=a(u);r.value={x1:d,y1:f,x2:T,y2:g}};return Yo(async()=>{await Re(),l()}),r2(()=>{n&&n.disconnect()}),Bn([i,s],()=>l(),{deep:!0}),{d:r,state:o}}});function Wor(t,e,n,r,o,i){const s=Ke("connection-view");return N(),at(s,{x1:t.d.x1,y1:t.d.y1,x2:t.d.x2,y2:t.d.y2,state:t.state},null,8,["x1","y1","x2","y2","state"])}const Kor=gn(Yor,[["render",Wor]]);function ec(t){return t.node&&t.interface&&t.port?[t.node.offsetLeft+t.interface.offsetLeft+t.port.offsetLeft+t.port.clientWidth/2,t.node.offsetTop+t.interface.offsetTop+t.port.offsetTop+t.port.clientHeight/2]:[0,0]}const Zor=xn({components:{"connection-view":$H},props:{connection:{type:Object,required:!0}},setup(t){const e=Ze(()=>t.connection?t.connection.status:qr.NONE);return{d:Ze(()=>{if(!t.connection)return{input:[0,0],output:[0,0]};const r=ec(e2(t.connection.from)),o=t.connection.to?ec(e2(t.connection.to)):[t.connection.mx||r[0],t.connection.my||r[1]];return t.connection.from.isInput?{input:o,output:r}:{input:r,output:o}}),status:e}}});function Xor(t,e,n,r,o,i){const s=Ke("connection-view");return N(),at(s,{x1:t.d.input[0],y1:t.d.input[1],x2:t.d.output[0],y2:t.d.output[1],state:t.status,"is-temporary":""},null,8,["x1","y1","x2","y2","state"])}const Jor=gn(Zor,[["render",Xor]]),eir=xn({setup(){const{viewModel:t}=Pr(),{graph:e}=oo(),n=ot(null),r=K6(t.value.settings.sidebar,"width"),o=Ze(()=>t.value.settings.sidebar.resizable),i=Ze(()=>{const d=e.value.sidebar.nodeId;return e.value.nodes.find(f=>f.id===d)}),s=Ze(()=>({width:`${r.value}px`})),a=Ze(()=>i.value?[...Object.values(i.value.inputs),...Object.values(i.value.outputs)].filter(f=>f.displayInSidebar&&f.component):[]),l=()=>{e.value.sidebar.visible=!1},c=()=>{window.addEventListener("mousemove",u),window.addEventListener("mouseup",()=>{window.removeEventListener("mousemove",u)},{once:!0})},u=d=>{var f,T;const g=((T=(f=n.value)==null?void 0:f.parentElement)==null?void 0:T.getBoundingClientRect().width)??500;let m=r.value-d.movementX;m<300?m=300:m>.9*g&&(m=.9*g),r.value=m};return{el:n,graph:e,resizable:o,node:i,styles:s,displayedInterfaces:a,startResize:c,close:l}}}),tir={class:"__header"},nir={class:"__node-name"};function rir(t,e,n,r,o,i){return N(),D("div",{ref:"el",class:Le(["baklava-sidebar",{"--open":t.graph.sidebar.visible}]),style:zt(t.styles)},[t.resizable?(N(),D("div",{key:0,class:"__resizer",onMousedown:e[0]||(e[0]=(...s)=>t.startResize&&t.startResize(...s))},null,32)):W("",!0),h("div",tir,[h("button",{tabindex:"-1",class:"__close",onClick:e[1]||(e[1]=(...s)=>t.close&&t.close(...s))},"×"),h("div",nir,[h("b",null,ee(t.node?t.node.title:""),1)])]),(N(!0),D(Ae,null,Ge(t.displayedInterfaces,s=>(N(),D("div",{key:s.id,class:"__interface"},[(N(),at(pc(s.component),{modelValue:s.value,"onUpdate:modelValue":a=>s.value=a,node:t.node,intf:s},null,8,["modelValue","onUpdate:modelValue","node","intf"]))]))),128))],6)}const oir=gn(eir,[["render",rir]]),iir=xn({__name:"Minimap",setup(t){const{viewModel:e}=Pr(),{graph:n}=oo(),r=ot(null),o=ot(!1);let i,s=!1,a={x1:0,y1:0,x2:0,y2:0},l;const c=()=>{var S,L;if(!i)return;i.canvas.width=r.value.offsetWidth,i.canvas.height=r.value.offsetHeight;const w=new Map,A=new Map;for(const P of n.value.nodes){const B=zor(P),$=(B==null?void 0:B.offsetWidth)??0,q=(B==null?void 0:B.offsetHeight)??0,G=((S=P.position)==null?void 0:S.x)??0,X=((L=P.position)==null?void 0:L.y)??0;w.set(P,{x1:G,y1:X,x2:G+$,y2:X+q}),A.set(P,B)}const M={x1:Number.MAX_SAFE_INTEGER,y1:Number.MAX_SAFE_INTEGER,x2:Number.MIN_SAFE_INTEGER,y2:Number.MIN_SAFE_INTEGER};for(const P of w.values())P.x1M.x2&&(M.x2=P.x2),P.y2>M.y2&&(M.y2=P.y2);const k=50;M.x1-=k,M.y1-=k,M.x2+=k,M.y2+=k,a=M;const I=i.canvas.width/i.canvas.height,V=(a.x2-a.x1)/(a.y2-a.y1);if(I>V){const P=(I-V)*(a.y2-a.y1)*.5;a.x1-=P,a.x2+=P}else{const P=a.x2-a.x1,B=a.y2-a.y1,$=(P-I*B)/I*.5;a.y1-=$,a.y2+=$}i.clearRect(0,0,i.canvas.width,i.canvas.height),i.strokeStyle="white";for(const P of n.value.connections){const[B,$]=ec(e2(P.from)),[q,G]=ec(e2(P.to)),[X,K]=u(B,$),[ne,pe]=u(q,G);if(i.beginPath(),i.moveTo(X,K),e.value.settings.useStraightConnections)i.lineTo(ne,pe);else{const re=.3*Math.abs(X-ne);i.bezierCurveTo(X+re,K,ne-re,pe,ne,pe)}i.stroke()}i.strokeStyle="lightgray";for(const[P,B]of w.entries()){const[$,q]=u(B.x1,B.y1),[G,X]=u(B.x2,B.y2);i.fillStyle=f(A.get(P)),i.beginPath(),i.rect($,q,G-$,X-q),i.fill(),i.stroke()}if(o.value){const P=g(),[B,$]=u(P.x1,P.y1),[q,G]=u(P.x2,P.y2);i.fillStyle="rgba(255, 255, 255, 0.2)",i.fillRect(B,$,q-B,G-$)}},u=(S,L)=>[(S-a.x1)/(a.x2-a.x1)*i.canvas.width,(L-a.y1)/(a.y2-a.y1)*i.canvas.height],d=(S,L)=>[S*(a.x2-a.x1)/i.canvas.width+a.x1,L*(a.y2-a.y1)/i.canvas.height+a.y1],f=S=>{if(S){const L=S.querySelector(".__content");if(L){const A=T(L);if(A)return A}const w=T(S);if(w)return w}return"gray"},T=S=>{const L=getComputedStyle(S).backgroundColor;if(L&&L!=="rgba(0, 0, 0, 0)")return L},g=()=>{const S=r.value.parentElement.offsetWidth,L=r.value.parentElement.offsetHeight,w=S/n.value.scaling-n.value.panning.x,A=L/n.value.scaling-n.value.panning.y;return{x1:-n.value.panning.x,y1:-n.value.panning.y,x2:w,y2:A}},m=S=>{S.button===0&&(s=!0,_(S))},_=S=>{if(s){const[L,w]=d(S.offsetX,S.offsetY),A=g(),M=(A.x2-A.x1)/2,k=(A.y2-A.y1)/2;n.value.panning.x=-(L-M),n.value.panning.y=-(w-k)}},Q=()=>{s=!1},v=()=>{o.value=!0},y=()=>{o.value=!1,Q()};Bn([o,n.value.panning,()=>n.value.scaling,()=>n.value.connections.length],()=>{c()});const b=Ze(()=>n.value.nodes.map(S=>S.position)),E=Ze(()=>n.value.nodes.map(S=>S.width));return Bn([b,E],()=>{c()},{deep:!0}),Yo(()=>{i=r.value.getContext("2d"),i.imageSmoothingQuality="high",c(),l=setInterval(c,500)}),r2(()=>{clearInterval(l)}),(S,L)=>(N(),D("canvas",{ref_key:"canvas",ref:r,class:"baklava-minimap",onMouseenter:v,onMouseleave:y,onMousedown:ie(m,["self"]),onMousemove:ie(_,["self"]),onMouseup:Q,onContextmenu:L[0]||(L[0]=ie(()=>{},["stop","prevent"]))},null,544))}}),sir=xn({components:{ContextMenu:H_,VerticalDots:VH},props:{type:{type:String,required:!0},title:{type:String,required:!0}},setup(t){const{viewModel:e}=Pr(),{switchGraph:n}=oo(),r=ot(!1),o=Ze(()=>t.type.startsWith(x3));return{showContextMenu:r,hasContextMenu:o,contextMenuItems:[{label:"Edit Subgraph",value:"editSubgraph"},{label:"Delete Subgraph",value:"deleteSubgraph"}],openContextMenu:()=>{r.value=!0},onContextMenuClick:l=>{const c=t.type.substring(x3.length),u=e.value.editor.graphTemplates.find(d=>d.id===c);if(u)switch(l){case"editSubgraph":n(u);break;case"deleteSubgraph":e.value.editor.removeGraphTemplate(u);break}}}}}),air=["data-node-type"],lir={class:"__title"},cir={class:"__title-label"},uir={key:0,class:"__menu"};function dir(t,e,n,r,o,i){const s=Ke("vertical-dots"),a=Ke("context-menu");return N(),D("div",{class:"baklava-node --palette","data-node-type":t.type},[h("div",lir,[h("div",cir,ee(t.title),1),t.hasContextMenu?(N(),D("div",uir,[Z(s,{class:"--clickable",onPointerdown:e[0]||(e[0]=ie(()=>{},["stop","prevent"])),onClick:ie(t.openContextMenu,["stop","prevent"])},null,8,["onClick"]),Z(a,{modelValue:t.showContextMenu,"onUpdate:modelValue":e[1]||(e[1]=l=>t.showContextMenu=l),x:-100,y:0,items:t.contextMenuItems,onClick:t.onContextMenuClick,onPointerdown:e[2]||(e[2]=ie(()=>{},["stop","prevent"]))},null,8,["modelValue","items","onClick"])])):W("",!0)])],8,air)}const iO=gn(sir,[["render",dir]]),Tir={key:0},fir=xn({__name:"NodePalette",setup(t){const{viewModel:e}=Pr(),{x:n,y:r}=yor(),{transform:o}=DH(),i=NH(e),s=Wr("editorEl"),a=ot(null),l=Ze(()=>{if(!a.value||!(s!=null&&s.value))return{};const{left:u,top:d}=s.value.getBoundingClientRect();return{top:`${r.value-d}px`,left:`${n.value-u}px`}}),c=(u,d)=>{a.value={type:u,nodeInformation:d};const f=()=>{const T=cr(new d.type);e.value.displayedGraph.addNode(T);const g=s.value.getBoundingClientRect(),[m,_]=o(n.value-g.left,r.value-g.top);T.position.x=m,T.position.y=_,a.value=null,document.removeEventListener("pointerup",f)};document.addEventListener("pointerup",f)};return(u,d)=>(N(),D(Ae,null,[h("div",{class:"baklava-node-palette",onContextmenu:d[0]||(d[0]=ie(()=>{},["stop","prevent"]))},[(N(!0),D(Ae,null,Ge(ht(i),f=>(N(),D("section",{key:f.name},[f.name!=="default"?(N(),D("h1",Tir,ee(f.name),1)):W("",!0),(N(!0),D(Ae,null,Ge(f.nodeTypes,(T,g)=>(N(),at(iO,{key:g,type:g,title:T.title,onPointerdown:m=>c(g,T)},null,8,["type","title","onPointerdown"]))),128))]))),128))],32),Z(lr,{name:"fade"},{default:Se(()=>[a.value?(N(),D("div",{key:0,class:"baklava-dragged-node",style:zt(l.value)},[Z(iO,{type:a.value.type,title:a.value.nodeInformation.title},null,8,["type","title"])],4)):W("",!0)]),_:1})],64))}});let O6;const pir=new Uint8Array(16);function hir(){if(!O6&&(O6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!O6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return O6(pir)}const Vn=[];for(let t=0;t<256;++t)Vn.push((t+256).toString(16).slice(1));function mir(t,e=0){return Vn[t[e+0]]+Vn[t[e+1]]+Vn[t[e+2]]+Vn[t[e+3]]+"-"+Vn[t[e+4]]+Vn[t[e+5]]+"-"+Vn[t[e+6]]+Vn[t[e+7]]+"-"+Vn[t[e+8]]+Vn[t[e+9]]+"-"+Vn[t[e+10]]+Vn[t[e+11]]+Vn[t[e+12]]+Vn[t[e+13]]+Vn[t[e+14]]+Vn[t[e+15]]}const gir=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),sO={randomUUID:gir};function tc(t,e,n){if(sO.randomUUID&&!e&&!t)return sO.randomUUID();t=t||{};const r=t.random||(t.rng||hir)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,mir(r)}const S3="SAVE_SUBGRAPH";function _ir(t,e){const n=()=>{const r=t.value;if(!r.template)throw new Error("Graph template property not set");r.template.update(r.save()),r.template.panning=r.panning,r.template.scaling=r.scaling};e.registerCommand(S3,{canExecute:()=>{var r;return t.value!==((r=t.value.editor)==null?void 0:r.graph)},execute:n})}const Qir={},vir={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},yir=h("polyline",{points:"6 9 12 15 18 9"},null,-1),bir=[yir];function Eir(t,e){return N(),D("svg",vir,bir)}const xir=gn(Qir,[["render",Eir]]),Sir=xn({components:{"i-arrow":xir},props:{intf:{type:Object,required:!0}},setup(t){const e=ot(null),n=ot(!1),r=Ze(()=>t.intf.items.find(s=>typeof s=="string"?s===t.intf.value:s.value===t.intf.value)),o=Ze(()=>r.value?typeof r.value=="string"?r.value:r.value.text:""),i=s=>{t.intf.value=typeof s=="string"?s:s.value};return HH(e,()=>{n.value=!1}),{el:e,open:n,selectedItem:r,selectedText:o,setSelected:i}}}),Lir=["title"],Cir={class:"__selected"},Air={class:"__text"},wir={class:"__icon"},Oir={class:"__dropdown"},Mir={class:"item --header"},Rir=["onClick"];function Nir(t,e,n,r,o,i){const s=Ke("i-arrow");return N(),D("div",{ref:"el",class:Le(["baklava-select",{"--open":t.open}]),title:t.intf.name,onClick:e[0]||(e[0]=a=>t.open=!t.open)},[h("div",Cir,[h("div",Air,ee(t.selectedText),1),h("div",wir,[Z(s)])]),Z(lr,{name:"slide-fade"},{default:Se(()=>[Y(h("div",Oir,[h("div",Mir,ee(t.intf.name),1),(N(!0),D(Ae,null,Ge(t.intf.items,(a,l)=>(N(),D("div",{key:l,class:Le(["item",{"--active":a===t.selectedItem}]),onClick:c=>t.setSelected(a)},ee(typeof a=="string"?a:a.text),11,Rir))),128))],512),[[gt,t.open]])]),_:1})],10,Lir)}const Dir=gn(Sir,[["render",Nir]]);class kir extends Tn{constructor(e,n,r){super(e,n),this.component=uc(Dir),this.items=r}}const Iir=xn({props:{intf:{type:Object,required:!0}}});function Hir(t,e,n,r,o,i){return N(),D("div",null,ee(t.intf.value),1)}const Pir=gn(Iir,[["render",Hir]]);class Vir extends Tn{constructor(e,n){super(e,n),this.component=uc(Pir),this.setPort(!1)}}const $ir=xn({props:{intf:{type:Object,required:!0},modelValue:{type:String,required:!0}},emits:["update:modelValue"],setup(t,{emit:e}){return{v:Ze({get:()=>t.modelValue,set:r=>{e("update:modelValue",r)}})}}}),Bir=["placeholder","title"];function Fir(t,e,n,r,o,i){return N(),D("div",null,[Y(h("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>t.v=s),type:"text",class:"baklava-input",placeholder:t.intf.name,title:t.intf.name},null,8,Bir),[[fe,t.v]])])}const Uir=gn($ir,[["render",Fir]]);class Q4 extends Tn{constructor(){super(...arguments),this.component=uc(Uir)}}class BH extends N_{constructor(){super(...arguments),this._title="Subgraph Input",this.inputs={name:new Q4("Name","Input").setPort(!1)},this.outputs={placeholder:new Tn("Connection",void 0)}}}class FH extends D_{constructor(){super(...arguments),this._title="Subgraph Output",this.inputs={name:new Q4("Name","Output").setPort(!1),placeholder:new Tn("Connection",void 0)},this.outputs={output:new Tn("Output",void 0).setHidden(!0)}}}const UH="CREATE_SUBGRAPH",aO=[Za,Xa];function Gir(t,e,n){const r=()=>t.value.selectedNodes.filter(i=>!aO.includes(i.type)).length>0,o=()=>{const{viewModel:i}=Pr(),s=t.value,a=t.value.editor;if(s.selectedNodes.length===0)return;const l=s.selectedNodes.filter(A=>!aO.includes(A.type)),c=l.flatMap(A=>Object.values(A.inputs)),u=l.flatMap(A=>Object.values(A.outputs)),d=s.connections.filter(A=>!u.includes(A.from)&&c.includes(A.to)),f=s.connections.filter(A=>u.includes(A.from)&&!c.includes(A.to)),T=s.connections.filter(A=>u.includes(A.from)&&c.includes(A.to)),g=l.map(A=>A.save()),m=T.map(A=>({id:A.id,from:A.from.id,to:A.to.id})),_=new Map,{xLeft:Q,xRight:v,yTop:y}=qir(l);for(const[A,M]of d.entries()){const k=new BH;k.inputs.name.value=M.to.name,g.push({...k.save(),position:{x:v-i.value.settings.nodes.defaultWidth-100,y:y+A*200}}),m.push({id:tc(),from:k.outputs.placeholder.id,to:M.to.id}),_.set(M.to.id,k.graphInterfaceId)}for(const[A,M]of f.entries()){const k=new FH;k.inputs.name.value=M.from.name,g.push({...k.save(),position:{x:Q+100,y:y+A*200}}),m.push({id:tc(),from:M.from.id,to:k.inputs.placeholder.id}),_.set(M.from.id,k.graphInterfaceId)}const b=cr(new i7({connections:m,nodes:g,inputs:[],outputs:[]},a));a.addGraphTemplate(b);const E=a.nodeTypes.get(Ja(b));if(!E)throw new Error("Unable to create subgraph: Could not find corresponding graph node type");s.activeTransactions++;const S=cr(new E.type);s.addNode(S);const L=Math.round(l.map(A=>A.position.x).reduce((A,M)=>A+M,0)/l.length),w=Math.round(l.map(A=>A.position.y).reduce((A,M)=>A+M,0)/l.length);S.position.x=L,S.position.y=w,d.forEach(A=>{s.removeConnection(A),s.addConnection(A.from,S.inputs[_.get(A.to.id)])}),f.forEach(A=>{s.removeConnection(A),s.addConnection(S.outputs[_.get(A.from.id)],A.to)}),l.forEach(A=>s.removeNode(A)),s.activeTransactions--,e.canExecuteCommand(S3)&&e.executeCommand(S3),n(b),t.value.panning={...s.panning},t.value.scaling=s.scaling};e.registerCommand(UH,{canExecute:r,execute:o})}function qir(t){const e=t.reduce((o,i)=>{const s=i.position.x;return s{const s=i.position.y;return s{const s=i.position.x+i.width;return s>o?s:o},-1/0),xRight:e,yTop:n}}class lO{constructor(e,n){this.type=e,e==="addNode"?this.nodeId=n:this.nodeState=n}undo(e){this.type==="addNode"?this.removeNode(e):this.addNode(e)}redo(e){this.type==="addNode"&&this.nodeState?this.addNode(e):this.type==="removeNode"&&this.nodeId&&this.removeNode(e)}addNode(e){const n=e.editor.nodeTypes.get(this.nodeState.type);if(!n)return;const r=new n.type;e.addNode(r),r.load(this.nodeState),this.nodeId=r.id}removeNode(e){const n=e.nodes.find(r=>r.id===this.nodeId);n&&(this.nodeState=n.save(),e.removeNode(n))}}class cO{constructor(e,n){if(this.type=e,e==="addConnection")this.connectionId=n;else{const r=n;this.connectionState={id:r.id,from:r.from.id,to:r.to.id}}}undo(e){this.type==="addConnection"?this.removeConnection(e):this.addConnection(e)}redo(e){this.type==="addConnection"&&this.connectionState?this.addConnection(e):this.type==="removeConnection"&&this.connectionId&&this.removeConnection(e)}addConnection(e){const n=e.findNodeInterface(this.connectionState.from),r=e.findNodeInterface(this.connectionState.to);if(!n||!r)return;const o=e.addConnection(n,r);o&&(o.id=this.connectionState.id),this.connectionId=o==null?void 0:o.id}removeConnection(e){const n=e.connections.find(r=>r.id===this.connectionId);n&&(this.connectionState={id:n.id,from:n.from.id,to:n.to.id},e.removeConnection(n))}}class jir{constructor(e){if(this.type="transaction",e.length===0)throw new Error("Can't create a transaction with no steps");this.steps=e}undo(e){for(let n=this.steps.length-1;n>=0;n--)this.steps[n].undo(e)}redo(e){for(let n=0;n{if(!i.value)if(a.value)l.value.push(_);else for(s.value!==o.value.length-1&&(o.value=o.value.slice(0,s.value+1)),o.value.push(_),s.value++;o.value.length>r.value;)o.value.shift()},u=()=>{a.value=!0},d=()=>{a.value=!1,l.value.length>0&&(c(new jir(l.value)),l.value=[])},f=()=>o.value.length!==0&&s.value!==-1,T=()=>{f()&&(i.value=!0,o.value[s.value--].undo(t.value),i.value=!1)},g=()=>o.value.length!==0&&s.value{g()&&(i.value=!0,o.value[++s.value].redo(t.value),i.value=!1)};return Bn(t,(_,Q)=>{Q&&(Q.events.addNode.unsubscribe(n),Q.events.removeNode.unsubscribe(n),Q.events.addConnection.unsubscribe(n),Q.events.removeConnection.unsubscribe(n)),_&&(_.events.addNode.subscribe(n,v=>{c(new lO("addNode",v.id))}),_.events.removeNode.subscribe(n,v=>{c(new lO("removeNode",v.save()))}),_.events.addConnection.subscribe(n,v=>{c(new cO("addConnection",v.id))}),_.events.removeConnection.subscribe(n,v=>{c(new cO("removeConnection",v))}))},{immediate:!0}),e.registerCommand(Bh,{canExecute:f,execute:T}),e.registerCommand(Fh,{canExecute:g,execute:m}),e.registerCommand(P_,{canExecute:()=>!a.value,execute:u}),e.registerCommand(V_,{canExecute:()=>a.value,execute:d}),e.registerHotkey(["Control","z"],Bh),e.registerHotkey(["Control","y"],Fh),cr({maxSteps:r})}const Uh="DELETE_NODES";function Yir(t,e){e.registerCommand(Uh,{canExecute:()=>t.value.selectedNodes.length>0,execute(){e.executeCommand(P_);for(let n=t.value.selectedNodes.length-1;n>=0;n--){const r=t.value.selectedNodes[n];t.value.removeNode(r)}e.executeCommand(V_)}}),e.registerHotkey(["Delete"],Uh)}const GH="SWITCH_TO_MAIN_GRAPH";function Wir(t,e,n){e.registerCommand(GH,{canExecute:()=>t.value!==t.value.editor.graph,execute:()=>{e.executeCommand(S3),n(t.value.editor.graph)}})}function Kir(t,e,n){Yir(t,e),Gir(t,e,n),_ir(t,e),Wir(t,e,n)}const Gh="COPY",qh="PASTE",Zir="CLEAR_CLIPBOARD";function Xir(t,e,n){const r=Symbol("ClipboardToken"),o=ot(""),i=ot(""),s=Ze(()=>!o.value),a=()=>{o.value="",i.value=""},l=()=>{const d=t.value.selectedNodes.flatMap(T=>[...Object.values(T.inputs),...Object.values(T.outputs)]),f=t.value.connections.filter(T=>d.includes(T.from)||d.includes(T.to)).map(T=>({from:T.from.id,to:T.to.id}));i.value=JSON.stringify(f),o.value=JSON.stringify(t.value.selectedNodes.map(T=>T.save()))},c=(d,f,T)=>{for(const g of d){let m;if((!T||T==="input")&&(m=Object.values(g.inputs).find(_=>_.id===f)),!m&&(!T||T==="output")&&(m=Object.values(g.outputs).find(_=>_.id===f)),m)return m}},u=()=>{if(s.value)return;const d=new Map,f=JSON.parse(o.value),T=JSON.parse(i.value),g=[],m=[],_=t.value;n.executeCommand(P_);for(const Q of f){const v=e.value.nodeTypes.get(Q.type);if(!v){console.warn(`Node type ${Q.type} not registered`);return}const y=new v.type,b=y.id;g.push(y),y.hooks.beforeLoad.subscribe(r,E=>{const S=E;return S.position&&(S.position.x+=100,S.position.y+=100),y.hooks.beforeLoad.unsubscribe(r),S}),_.addNode(y),y.load({...Q,id:b}),y.id=b,d.set(Q.id,b);for(const E of Object.values(y.inputs)){const S=tc();d.set(E.id,S),E.id=S}for(const E of Object.values(y.outputs)){const S=tc();d.set(E.id,S),E.id=S}}for(const Q of T){const v=c(g,d.get(Q.from),"output"),y=c(g,d.get(Q.to),"input");if(!v||!y)continue;const b=_.addConnection(v,y);b&&m.push(b)}return t.value.selectedNodes=g,n.executeCommand(V_),{newNodes:g,newConnections:m}};return n.registerCommand(Gh,{canExecute:()=>t.value.selectedNodes.length>0,execute:l}),n.registerHotkey(["Control","c"],Gh),n.registerCommand(qh,{canExecute:()=>!s.value,execute:u}),n.registerHotkey(["Control","v"],qh),n.registerCommand(Zir,{canExecute:()=>!0,execute:a}),cr({isEmpty:s})}const Jir="OPEN_SIDEBAR";function esr(t,e){e.registerCommand(Jir,{execute:n=>{t.value.sidebar.nodeId=n,t.value.sidebar.visible=!0},canExecute:()=>!0})}function tsr(t,e){esr(t,e)}const nsr={},rsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},osr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),isr=h("path",{d:"M9 13l-4 -4l4 -4m-4 4h11a4 4 0 0 1 0 8h-1"},null,-1),ssr=[osr,isr];function asr(t,e){return N(),D("svg",rsr,ssr)}const lsr=gn(nsr,[["render",asr]]),csr={},usr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},dsr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Tsr=h("path",{d:"M15 13l4 -4l-4 -4m4 4h-11a4 4 0 0 0 0 8h1"},null,-1),fsr=[dsr,Tsr];function psr(t,e){return N(),D("svg",usr,fsr)}const hsr=gn(csr,[["render",psr]]),msr={},gsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},_sr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Qsr=h("line",{x1:"5",y1:"12",x2:"19",y2:"12"},null,-1),vsr=h("line",{x1:"5",y1:"12",x2:"11",y2:"18"},null,-1),ysr=h("line",{x1:"5",y1:"12",x2:"11",y2:"6"},null,-1),bsr=[_sr,Qsr,vsr,ysr];function Esr(t,e){return N(),D("svg",gsr,bsr)}const xsr=gn(msr,[["render",Esr]]),Ssr={},Lsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Csr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Asr=h("path",{d:"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2"},null,-1),wsr=h("rect",{x:"9",y:"3",width:"6",height:"4",rx:"2"},null,-1),Osr=[Csr,Asr,wsr];function Msr(t,e){return N(),D("svg",Lsr,Osr)}const Rsr=gn(Ssr,[["render",Msr]]),Nsr={},Dsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},ksr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Isr=h("rect",{x:"8",y:"8",width:"12",height:"12",rx:"2"},null,-1),Hsr=h("path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"},null,-1),Psr=[ksr,Isr,Hsr];function Vsr(t,e){return N(),D("svg",Dsr,Psr)}const $sr=gn(Nsr,[["render",Vsr]]),Bsr={},Fsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Usr=h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Gsr=h("path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2"},null,-1),qsr=h("circle",{cx:"12",cy:"14",r:"2"},null,-1),jsr=h("polyline",{points:"14 4 14 8 8 8 8 4"},null,-1),zsr=[Usr,Gsr,qsr,jsr];function Ysr(t,e){return N(),D("svg",Fsr,zsr)}const Wsr=gn(Bsr,[["render",Ysr]]),Ksr={},Zsr={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},Xsr=o2('',6),Jsr=[Xsr];function e1r(t,e){return N(),D("svg",Zsr,Jsr)}const t1r=gn(Ksr,[["render",e1r]]),n1r={},r1r={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},o1r=o2('',18),i1r=[o1r];function s1r(t,e){return N(),D("svg",r1r,i1r)}const a1r=gn(n1r,[["render",s1r]]),l1r={},c1r={xmlns:"http://www.w3.org/2000/svg",class:"baklava-icon",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},u1r=o2('',6),d1r=[u1r];function T1r(t,e){return N(),D("svg",c1r,d1r)}const f1r=gn(l1r,[["render",T1r]]),p1r=xn({props:{command:{type:String,required:!0},title:{type:String,required:!0},icon:{type:Object,required:!1,default:void 0}},setup(){const{viewModel:t}=Pr();return{viewModel:t}}}),h1r=["disabled","title"];function m1r(t,e,n,r,o,i){return N(),D("button",{class:"baklava-toolbar-entry baklava-toolbar-button",disabled:!t.viewModel.commandHandler.canExecuteCommand(t.command),title:t.title,onClick:e[0]||(e[0]=s=>t.viewModel.commandHandler.executeCommand(t.command))},[t.icon?(N(),at(pc(t.icon),{key:0})):(N(),D(Ae,{key:1},[Be(ee(t.title),1)],64))],8,h1r)}const g1r=gn(p1r,[["render",m1r]]),_1r=xn({components:{ToolbarButton:g1r},setup(){const{viewModel:t}=Pr();return{isSubgraph:Ze(()=>t.value.displayedGraph!==t.value.editor.graph),commands:[{command:Gh,title:"Copy",icon:$sr},{command:qh,title:"Paste",icon:Rsr},{command:Uh,title:"Delete selected nodes",icon:f1r},{command:Bh,title:"Undo",icon:lsr},{command:Fh,title:"Redo",icon:hsr},{command:j6,title:"Box Select",icon:a1r},{command:UH,title:"Create Subgraph",icon:t1r}],subgraphCommands:[{command:S3,title:"Save Subgraph",icon:Wsr},{command:GH,title:"Back to Main Graph",icon:xsr}]}}});function Q1r(t,e,n,r,o,i){const s=Ke("toolbar-button");return N(),D("div",{class:"baklava-toolbar",onContextmenu:e[0]||(e[0]=ie(()=>{},["stop","prevent"]))},[(N(!0),D(Ae,null,Ge(t.commands,a=>(N(),at(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)),t.isSubgraph?(N(!0),D(Ae,{key:0},Ge(t.subgraphCommands,a=>(N(),at(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)):W("",!0)],32)}const v1r=gn(_1r,[["render",Q1r]]),y1r={class:"connections-container"},b1r=xn({__name:"Editor",props:{viewModel:{}},setup(t){const e=t,n=Symbol("EditorToken"),r=K6(e,"viewModel");oor(r);const o=ot(null);Sa("editorEl",o);const i=Ze(()=>e.viewModel.displayedGraph.nodes),s=Ze(()=>e.viewModel.displayedGraph.nodes.map(w=>MH(K6(w,"position")))),a=Ze(()=>e.viewModel.displayedGraph.connections),l=Ze(()=>e.viewModel.displayedGraph.selectedNodes),c=ior(),u=sor(),d=aor(r),f=lor(o),T=Ze(()=>({...c.styles.value})),g=ot(0);e.viewModel.editor.hooks.load.subscribe(n,w=>(g.value++,w));const m=w=>{c.onPointerMove(w),u.onMouseMove(w)},_=w=>{if(w.button===0){if(f.onPointerDown(w))return;w.target===o.value&&(E(),c.onPointerDown(w)),u.onMouseDown()}},Q=w=>{c.onPointerUp(w),u.onMouseUp()},v=w=>{w.key==="Tab"&&w.preventDefault(),e.viewModel.commandHandler.handleKeyDown(w)},y=w=>{e.viewModel.commandHandler.handleKeyUp(w)},b=w=>{["Control","Shift"].some(A=>e.viewModel.commandHandler.pressedKeys.includes(A))||E(),e.viewModel.displayedGraph.selectedNodes.push(w)},E=()=>{e.viewModel.displayedGraph.selectedNodes=[]},S=w=>{for(const A of e.viewModel.displayedGraph.selectedNodes){const M=i.value.indexOf(A),k=s.value[M];k.onPointerDown(w),document.addEventListener("pointermove",k.onPointerMove)}document.addEventListener("pointerup",L)},L=()=>{for(const w of e.viewModel.displayedGraph.selectedNodes){const A=i.value.indexOf(w),M=s.value[A];M.onPointerUp(),document.removeEventListener("pointermove",M.onPointerMove)}document.removeEventListener("pointerup",L)};return(w,A)=>(N(),D("div",{ref_key:"el",ref:o,tabindex:"-1",class:Le(["baklava-editor",{"baklava-ignore-mouse":!!ht(u).temporaryConnection.value||ht(c).dragging.value,"--temporary-connection":!!ht(u).temporaryConnection.value,"--start-selection-box":ht(f).startSelection}]),onPointermove:ie(m,["self"]),onPointerdown:_,onPointerup:Q,onWheel:A[1]||(A[1]=ie((...M)=>ht(c).onMouseWheel&&ht(c).onMouseWheel(...M),["self"])),onKeydown:v,onKeyup:y,onContextmenu:A[2]||(A[2]=(...M)=>ht(d).open&&ht(d).open(...M))},[Qn(w.$slots,"background",{},()=>[Z(dor)]),Qn(w.$slots,"toolbar",{},()=>[w.viewModel.settings.toolbar.enabled?(N(),at(v1r,{key:0})):W("",!0)]),Qn(w.$slots,"palette",{},()=>[w.viewModel.settings.palette.enabled?(N(),at(fir,{key:0})):W("",!0)]),(N(),D("svg",y1r,[(N(!0),D(Ae,null,Ge(a.value,M=>(N(),D("g",{key:M.id+g.value.toString()},[Qn(w.$slots,"connection",{connection:M},()=>[Z(Kor,{connection:M},null,8,["connection"])])]))),128)),Qn(w.$slots,"temporaryConnection",{temporaryConnection:ht(u).temporaryConnection.value},()=>[ht(u).temporaryConnection.value?(N(),at(Jor,{key:0,connection:ht(u).temporaryConnection.value},null,8,["connection"])):W("",!0)])])),h("div",{class:"node-container",style:zt(T.value)},[Z(bi,{name:"fade"},{default:Se(()=>[(N(!0),D(Ae,null,Ge(i.value,(M,k)=>Qn(w.$slots,"node",{key:M.id+g.value.toString(),node:M,selected:l.value.includes(M),dragging:s.value[k].dragging.value,onSelect:I=>b(M),onStartDrag:S},()=>[Z(Uor,{node:M,selected:l.value.includes(M),dragging:s.value[k].dragging.value,onSelect:I=>b(M),onStartDrag:S},null,8,["node","selected","dragging","onSelect"])])),128))]),_:3})],4),Qn(w.$slots,"sidebar",{},()=>[w.viewModel.settings.sidebar.enabled?(N(),at(oir,{key:0})):W("",!0)]),Qn(w.$slots,"minimap",{},()=>[w.viewModel.settings.enableMinimap?(N(),at(iir,{key:0})):W("",!0)]),Qn(w.$slots,"contextMenu",{contextMenu:ht(d)},()=>[w.viewModel.settings.contextMenu.enabled?(N(),at(H_,{key:0,modelValue:ht(d).show.value,"onUpdate:modelValue":A[0]||(A[0]=M=>ht(d).show.value=M),items:ht(d).items.value,x:ht(d).x.value,y:ht(d).y.value,onClick:ht(d).onClick},null,8,["modelValue","items","x","y","onClick"])):W("",!0)]),ht(f).isSelecting?(N(),D("div",{key:0,class:"selection-box",style:zt(ht(f).getStyles())},null,4)):W("",!0)],34))}});function E1r(t){const e=ot([]),n=ot([]);return{pressedKeys:e,handleKeyDown:s=>{e.value.includes(s.key)||e.value.push(s.key),!(document.activeElement&&OH(document.activeElement))&&n.value.forEach(a=>{var l,c;a.keys.every(u=>e.value.includes(u))&&((l=a.options)!=null&&l.preventDefault&&s.preventDefault(),(c=a.options)!=null&&c.stopPropagation&&s.stopPropagation(),t(a.commandName))})},handleKeyUp:s=>{const a=e.value.indexOf(s.key);a>=0&&e.value.splice(a,1)},registerHotkey:(s,a,l)=>{n.value.push({keys:s,commandName:a,options:l})}}}const x1r=()=>{const t=ot(new Map),e=s=>t.value.has(s),n=(s,a)=>{if(t.value.has(s))throw new Error(`Command "${s}" already exists`);t.value.set(s,a)},r=(s,a=!1,...l)=>{if(!t.value.has(s)){if(a)throw new Error(`[CommandHandler] Command ${s} not registered`);return}return t.value.get(s).execute(...l)},o=(s,a=!1,...l)=>{if(!t.value.has(s)){if(a)throw new Error(`[CommandHandler] Command ${s} not registered`);return!1}return t.value.get(s).canExecute(l)},i=E1r(r);return cr({hasCommand:e,registerCommand:n,executeCommand:r,canExecuteCommand:o,...i})},S1r=t=>!(t instanceof _4);function L1r(t,e){return{switchGraph:r=>{let o;if(S1r(r))o=new _4(t.value),r.createGraph(o);else{if(r!==t.value.graph)throw new Error("Can only switch using 'Graph' instance when it is the root graph. Otherwise a 'GraphTemplate' must be used.");o=r}e.value&&e.value!==t.value.graph&&e.value.destroy(),o.panning=o.panning??r.panning??{x:0,y:0},o.scaling=o.scaling??r.scaling??1,o.selectedNodes=o.selectedNodes??[],o.sidebar=o.sidebar??{visible:!1,nodeId:"",optionName:""},e.value=o}}}function C1r(t,e){t.position=t.position??{x:0,y:0},t.disablePointerEvents=!1,t.twoColumn=t.twoColumn??!1,t.width=t.width??e.defaultWidth}const A1r=()=>({useStraightConnections:!1,enableMinimap:!1,toolbar:{enabled:!0},palette:{enabled:!0},background:{gridSize:100,gridDivision:5,subGridVisibleThreshold:.6},sidebar:{enabled:!0,width:300,resizable:!0},displayValueOnHover:!1,nodes:{defaultWidth:200,maxWidth:320,minWidth:150,resizable:!1,reverseY:!1},contextMenu:{enabled:!0,additionalItems:[]}});function w1r(t){const e=ot(new Zrr),n=Symbol("ViewModelToken"),r=ot(null),o=JP(r),{switchGraph:i}=L1r(e,r),s=Ze(()=>o.value&&o.value!==e.value.graph),a=cr(A1r()),l=x1r(),c=zir(o,l),u=Xir(o,e,l),d={renderNode:new Hr(null),renderInterface:new Hr(null)};return Kir(o,l,i),tsr(o,l),Bn(e,(f,T)=>{T&&(T.events.registerGraph.unsubscribe(n),T.graphEvents.beforeAddNode.unsubscribe(n),f.nodeHooks.beforeLoad.unsubscribe(n),f.nodeHooks.afterSave.unsubscribe(n),f.graphTemplateHooks.beforeLoad.unsubscribe(n),f.graphTemplateHooks.afterSave.unsubscribe(n),f.graph.hooks.load.unsubscribe(n),f.graph.hooks.save.unsubscribe(n)),f&&(f.nodeHooks.beforeLoad.subscribe(n,(g,m)=>(m.position=g.position??{x:0,y:0},m.width=g.width??a.nodes.defaultWidth,m.twoColumn=g.twoColumn??!1,g)),f.nodeHooks.afterSave.subscribe(n,(g,m)=>(g.position=m.position,g.width=m.width,g.twoColumn=m.twoColumn,g)),f.graphTemplateHooks.beforeLoad.subscribe(n,(g,m)=>(m.panning=g.panning,m.scaling=g.scaling,g)),f.graphTemplateHooks.afterSave.subscribe(n,(g,m)=>(g.panning=m.panning,g.scaling=m.scaling,g)),f.graph.hooks.load.subscribe(n,(g,m)=>(m.panning=g.panning,m.scaling=g.scaling,g)),f.graph.hooks.save.subscribe(n,(g,m)=>(g.panning=m.panning,g.scaling=m.scaling,g)),f.graphEvents.beforeAddNode.subscribe(n,g=>C1r(g,{defaultWidth:a.nodes.defaultWidth})),e.value.registerNodeType(BH,{category:"Subgraphs"}),e.value.registerNodeType(FH,{category:"Subgraphs"}),i(f.graph))},{immediate:!0}),cr({editor:e,displayedGraph:o,isSubgraph:s,settings:a,commandHandler:l,history:c,clipboard:u,hooks:d,switchGraph:i})}const O1r=L2({type:"PersonalityNode",title:"Personality",inputs:{request:()=>new Tn("Request",""),agent_name:()=>new kir("Personality","",_i.state.config.personalities).setPort(!1)},outputs:{response:()=>new Tn("Response","")},async calculate({request:t}){console.log(_i.state.config.personalities);let e="";try{e=(await se.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),M1r=L2({type:"RAGNode",title:"RAG",inputs:{request:()=>new Tn("Prompt",""),document_path:()=>new Q4("Document path","").setPort(!1)},outputs:{prompt:()=>new Tn("Prompt with Data","")},async calculate({request:t,document_path:e}){let n="";try{n=(await se.get("/rag",{params:{text:t,doc_path:e}})).data}catch(r){console.error(r)}return{response:n}}}),uO=L2({type:"Task",title:"Task",inputs:{description:()=>new Q4("Task description","").setPort(!1)},outputs:{prompt:()=>new Tn("Prompt")},calculate({description:t}){return{prompt:t}}}),dO=L2({type:"TextDisplayNode",title:"TextDisplay",inputs:{text2display:()=>new Tn("Input","")},outputs:{response:()=>new Vir("Text","")},async calculate({request:t}){}}),TO=L2({type:"LLMNode",title:"LLM",inputs:{request:()=>new Tn("Request","")},outputs:{response:()=>new Tn("Response","")},async calculate({request:t}){console.log(_i.state.config.personalities);let e="";try{e=(await se.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),R1r=L2({type:"MultichoiceNode",title:"Multichoice",inputs:{question:()=>new Tn("Question",""),outputs:()=>new Q4("choices, one per line","","").setPort(!1)},outputs:{response:()=>new Tn("Response","")}}),N1r=xn({components:{"baklava-editor":b1r},setup(){const t=w1r(),e=new nor(t.editor);t.editor.registerNodeType(O1r),t.editor.registerNodeType(uO),t.editor.registerNodeType(M1r),t.editor.registerNodeType(dO),t.editor.registerNodeType(TO),t.editor.registerNodeType(R1r);const n=Symbol();e.events.afterRun.subscribe(n,a=>{e.pause(),Xrr(a,t.editor),e.resume()}),e.start();function r(a,l,c){const u=new a;return t.displayedGraph.addNode(u),u.position.x=l,u.position.y=c,u}const o=r(uO,300,140),i=r(TO,550,140),s=r(dO,850,140);return t.displayedGraph.addConnection(o.outputs.prompt,i.inputs.request),t.displayedGraph.addConnection(i.outputs.response,s.inputs.text2display),{baklava:t,saveGraph:()=>{const a=e.export();localStorage.setItem("myGraph",JSON.stringify(a))},loadGraph:()=>{const a=JSON.parse(localStorage.getItem("myGraph"));e.import(a)}}}}),D1r={style:{width:"100vw",height:"100vh"}};function k1r(t,e,n,r,o,i){const s=Ke("baklava-editor");return N(),D("div",D1r,[Z(s,{"view-model":t.baklava},null,8,["view-model"]),h("button",{onClick:e[0]||(e[0]=(...a)=>t.saveGraph&&t.saveGraph(...a))},"Save Graph"),h("button",{onClick:e[1]||(e[1]=(...a)=>t.loadGraph&&t.loadGraph(...a))},"Load Graph")])}const I1r=Je(N1r,[["render",k1r]]),H1r={},P1r={style:{width:"100vw",height:"100vh"}},V1r=["src"];function $1r(t,e,n,r,o,i){return N(),D("div",P1r,[h("iframe",{src:t.$store.state.config.comfyui_base_url,class:"m-0 p-0 w-full h-full"},null,8,V1r)])}const B1r=Je(H1r,[["render",$1r]]),F1r={},U1r={style:{width:"100vw",height:"100vh"}},G1r=["src"];function q1r(t,e,n,r,o,i){return N(),D("div",U1r,[h("iframe",{src:t.$store.state.config.sd_base_url,class:"m-0 p-0 w-full h-full"},null,8,G1r)])}const j1r=Je(F1r,[["render",q1r]]),z1r={name:"AppCard",props:{app:{type:Object,required:!0},isFavorite:{type:Boolean,default:!1}},methods:{formatDate(t){const e={year:"numeric",month:"short",day:"numeric"};return new Date(t).toLocaleDateString(void 0,e)}}},Y1r={class:"app-card flex flex-col h-full"},W1r={class:"flex-grow"},K1r={class:"flex items-center mb-4"},Z1r=["src"],X1r={class:"font-bold text-xl text-gray-800"},J1r={class:"text-sm text-gray-600"},ear={class:"text-sm text-gray-600"},tar={class:"text-sm text-gray-600"},nar={class:"text-sm text-gray-600"},rar={class:"text-sm text-gray-600"},oar={class:"mb-4"},iar={class:"text-sm text-gray-600 h-20 overflow-y-auto"},sar={class:"text-sm text-gray-600 mb-2"},aar={key:0,class:"mb-4"},lar={class:"text-xs text-gray-500 italic h-16 overflow-y-auto"},car={class:"mt-auto pt-4 border-t"},uar={class:"flex justify-between items-center flex-wrap"},dar=["title"],Tar=["fill"];function far(t,e,n,r,o,i){return N(),D("div",Y1r,[h("div",W1r,[h("div",K1r,[h("img",{src:n.app.icon,alt:"App Icon",class:"w-16 h-16 rounded-full border border-gray-300 mr-4"},null,8,Z1r),h("div",null,[h("h3",X1r,ee(n.app.name),1),h("p",J1r,"Author: "+ee(n.app.author),1),h("p",ear,"Version: "+ee(n.app.version),1),h("p",tar,"Category: "+ee(n.app.category),1),h("p",nar,"Creation date: "+ee(i.formatDate(n.app.creation_date)),1),h("p",rar,"Last update: "+ee(i.formatDate(n.app.last_update_date)),1),h("p",{class:Le(["text-sm",n.app.is_public?"text-green-600":"text-orange-600"])},ee(n.app.is_public?"Public App":"Local App"),3)])]),h("div",oar,[e[10]||(e[10]=h("h4",{class:"font-semibold mb-1 text-gray-700"},"Description:",-1)),h("p",iar,ee(n.app.description),1)]),h("p",sar,"AI Model: "+ee(n.app.model_name),1),n.app.disclaimer&&n.app.disclaimer.trim()!==""?(N(),D("div",aar,[e[11]||(e[11]=h("h4",{class:"font-semibold mb-1 text-gray-700"},"Disclaimer:",-1)),h("p",lar,ee(n.app.disclaimer),1)])):W("",!0)]),h("div",car,[h("div",uar,[h("button",{onClick:e[0]||(e[0]=ie(s=>t.$emit("toggle-favorite",n.app.name),["stop"])),class:"text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out",title:n.isFavorite?"Remove from favorites":"Add to favorites"},[(N(),D("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:n.isFavorite?"currentColor":"none",viewBox:"0 0 24 24",stroke:"currentColor"},e[12]||(e[12]=[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"},null,-1)]),8,Tar))],8,dar),n.app.installed?(N(),D("button",{key:0,onClick:e[1]||(e[1]=ie(s=>t.$emit("uninstall",n.app.folder_name),["stop"])),class:"text-red-500 hover:text-red-600 transition duration-300 ease-in-out",title:"Uninstall"},e[13]||(e[13]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)]))):n.app.existsInFolder?(N(),D("button",{key:1,onClick:e[2]||(e[2]=ie(s=>t.$emit("delete",n.app.name),["stop"])),class:"text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out",title:"Delete"},e[14]||(e[14]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)]))):(N(),D("button",{key:2,onClick:e[3]||(e[3]=ie(s=>t.$emit("install",n.app.folder_name),["stop"])),class:"text-blue-500 hover:text-blue-600 transition duration-300 ease-in-out",title:"Install"},e[15]||(e[15]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)]))),n.app.installed?(N(),D("button",{key:3,onClick:e[4]||(e[4]=ie(s=>t.$emit("edit",n.app),["stop"])),class:"text-purple-500 hover:text-purple-600 transition duration-300 ease-in-out",title:"Edit"},e[16]||(e[16]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})],-1)]))):W("",!0),h("button",{onClick:e[5]||(e[5]=ie(s=>t.$emit("download",n.app.folder_name),["stop"])),class:"text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Download"},e[17]||(e[17]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)])),n.app.has_readme?(N(),D("button",{key:4,onClick:e[6]||(e[6]=ie(s=>t.$emit("help",n.app),["stop"])),class:"text-gray-500 hover:text-gray-600 transition duration-300 ease-in-out",title:"Help"},e[18]||(e[18]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M12 21a9 9 0 100-18 9 9 0 000 18z"})],-1)]))):W("",!0),n.app.installed?(N(),D("button",{key:5,onClick:e[7]||(e[7]=ie(s=>t.$emit("open",n.app),["stop"])),class:"text-indigo-500 hover:text-indigo-600 transition duration-300 ease-in-out",title:"Open"},e[19]||(e[19]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)]))):W("",!0),n.app.has_server&&n.app.installed?(N(),D("button",{key:6,onClick:e[8]||(e[8]=ie(s=>t.$emit("start-server",n.app.folder_name),["stop"])),class:"text-teal-500 hover:text-teal-600 transition duration-300 ease-in-out",title:"Start Server"},e[20]||(e[20]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14M12 5l7 7-7 7"})],-1)]))):W("",!0),n.app.has_update?(N(),D("button",{key:7,onClick:e[9]||(e[9]=ie(s=>t.$emit("install",n.app.folder_name),["stop"])),class:"relative text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out animate-pulse",title:"Update Available"},e[21]||(e[21]=[h("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),h("span",{class:"absolute top-0 right-0 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-100 transform translate-x-1/2 -translate-y-1/2 bg-red-600 rounded-full"},"!",-1)]))):W("",!0)])])])}const par=Je(z1r,[["render",far],["__scopeId","data-v-ae134649"]]),har={components:{AppCard:par},data(){return{apps:[],githubApps:[],favorites:[],selectedCategory:"all",selectedApp:null,appCode:"",loading:!1,message:"",successMessage:!0,searchQuery:"",selectedFile:null,isUploading:!1,error:"",sortBy:"update",sortOrder:"desc",showOnlyInstalled:!1,showOnlyUnInstalled:!1}},computed:{currentCategoryName(){return this.selectedCategory==="all"?"All Apps":this.selectedCategory},combinedApps(){this.apps.map(e=>e.name);const t=new Map(this.apps.map(e=>[e.name,{...e,installed:!0,existsInFolder:!0}]));return this.githubApps.forEach(e=>{t.has(e.name)||t.set(e.name,{...e,installed:!1,existsInFolder:!1})}),Array.from(t.values())},categories(){return[...new Set(this.combinedApps.map(t=>t.category))]},filteredApps(){return this.combinedApps.filter(t=>{const e=t.name.toLowerCase().includes(this.searchQuery.toLowerCase())||t.description.toLowerCase().includes(this.searchQuery.toLowerCase())||t.author.toLowerCase().includes(this.searchQuery.toLowerCase()),n=this.selectedCategory==="all"||t.category===this.selectedCategory,r=this.showOnlyInstalled&&t.installed||this.showOnlyUnInstalled&&!t.installed||!this.showOnlyInstalled&&!this.showOnlyUnInstalled;return e&&n&&r})},sortedAndFilteredApps(){return[...this.filteredApps].sort((t,e)=>{let n=0;switch(this.sortBy){case"name":n=t.name.localeCompare(e.name);break;case"author":n=t.author.localeCompare(e.author);break;case"date":n=this.getDateValue(t.creation_date)-this.getDateValue(e.creation_date);break;case"update":n=this.getDateValue(t.last_update_date)-this.getDateValue(e.last_update_date);break}return this.sortOrder==="asc"?n:-n})},favoriteApps(){return this.combinedApps.filter(t=>this.favorites.includes(t.appName))}},methods:{getDateValue(t){if(!t)return 0;const e=new Date(t);return isNaN(e.getTime())?0:e.getTime()},toggleSortOrder(){this.sortOrder=this.sortOrder==="asc"?"desc":"asc"},toggleFavorite(t){console.log("Toggling favorite"),console.log(t);const e=this.favorites.indexOf(t);e===-1?this.favorites.push(t):this.favorites.splice(e,1),this.saveFavoritesToLocalStorage()},saveFavoritesToLocalStorage(){localStorage.setItem("appZooFavorites",JSON.stringify(this.favorites))},loadFavoritesFromLocalStorage(){const t=localStorage.getItem("appZooFavorites");console.log("savedFavorites",t),t&&(this.favorites=JSON.parse(t))},startServer(t){const e={client_id:this.$store.state.client_id,app_name:t};this.$store.state.messageBox.showBlockingMessage(`Loading server. +This may take some time the first time as some libraries need to be installed.`),se.post("/apps/start_server",e).then(n=>{this.$store.state.messageBox.hideMessage(),console.log("Server start initiated:",n.data.message),this.$notify({type:"success",title:"Server Starting",text:n.data.message})}).catch(n=>{var r,o;this.$store.state.messageBox.hideMessage(),console.error("Error starting server:",n),this.$notify({type:"error",title:"Server Start Failed",text:((o=(r=n.response)==null?void 0:r.data)==null?void 0:o.detail)||"An error occurred while starting the server"})})},triggerFileInput(){this.$refs.fileInput.click()},onFileSelected(t){this.selectedFile=t.target.files[0],this.message="",this.error="",this.uploadApp()},async uploadApp(){var e,n;if(!this.selectedFile){this.error="Please select a file to upload.";return}this.isUploading=!0,this.message="",this.error="";const t=new FormData;t.append("file",this.selectedFile),t.append("client_id",this.$store.state.client_id);try{const r=await se.post("/upload_app",t,{headers:{"Content-Type":"multipart/form-data"}});this.message=r.data.message,this.$refs.fileInput.value="",this.selectedFile=null}catch(r){console.error("Error uploading app:",r),this.error=((n=(e=r.response)==null?void 0:e.data)==null?void 0:n.detail)||"Failed to upload the app. Please try again."}finally{this.isUploading=!1}},async fetchApps(){this.loading=!0;try{const t=await se.get("/apps");this.apps=t.data,this.showMessage("Refresh successful!",!0)}catch{this.showMessage("Failed to refresh apps.",!1)}finally{this.loading=!1}},async openAppsFolder(){this.loading=!0;try{console.log("opening apps folder");const t=await se.post("/show_apps_folder",{client_id:this.$store.state.client_id})}catch{this.showMessage("Failed to open apps folder.",!1)}finally{this.loading=!1}},async fetchGithubApps(){this.loading=!0;try{const t=await se.get("/github/apps");this.githubApps=t.data.apps,await this.fetchApps()}catch{this.showMessage("Failed to refresh GitHub apps.",!1)}finally{this.loading=!1}},async handleAppClick(t){if(t.installed){this.selectedApp=t;const e=await se.get(`/apps/${t.folder_name}/README.md`);this.appCode=Mt(e.data)}else this.showMessage(`Please install ${t.folder_name} to view its code.`,!1)},backToZoo(){this.selectedApp=null,this.appCode=""},async installApp(t){this.loading=!0,this.$store.state.messageBox.showBlockingMessage(`Installing app ${t}`);try{await se.post(`/install/${t}`,{client_id:this.$store.state.client_id}),this.showMessage("Installation succeeded!",!0)}catch{this.showMessage("Installation failed.",!1)}finally{this.loading=!1,this.fetchApps(),this.fetchGithubApps(),this.$store.state.messageBox.hideMessage()}},async uninstallApp(t){this.loading=!0;try{await se.post(`/uninstall/${t}`,{client_id:this.$store.state.client_id}),this.showMessage("Uninstallation succeeded!",!0)}catch{this.showMessage("Uninstallation failed.",!1)}finally{this.loading=!1,this.fetchApps()}},async deleteApp(t){this.loading=!0;try{await se.post(`/delete/${t}`,{client_id:this.$store.state.client_id}),this.showMessage("Deletion succeeded!",!0)}catch{this.showMessage("Deletion failed.",!1)}finally{this.loading=!1,this.fetchApps()}},async editApp(t){this.loading=!0;try{const e=await se.post("/open_app_in_vscode",{client_id:this.$store.state.client_id,app_name:t.folder_name});this.showMessage(e.data.message,!0)}catch{this.showMessage("Failed to open folder in VSCode.",!1)}finally{this.loading=!1}},async downloadApp(t){this.isLoading=!0,this.error=null;try{const e=await se.post("/download_app",{client_id:this.$store.state.client_id,app_name:t},{responseType:"arraybuffer"}),n=e.headers["content-disposition"],r=n&&n.match(/filename="?(.+)"?/i),o=r?r[1]:"app.zip",i=new Blob([e.data],{type:"application/zip"}),s=window.URL.createObjectURL(i),a=document.createElement("a");a.style.display="none",a.href=s,a.download=o,document.body.appendChild(a),a.click(),window.URL.revokeObjectURL(s),document.body.removeChild(a)}catch(e){console.error("Error downloading app:",e),this.error="Failed to download the app. Please try again."}finally{this.isLoading=!1}},openApp(t){t.installed?window.open(`/apps/${t.folder_name}/index.html?client_id=${this.$store.state.client_id}`,"_blank"):this.showMessage(`Please install ${t.name} before opening.`,!1)},showMessage(t,e){this.message=t,this.successMessage=e,setTimeout(()=>{this.message=""},3e3)}},mounted(){this.fetchGithubApps(),this.loadFavoritesFromLocalStorage()}},mar={class:"app-zoo background-color w-full p-6 pt-12 min-h-screen overflow-y-auto"},gar={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},_ar={class:"flex flex-wrap items-center justify-between gap-4"},Qar={class:"flex items-center space-x-4"},yar=["disabled"],bar={key:0},Ear={key:1,class:"error"},xar={class:"relative flex-grow max-w-md"},Sar={class:"flex items-center space-x-4"},Lar=["value"],Car={class:"flex items-center space-x-4"},Aar={for:"installed-only",class:"font-semibold"},war={for:"installed-only",class:"font-semibold"},Oar={class:"flex items-center space-x-4"},Mar={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},Rar={key:1,class:"pb-20"},Nar={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-8"},Dar={class:"text-2xl font-bold mb-4"},kar={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"},Iar={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"},Har={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},Par={class:"flex justify-between items-center mb-4"},Var={class:"text-2xl font-bold"},$ar=["srcdoc"],Bar={key:1,class:"text-center text-red-500"};function Far(t,e,n,r,o,i){const s=Ke("app-card");return N(),D("div",mar,[h("nav",gar,[h("div",_ar,[h("div",Qar,[h("button",{onClick:e[0]||(e[0]=(...a)=>i.fetchGithubApps&&i.fetchGithubApps(...a)),class:"btn btn-primary","aria-label":"Refresh apps from GitHub"},e[11]||(e[11]=[h("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),Be(" Refresh ")])),h("button",{onClick:e[1]||(e[1]=(...a)=>i.openAppsFolder&&i.openAppsFolder(...a)),class:"btn btn-secondary","aria-label":"Open apps folder"},e[12]||(e[12]=[h("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z"})],-1),Be(" Open Folder ")])),h("input",{type:"file",onChange:e[2]||(e[2]=(...a)=>i.onFileSelected&&i.onFileSelected(...a)),accept:".zip",ref:"fileInput",style:{display:"none"}},null,544),h("button",{onClick:e[3]||(e[3]=(...a)=>i.triggerFileInput&&i.triggerFileInput(...a)),disabled:o.isUploading,class:"btn-secondary text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Upload App"},ee(o.isUploading?"Uploading...":"Upload App"),9,yar)]),o.message?(N(),D("p",bar,ee(o.message),1)):W("",!0),o.error?(N(),D("p",Ear,ee(o.error),1)):W("",!0),h("div",xar,[Y(h("input",{"onUpdate:modelValue":e[4]||(e[4]=a=>o.searchQuery=a),placeholder:"Search apps...",class:"w-full border-b-2 border-gray-300 px-4 py-2 pl-10 focus:outline-none focus:border-blue-500 transition duration-300 ease-in-out","aria-label":"Search apps"},null,512),[[fe,o.searchQuery]]),e[13]||(e[13]=h("svg",{class:"w-5 h-5 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1))]),h("div",Sar,[e[15]||(e[15]=h("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Y(h("select",{id:"category-select","onUpdate:modelValue":e[5]||(e[5]=a=>o.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[14]||(e[14]=h("option",{value:"all"},"All Categories",-1)),(N(!0),D(Ae,null,Ge(i.categories,a=>(N(),D("option",{key:a,value:a},ee(a),9,Lar))),128))],512),[[$t,o.selectedCategory]])]),h("div",Car,[h("label",Aar,[Y(h("input",{id:"installed-only",type:"checkbox","onUpdate:modelValue":e[6]||(e[6]=a=>o.showOnlyInstalled=a),class:"mr-2"},null,512),[[qe,o.showOnlyInstalled]]),e[16]||(e[16]=Be(" Show only installed apps "))]),h("label",war,[Y(h("input",{id:"uninstalled-only",type:"checkbox","onUpdate:modelValue":e[7]||(e[7]=a=>o.showOnlyUnInstalled=a),class:"mr-2"},null,512),[[qe,o.showOnlyUnInstalled]]),e[17]||(e[17]=Be(" Show only non installed apps "))])]),h("div",Oar,[e[19]||(e[19]=h("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Y(h("select",{id:"sort-select","onUpdate:modelValue":e[8]||(e[8]=a=>o.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[18]||(e[18]=[h("option",{value:"name"},"Name",-1),h("option",{value:"author"},"Author",-1),h("option",{value:"date"},"Creation Date",-1),h("option",{value:"update"},"Last Update",-1)]),512),[[$t,o.sortBy]]),h("button",{onClick:e[9]||(e[9]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},ee(o.sortOrder==="asc"?"↑":"↓"),1)])])]),o.loading?(N(),D("div",Mar,e[20]||(e[20]=[h("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),h("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),D("div",Rar,[e[21]||(e[21]=h("h2",{class:"text-2xl font-bold mb-4"},"Favorite Apps",-1)),h("div",Nar,[(N(!0),D(Ae,null,Ge(i.favoriteApps,a=>(N(),at(s,{key:a.appName,app:a,onToggleFavorite:i.toggleFavorite,onInstall:i.installApp,onUninstall:i.uninstallApp,onDelete:i.deleteApp,onEdit:i.editApp,onDownload:i.downloadApp,onHelp:i.handleAppClick,onOpen:i.openApp,onStartServer:i.startServer},null,8,["app","onToggleFavorite","onInstall","onUninstall","onDelete","onEdit","onDownload","onHelp","onOpen","onStartServer"]))),128))]),h("h2",Dar,ee(i.currentCategoryName)+" ("+ee(i.sortedAndFilteredApps.length)+")",1),h("div",kar,[(N(!0),D(Ae,null,Ge(i.sortedAndFilteredApps,a=>(N(),at(s,{key:a.name,app:a,onToggleFavorite:i.toggleFavorite,onInstall:i.installApp,onUninstall:i.uninstallApp,onDelete:i.deleteApp,onEdit:i.editApp,onDownload:i.downloadApp,onHelp:i.handleAppClick,onOpen:i.openApp,onStartServer:i.startServer},null,8,["app","onToggleFavorite","onInstall","onUninstall","onDelete","onEdit","onDownload","onHelp","onOpen","onStartServer"]))),128))])])),o.selectedApp?(N(),D("div",Iar,[h("div",Har,[h("div",Par,[h("h2",Var,ee(o.selectedApp.name),1),h("button",{onClick:e[10]||(e[10]=(...a)=>i.backToZoo&&i.backToZoo(...a)),class:"bg-gray-300 hover:bg-gray-400 px-4 py-2 rounded-lg transition duration-300 ease-in-out"},"Close")]),o.appCode?(N(),D("iframe",{key:0,srcdoc:o.appCode,class:"flex-grow border-none"},null,8,$ar)):(N(),D("p",Bar,"Please install this app to view its code."))])])):W("",!0),o.message?(N(),D("div",{key:3,class:Le(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":o.successMessage,"bg-red-100 text-red-800":!o.successMessage}])},ee(o.message),3)):W("",!0)])}const Uar=Je(har,[["render",Far]]),Gar={components:{PersonalityEntry:tH},data(){return{personalities:[],githubApps:[],favorites:[],selectedCategory:"all",selectedApp:null,appCode:"",loading:!1,message:"",successMessage:!0,searchQuery:"",selectedFile:null,isUploading:!1,error:"",sortBy:"name",sortOrder:"asc"}},computed:{currentCategoryName(){return this.selectedCategory=="all"?"All Personalities":this.selectedCategory},configFile:{get(){return this.$store.state.config},set(t){this.$store.commit("setConfig",t)}},combinedApps(){this.personalities.map(e=>e.name);const t=new Map(this.personalities.map(e=>[e.name,{...e,installed:!0,existsInFolder:!0}]));return this.githubApps.forEach(e=>{t.has(e.name)||t.set(e.name,{...e,installed:!1,existsInFolder:!1})}),Array.from(t.values())},categories(){return[...new Set(this.combinedApps.map(t=>t.category))].sort((t,e)=>t.localeCompare(e))},filteredApps(){return this.combinedApps.filter(t=>{const e=t.name.toLowerCase().includes(this.searchQuery.toLowerCase())||t.author.toLowerCase().includes(this.searchQuery.toLowerCase())||t.description.toLowerCase().includes(this.searchQuery.toLowerCase()),n=this.selectedCategory==="all"||t.category===this.selectedCategory;return e&&n})},sortedAndFilteredPersonalities(){return[...this.filteredApps].sort((t,e)=>{let n=0;switch(this.sortBy){case"name":n=t.name.localeCompare(e.name);break;case"author":n=t.author.localeCompare(e.author);break;case"date":n=this.getDateValue(t.creation_date)-this.getDateValue(e.creation_date);break;case"update":n=this.getDateValue(t.last_update_date)-this.getDateValue(e.last_update_date);break}return this.sortOrder==="asc"?n:-n})},favoriteApps(){return this.combinedApps.filter(t=>this.favorites.includes(t.uid))}},methods:{getDateValue(t){if(!t)return 0;const e=new Date(t);return isNaN(e.getTime())?0:e.getTime()},async onPersonalitySelected(t){if(console.log("on pers",t),this.isLoading&&this.$store.state.toast.showToast("Loading... please wait",4,!1),this.isLoading=!0,console.log("selecting ",t),t){if(t.selected){this.$store.state.toast.showToast("Personality already selected",4,!0),this.isLoading=!1;return}let e=t.language==null?t.full_path:t.full_path+":"+t.language;if(console.log("pth",e),t.isMounted&&this.configFile.personalities.includes(e)){const n=await this.select_personality(t);console.log("pers is mounted",n),n&&n.status&&n.active_personality_id>-1?this.$store.state.toast.showToast(`Selected personality: `+t.name,4,!0):this.$store.state.toast.showToast(`Error on select personality: `+t.name,4,!1),this.isLoading=!1}else console.log("mounting pers"),this.mountPersonality(t);Re(()=>{feather.replace()})}},onModelSelected(t){if(this.isLoading){this.$store.state.toast.showToast("Loading... please wait",4,!1);return}t&&(t.isInstalled?this.update_model(t.model.name).then(e=>{console.log("update_model",e),this.configFile.model_name=t.model.name,e.status?(this.$store.state.toast.showToast(`Selected model: `+t.name,4,!0),Re(()=>{feather.replace(),this.is_loading_zoo=!1}),this.updateModelsZoo(),this.api_get_req("get_model_status").then(n=>{this.$store.commit("setIsModelOk",n)})):(this.$store.state.toast.showToast(`Couldn't select model: @@ -442,4 +442,4 @@ You have the freedom to give, sell, or keep the personas you create for yourself The possibilities are endless, they are now yours to mold and customize as you see fit.`),this.$store.dispatch("refreshPersonalitiesZoo")):this.$store.state.toast.showToast(`Personality couldn't be copied to the custom personalities folder: Verify that the personality is not already copied there.`,4,!1)}).catch(e=>{this.$store.state.toast.showToast(`Personality couldn't be copied to the custom personalities folder: `,4,!1),console.error(e)})},async remountPersonality(t){await this.unmountPersonality(t),await this.mountPersonality(t)},onPersonalityReinstall(t){console.log("on reinstall ",t),this.isLoading=!0,console.log("Personality path:",t.personality.path),se.post("/reinstall_personality",{client_id:this.$store.state.client_id,name:t.personality.path},{headers:this.posts_headers}).then(e=>{if(e)return this.isLoading=!1,console.log("reinstall_personality",e),e.data.status?this.$store.state.toast.showToast("Personality reinstalled successfully!",4,!0):this.$store.state.toast.showToast("Could not reinstall personality",4,!1),e.data;this.isLoading=!1}).catch(e=>(this.isLoading=!1,this.$store.state.toast.showToast(`Could not reinstall personality -`+e.message,4,!1),{status:!1}))},async handleOpenFolder(t){await se.post("/open_personality_folder",{client_id:this.$store.state.client_id,personality_folder:t.personality.folder})},showMessage(t,e){this.message=t,this.successMessage=e,setTimeout(()=>{this.message=""},3e3)},loadPersonalities(){this.loading=!0,setTimeout(()=>{this.personalities=this.$store.state.personalities,this.loading=!1},500)}},mounted(){this.loadFavoritesFromLocalStorage(),this.loading=!0,setTimeout(()=>{this.personalities=this.$store.state.personalities,this.loading=!1},500)}},Gar={class:"app-zoo mb-100 pb-100 pt-12 background-color w-full p-6 overflow-y-auto h-screen scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary"},qar={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},jar={class:"flex flex-wrap items-center justify-between gap-4"},zar={key:0},Yar={key:1,class:"error"},War={class:"relative flex-grow max-w-md"},Kar={class:"flex items-center space-x-4"},Zar=["value"],Xar={class:"flex items-center space-x-4"},Jar={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},e2r={key:1},t2r={class:"container mx-auto px-4 flex flex-column pb-20"},n2r={key:0},r2r={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},o2r={class:"container mx-auto px-4 flex flex-column pb-20"},i2r={class:"text-2xl font-bold my-8"},s2r={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},a2r={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 overflow-y-auto"},l2r={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},c2r={class:"flex justify-between items-center mb-4"},u2r={class:"text-2xl font-bold"},d2r=["srcdoc"],T2r={key:1,class:"text-center text-red-500"};function f2r(t,e,n,r,o,i){const s=Ke("personality-entry");return N(),D("div",Gar,[h("nav",qar,[h("div",jar,[o.message?(N(),D("p",zar,ee(o.message),1)):W("",!0),o.error?(N(),D("p",Yar,ee(o.error),1)):W("",!0),h("div",War,[Y(h("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>o.searchQuery=a),placeholder:"Search personalities...",class:"w-full border-b-2 border-gray-300 px-4 py-2 pl-10 focus:outline-none focus:border-blue-500 transition duration-300 ease-in-out","aria-label":"Search personalities"},null,512),[[fe,o.searchQuery]]),e[5]||(e[5]=h("svg",{class:"w-5 h-5 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1))]),h("div",Kar,[e[7]||(e[7]=h("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Y(h("select",{id:"category-select","onUpdate:modelValue":e[1]||(e[1]=a=>o.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[6]||(e[6]=h("option",{value:"all"},"All Categories",-1)),(N(!0),D(Ae,null,Ge(i.categories,a=>(N(),D("option",{key:a,value:a},ee(a),9,Zar))),128))],512),[[$t,o.selectedCategory]])]),h("div",Xar,[e[9]||(e[9]=h("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Y(h("select",{id:"sort-select","onUpdate:modelValue":e[2]||(e[2]=a=>o.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[8]||(e[8]=[h("option",{value:"name"},"Name",-1),h("option",{value:"author"},"Author",-1),h("option",{value:"date"},"Creation Date",-1),h("option",{value:"update"},"Last Update",-1)]),512),[[$t,o.sortBy]]),h("button",{onClick:e[3]||(e[3]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},ee(o.sortOrder==="asc"?"↑":"↓"),1)])])]),o.loading?(N(),D("div",Jar,e[10]||(e[10]=[h("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),h("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),D("div",e2r,[h("div",t2r,[i.favoriteApps.length>0&&!o.searchQuery?(N(),D("div",n2r,[e[11]||(e[11]=h("h2",{class:"text-2xl font-bold my-8"},"Favorite Apps",-1)),h("div",r2r,[(N(!0),D(Ae,null,Ge(i.favoriteApps,a=>(N(),at(s,{ref_for:!0,ref:"personalitiesZoo",key:a.uid,personality:a,select_language:!0,full_path:a.full_path,selected:i.configFile.active_personality_id==i.configFile.personalities.findIndex(l=>l===a.full_path||l===a.full_path+":"+a.language),"on-selected":i.onPersonalitySelected,"on-mount":i.mountPersonality,"on-un-mount":i.unmountPersonality,"on-remount":i.remountPersonality,"on-edit":i.editPersonality,"on-copy-to-custom":i.copyToCustom,"on-reinstall":i.onPersonalityReinstall,"on-settings":t.onSettingsPersonality,"on-copy-personality-name":t.onCopyPersonalityName,"on-copy-to_custom":t.onCopyToCustom,"on-open-folder":i.handleOpenFolder,"on-toggle-favorite":i.toggleFavorite},null,8,["personality","full_path","selected","on-selected","on-mount","on-un-mount","on-remount","on-edit","on-copy-to-custom","on-reinstall","on-settings","on-copy-personality-name","on-copy-to_custom","on-open-folder","on-toggle-favorite"]))),128))])])):W("",!0)]),h("div",o2r,[h("h2",i2r,ee(i.currentCategoryName)+" ("+ee(i.sortedAndFilteredPersonalities.length)+")",1),h("div",s2r,[(N(!0),D(Ae,null,Ge(i.sortedAndFilteredPersonalities,a=>(N(),at(s,{ref_for:!0,ref:"personalitiesZoo",key:a.uid,personality:a,select_language:!0,full_path:a.full_path,selected:i.configFile.active_personality_id==i.configFile.personalities.findIndex(l=>l===a.full_path||l===a.full_path+":"+a.language),"on-selected":i.onPersonalitySelected,"on-mount":i.mountPersonality,"on-un-mount":i.unmountPersonality,"on-remount":i.remountPersonality,"on-edit":i.editPersonality,"on-copy-to-custom":i.copyToCustom,"on-reinstall":i.onPersonalityReinstall,"on-settings":t.onSettingsPersonality,"on-copy-personality-name":t.onCopyPersonalityName,"on-copy-to_custom":t.onCopyToCustom,"on-open-folder":i.handleOpenFolder,"toggle-favorite":i.toggleFavorite},null,8,["personality","full_path","selected","on-selected","on-mount","on-un-mount","on-remount","on-edit","on-copy-to-custom","on-reinstall","on-settings","on-copy-personality-name","on-copy-to_custom","on-open-folder","toggle-favorite"]))),128))])])])),o.selectedApp?(N(),D("div",a2r,[h("div",l2r,[h("div",c2r,[h("h2",u2r,ee(o.selectedApp.name),1),h("button",{onClick:e[4]||(e[4]=(...a)=>t.backToZoo&&t.backToZoo(...a)),class:"bg-gray-300 hover:bg-gray-400 px-4 py-2 rounded-lg transition duration-300 ease-in-out"},"Close")]),o.appCode?(N(),D("iframe",{key:0,srcdoc:o.appCode,class:"flex-grow border-none"},null,8,d2r)):(N(),D("p",T2r,"Please install this app to view its code."))])])):W("",!0),o.message?(N(),D("div",{key:3,class:Le(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":o.successMessage,"bg-red-100 text-red-800":!o.successMessage}])},ee(o.message),3)):W("",!0),e[12]||(e[12]=h("div",{class:"h-20"},null,-1))])}const p2r=Je(Uar,[["render",f2r],["__scopeId","data-v-f8c39e0b"]]),h2r=oG({history:IU("/"),routes:[{path:"/apps_view/",name:"AppsZoo",component:Far},{path:"/personalities_view/",name:"PersonalitiesZoo",component:p2r},{path:"/auto_sd_view/",name:"AutoSD",component:q1r},{path:"/comfyui_view/",name:"ComfyUI",component:$1r},{path:"/playground/",name:"playground",component:EHn},{path:"/extensions/",name:"extensions",component:RHn},{path:"/help_view/",name:"help_view",component:UHn},{path:"/settings/",name:"settings",component:pZn},{path:"/training/",name:"training",component:CZn},{path:"/quantizing/",name:"quantizing",component:NZn},{path:"/",name:"discussions",component:Frr},{path:"/nodes/",name:"nodes",component:k1r}]}),s7=X$(sDn);function m2r(t){const e={};for(const n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}const _i=SB({state(){return{theme_vars:{lollms_title:"LoLLMS",falling_object:"L",activate_dropping_animation:!1,lollms_welcome_short_message:"Welcome to LoLLMS WebUI",lollms_welcome_message:"Embark on a journey through the realm of advanced AI with LoLLMS, your ultimate companion for intelligent conversations and multimodal interactions. Unleash the power of large language models and explore new frontiers in artificial intelligence."},personalities_ready:!1,is_rt_on:!1,language:"english",languages:[],currentTheme:"",personality_editor:null,showPersonalityEditor:!1,selectedPersonality:null,currentPersonConfig:{ai_name:"",ai_author:"",ai_category:"",ai_language:"",ai_description:"",ai_conditionning:"",ai_disclaimer:"",ai_icon:null},posts_headers:{accept:"application/json","Content-Type":"application/json"},client_id:"",leftPanelCollapsed:!1,rightPanelCollapsed:!0,view_mode:localStorage.getItem("lollms_webui_view_mode")||"compact",yesNoDialog:null,universalForm:null,saveConfiguration:null,toast:null,news:null,messageBox:null,api_get_req:null,api_post_req:null,startSpeechRecognition:null,ready:!1,loading_infos:"",loading_progress:0,version:"unknown",settingsChanged:!1,isConnected:!1,isModelOk:!1,isGenerating:!1,config:null,mountedPers:null,mountedPersArr:[],bindingsZoo:[],modelsArr:[],selectedModel:null,personalities:[],diskUsage:null,ramUsage:null,vramUsage:null,modelsZoo:[],installedModels:[],installedBindings:[],currentModel:null,currentBinding:null,databases:[]}},mutations:{updatePersonality(t,e){const n=t.personalities.findIndex(r=>r.full_path===e.full_path);n!==-1?t.personalities[n]=e:console.log("Can't uipdate personality beceause it was Not found:",e.full_path)},setThemeVars(t,e){t.theme_vars=e},setLeftPanelCollapsed(t,e){t.leftPanelCollapsed=e,console.log(`Saving the status of left panel to ${e}`),localStorage.setItem("lollms_webui_left_panel_collapsed",e)},setRightPanelCollapsed(t,e){t.rightPanelCollapsed=e,console.log(`Saving the status of right panel to ${e}`),localStorage.setItem("lollms_webui_right_panel_collapsed",e)},setViewMode(t,e){t.view_mode=e,localStorage.setItem("lollms_webui_view_mode",e)},setpersonalitiesReady(t,e){t.personalities_ready=e},setisRTOn(t,e){t.is_rt_on=e},setLanguages(t,e){t.languages=e},setLanguage(t,e){t.language=e},setIsReady(t,e){t.ready=e},setIsConnected(t,e){t.isConnected=e},setIsModelOk(t,e){t.isModelOk=e},setIsGenerating(t,e){t.isGenerating=e},setConfig(t,e){t.config=e},setPersonalities(t,e){t.personalities=e},setMountedPers(t,e){t.mountedPers=e},setMountedPersArr(t,e){t.mountedPersArr=e},setbindingsZoo(t,e){t.bindingsZoo=e},setModelsArr(t,e){t.modelsArr=e},setselectedModel(t,e){t.selectedModel=e},setDiskUsage(t,e){t.diskUsage=e},setRamUsage(t,e){t.ramUsage=e},setVramUsage(t,e){t.vramUsage=e},setModelsZoo(t,e){t.modelsZoo=e},setCurrentBinding(t,e){t.currentBinding=e},setCurrentModel(t,e){t.currentModel=e},setDatabases(t,e){t.databases=e},setTheme(t){this.currentTheme=t}},getters:{getThemeVars(t){return t.theme_vars},getLeftPanelCollapsed(t){return t.leftPanelCollapsed},getRightPanelCollapsed(t){return t.rightPanelCollapsed},getViewMode(t){return t.view_mode},getpersonalitiesReady(t){return t.personalities_ready},getisRTOn(t){return t.is_rt_on},getLanguages(t){return t.languages},getLanguage(t){return t.language},getIsConnected(t){return t.isConnected},getIsModelOk(t){return t.isModelOk},getIsGenerating(t){return t.isGenerating},getConfig(t){return t.config},getPersonalities(t){return t.personalities},getMountedPersArr(t){return t.mountedPersArr},getMountedPers(t){return t.mountedPers},getbindingsZoo(t){return t.bindingsZoo},getModelsArr(t){return t.modelsArr},getDiskUsage(t){return t.diskUsage},getRamUsage(t){return t.ramUsage},getVramUsage(t){return t.vramUsage},getDatabasesList(t){return t.databases},getModelsZoo(t){return t.modelsZoo},getCyrrentBinding(t){return t.currentBinding},getCurrentModel(t){return t.currentModel}},actions:{async getVersion(){try{let t=await se.get("/get_lollms_webui_version",{});t&&(t=t.data,t.version_type!=""?this.state.version=`${t.version_main}.${t.version_secondary} ${t.version_type} (${t.version_codename})`:this.state.version=`${t.version_main}.${t.version_secondary} (${t.version_codename})`)}catch{console.error("Coudln't get version")}},async refreshConfig({commit:t}){console.log("Fetching configuration");try{console.log("Fetching configuration with client id: ",this.state.client_id);const e=await qH("get_config",this.state.client_id);e.active_personality_id<0&&(e.active_personality_id=0);let n=e.personalities[e.active_personality_id].split("/");e.personality_category=n[0],e.personality_folder=n[1],console.log("Recovered config"),console.log(e),console.log("Committing config"),console.log(e),console.log(this.state.config),t("setConfig",e)}catch(e){console.log(e.message,"refreshConfig")}},async refreshDatabase({commit:t}){let e=await Oo("list_databases");console.log("databases:",e),t("setDatabases",e)},async fetchisRTOn({commit:t}){const n=(await se.get("/is_rt_on")).data.status;t("setisRTOn",n)},async fetchLanguages({commit:t}){console.log("get_personality_languages_list",this.state.client_id);const e=await se.post("/get_personality_languages_list",{client_id:this.state.client_id});console.log("response",e);const n=e.data;console.log("languages",n),t("setLanguages",n)},async fetchLanguage({commit:t}){console.log("get_personality_language",this.state.client_id);const e=await se.post("/get_personality_language",{client_id:this.state.client_id});console.log("response",e);const n=e.data;console.log("language",n),t("setLanguage",n)},async changeLanguage({commit:t},e){console.log("Changing language to ",e);let n=await se.post("/set_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await se.post("/get_personality_languages_list",{client_id:this.state.client_id}),console.log("response",n);const r=n.data;console.log("languages",r),t("setLanguages",r),n=await se.post("/get_personality_language",{client_id:this.state.client_id}),console.log("response",n);const o=n.data;console.log("language",o),t("setLanguage",o),await this.dispatch("refreshMountedPersonalities"),console.log("Language changed successfully:",o)},async deleteLanguage({commit:t},e){console.log("Deleting ",e);let n=await se.post("/del_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await se.post("/get_personality_languages_list",{client_id:this.state.client_id});const r=n.data;t("setLanguages",r),n=await se.post("/get_personality_language",{client_id:this.state.client_id});const o=n.data;t("setLanguage",o)},async refreshPersonalitiesZoo({commit:t}){let e=[];const n=await Oo("get_all_personalities"),r=Object.keys(n);for(let o=0;o{let c=!1;for(const d of this.state.config.personalities)d.includes(i+"/"+l.folder)&&(c=!0);let u={};return u=l,u.category=i,u.full_path=i+"/"+l.folder,u.isMounted=c,u});e.length==0?e=a:e=e.concat(a)}e.sort((o,i)=>o.name.localeCompare(i.name)),t("setPersonalities",e),console.log("Done loading personalities")},refreshMountedPersonalities({commit:t}){this.state.config.active_personality_id<0&&(this.state.config.active_personality_id=0);let e=[];const n=[];for(let o=0;oa.full_path==i);if(s>=0){let a=m2r(this.state.personalities[s]);a?e.push(a):e.push(this.state.personalities[this.state.personalities.findIndex(l=>l.full_path=="generic/lollms")])}else n.push(o),console.log("Couldn't load personality : ",i)}for(let o=n.length-1;o>=0;o--)this.state.config.personalities.splice(n[o],1),this.state.config.active_personality_id>n[o]&&(this.state.config.active_personality_id-=1);t("setMountedPersArr",e);const r=this.state.personalities[this.state.personalities.findIndex(o=>o.full_path==this.state.config.personalities[this.state.config.active_personality_id])];console.log("Setting current mounted personality: ",r),this.state.mountedPers=r},async refreshBindings({commit:t}){let e=await Oo("list_bindings");console.log("Loaded bindings zoo :",e),this.state.installedBindings=e.filter(r=>r.installed),console.log("Loaded bindings zoo ",this.state.installedBindings),t("setbindingsZoo",e);const n=e.findIndex(r=>r.name==this.state.config.binding_name);n!=-1&&t("setCurrentBinding",e[n])},async refreshModelsZoo({commit:t}){const n=(await se.get("/get_available_models")).data;t("setModelsZoo",n)},async refreshModelStatus({commit:t}){let e=await Oo("get_model_status");t("setIsModelOk",e.status)},async refreshModels({commit:t}){let e=await Oo("list_models"),n=await Oo("get_active_model");n!=null&&t("setselectedModel",n.model),t("setModelsArr",e),this.state.modelsZoo.map(o=>{o.isInstalled=e.includes(o.name)}),this.state.installedModels=this.state.modelsZoo.filter(o=>o.isInstalled);const r=this.state.modelsZoo.findIndex(o=>o.name==this.state.config.model_name);r!=-1&&t("setCurrentModel",this.state.modelsZoo[r])},async refreshDiskUsage({commit:t}){this.state.diskUsage=await Oo("disk_usage")},async refreshRamUsage({commit:t}){this.state.ramUsage=await Oo("ram_usage")},async refreshVramUsage({commit:t}){const e=await Oo("vram_usage"),n=[];if(e.nb_gpus>0){for(let o=0;o{this.message=""},3e3)},loadPersonalities(){this.loading=!0,setTimeout(()=>{this.personalities=this.$store.state.personalities,this.loading=!1},500)}},mounted(){this.loadFavoritesFromLocalStorage(),this.loading=!0,setTimeout(()=>{this.personalities=this.$store.state.personalities,this.loading=!1},500)}},qar={class:"app-zoo mb-100 pb-100 pt-12 background-color w-full p-6 overflow-y-auto h-screen scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary"},jar={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},zar={class:"flex flex-wrap items-center justify-between gap-4"},Yar={key:0},War={key:1,class:"error"},Kar={class:"relative flex-grow max-w-md"},Zar={class:"flex items-center space-x-4"},Xar=["value"],Jar={class:"flex items-center space-x-4"},e2r={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},t2r={key:1},n2r={class:"container mx-auto px-4 flex flex-column pb-20"},r2r={key:0},o2r={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},i2r={class:"container mx-auto px-4 flex flex-column pb-20"},s2r={class:"text-2xl font-bold my-8"},a2r={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},l2r={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 overflow-y-auto"},c2r={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},u2r={class:"flex justify-between items-center mb-4"},d2r={class:"text-2xl font-bold"},T2r=["srcdoc"],f2r={key:1,class:"text-center text-red-500"};function p2r(t,e,n,r,o,i){const s=Ke("personality-entry");return N(),D("div",qar,[h("nav",jar,[h("div",zar,[o.message?(N(),D("p",Yar,ee(o.message),1)):W("",!0),o.error?(N(),D("p",War,ee(o.error),1)):W("",!0),h("div",Kar,[Y(h("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>o.searchQuery=a),placeholder:"Search personalities...",class:"w-full border-b-2 border-gray-300 px-4 py-2 pl-10 focus:outline-none focus:border-blue-500 transition duration-300 ease-in-out","aria-label":"Search personalities"},null,512),[[fe,o.searchQuery]]),e[5]||(e[5]=h("svg",{class:"w-5 h-5 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1))]),h("div",Zar,[e[7]||(e[7]=h("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Y(h("select",{id:"category-select","onUpdate:modelValue":e[1]||(e[1]=a=>o.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[6]||(e[6]=h("option",{value:"all"},"All Categories",-1)),(N(!0),D(Ae,null,Ge(i.categories,a=>(N(),D("option",{key:a,value:a},ee(a),9,Xar))),128))],512),[[$t,o.selectedCategory]])]),h("div",Jar,[e[9]||(e[9]=h("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Y(h("select",{id:"sort-select","onUpdate:modelValue":e[2]||(e[2]=a=>o.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[8]||(e[8]=[h("option",{value:"name"},"Name",-1),h("option",{value:"author"},"Author",-1),h("option",{value:"date"},"Creation Date",-1),h("option",{value:"update"},"Last Update",-1)]),512),[[$t,o.sortBy]]),h("button",{onClick:e[3]||(e[3]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},ee(o.sortOrder==="asc"?"↑":"↓"),1)])])]),o.loading?(N(),D("div",e2r,e[10]||(e[10]=[h("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),h("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),D("div",t2r,[h("div",n2r,[i.favoriteApps.length>0&&!o.searchQuery?(N(),D("div",r2r,[e[11]||(e[11]=h("h2",{class:"text-2xl font-bold my-8"},"Favorite Apps",-1)),h("div",o2r,[(N(!0),D(Ae,null,Ge(i.favoriteApps,a=>(N(),at(s,{ref_for:!0,ref:"personalitiesZoo",key:a.uid,personality:a,select_language:!0,full_path:a.full_path,selected:i.configFile.active_personality_id==i.configFile.personalities.findIndex(l=>l===a.full_path||l===a.full_path+":"+a.language),"on-selected":i.onPersonalitySelected,"on-mount":i.mountPersonality,"on-un-mount":i.unmountPersonality,"on-remount":i.remountPersonality,"on-edit":i.editPersonality,"on-copy-to-custom":i.copyToCustom,"on-reinstall":i.onPersonalityReinstall,"on-settings":t.onSettingsPersonality,"on-copy-personality-name":t.onCopyPersonalityName,"on-copy-to_custom":t.onCopyToCustom,"on-open-folder":i.handleOpenFolder,"on-toggle-favorite":i.toggleFavorite},null,8,["personality","full_path","selected","on-selected","on-mount","on-un-mount","on-remount","on-edit","on-copy-to-custom","on-reinstall","on-settings","on-copy-personality-name","on-copy-to_custom","on-open-folder","on-toggle-favorite"]))),128))])])):W("",!0)]),h("div",i2r,[h("h2",s2r,ee(i.currentCategoryName)+" ("+ee(i.sortedAndFilteredPersonalities.length)+")",1),h("div",a2r,[(N(!0),D(Ae,null,Ge(i.sortedAndFilteredPersonalities,a=>(N(),at(s,{ref_for:!0,ref:"personalitiesZoo",key:a.uid,personality:a,select_language:!0,full_path:a.full_path,selected:i.configFile.active_personality_id==i.configFile.personalities.findIndex(l=>l===a.full_path||l===a.full_path+":"+a.language),"on-selected":i.onPersonalitySelected,"on-mount":i.mountPersonality,"on-un-mount":i.unmountPersonality,"on-remount":i.remountPersonality,"on-edit":i.editPersonality,"on-copy-to-custom":i.copyToCustom,"on-reinstall":i.onPersonalityReinstall,"on-settings":t.onSettingsPersonality,"on-copy-personality-name":t.onCopyPersonalityName,"on-copy-to_custom":t.onCopyToCustom,"on-open-folder":i.handleOpenFolder,"toggle-favorite":i.toggleFavorite},null,8,["personality","full_path","selected","on-selected","on-mount","on-un-mount","on-remount","on-edit","on-copy-to-custom","on-reinstall","on-settings","on-copy-personality-name","on-copy-to_custom","on-open-folder","toggle-favorite"]))),128))])])])),o.selectedApp?(N(),D("div",l2r,[h("div",c2r,[h("div",u2r,[h("h2",d2r,ee(o.selectedApp.name),1),h("button",{onClick:e[4]||(e[4]=(...a)=>t.backToZoo&&t.backToZoo(...a)),class:"bg-gray-300 hover:bg-gray-400 px-4 py-2 rounded-lg transition duration-300 ease-in-out"},"Close")]),o.appCode?(N(),D("iframe",{key:0,srcdoc:o.appCode,class:"flex-grow border-none"},null,8,T2r)):(N(),D("p",f2r,"Please install this app to view its code."))])])):W("",!0),o.message?(N(),D("div",{key:3,class:Le(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":o.successMessage,"bg-red-100 text-red-800":!o.successMessage}])},ee(o.message),3)):W("",!0),e[12]||(e[12]=h("div",{class:"h-20"},null,-1))])}const h2r=Je(Gar,[["render",p2r],["__scopeId","data-v-f8c39e0b"]]),m2r=oG({history:IU("/"),routes:[{path:"/apps_view/",name:"AppsZoo",component:Uar},{path:"/personalities_view/",name:"PersonalitiesZoo",component:h2r},{path:"/auto_sd_view/",name:"AutoSD",component:j1r},{path:"/comfyui_view/",name:"ComfyUI",component:B1r},{path:"/playground/",name:"playground",component:EHn},{path:"/extensions/",name:"extensions",component:RHn},{path:"/help_view/",name:"help_view",component:UHn},{path:"/settings/",name:"settings",component:pZn},{path:"/training/",name:"training",component:CZn},{path:"/quantizing/",name:"quantizing",component:NZn},{path:"/",name:"discussions",component:Urr},{path:"/nodes/",name:"nodes",component:I1r}]}),s7=X$(sDn);function g2r(t){const e={};for(const n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}const _i=SB({state(){return{theme_vars:{lollms_title:"LoLLMS",falling_object:"L",activate_dropping_animation:!1,lollms_welcome_short_message:"Welcome to LoLLMS WebUI",lollms_welcome_message:"Embark on a journey through the realm of advanced AI with LoLLMS, your ultimate companion for intelligent conversations and multimodal interactions. Unleash the power of large language models and explore new frontiers in artificial intelligence."},personalities_ready:!1,is_rt_on:!1,language:"english",languages:[],currentTheme:"",personality_editor:null,showPersonalityEditor:!1,selectedPersonality:null,currentPersonConfig:{ai_name:"",ai_author:"",ai_category:"",ai_language:"",ai_description:"",ai_conditionning:"",ai_disclaimer:"",ai_icon:null},posts_headers:{accept:"application/json","Content-Type":"application/json"},client_id:"",leftPanelCollapsed:!1,rightPanelCollapsed:!0,view_mode:localStorage.getItem("lollms_webui_view_mode")||"compact",yesNoDialog:null,universalForm:null,saveConfiguration:null,toast:null,news:null,messageBox:null,api_get_req:null,api_post_req:null,startSpeechRecognition:null,ready:!1,loading_infos:"",loading_progress:0,version:"unknown",settingsChanged:!1,isConnected:!1,isModelOk:!1,isGenerating:!1,config:null,mountedPers:null,mountedPersArr:[],bindingsZoo:[],modelsArr:[],selectedModel:null,personalities:[],diskUsage:null,ramUsage:null,vramUsage:null,modelsZoo:[],installedModels:[],installedBindings:[],currentModel:null,currentBinding:null,databases:[]}},mutations:{updatePersonality(t,e){const n=t.personalities.findIndex(r=>r.full_path===e.full_path);n!==-1?t.personalities[n]=e:console.log("Can't uipdate personality beceause it was Not found:",e.full_path)},setThemeVars(t,e){t.theme_vars=e},setLeftPanelCollapsed(t,e){t.leftPanelCollapsed=e,console.log(`Saving the status of left panel to ${e}`),localStorage.setItem("lollms_webui_left_panel_collapsed",e)},setRightPanelCollapsed(t,e){t.rightPanelCollapsed=e,console.log(`Saving the status of right panel to ${e}`),localStorage.setItem("lollms_webui_right_panel_collapsed",e)},setViewMode(t,e){t.view_mode=e,localStorage.setItem("lollms_webui_view_mode",e)},setpersonalitiesReady(t,e){t.personalities_ready=e},setisRTOn(t,e){t.is_rt_on=e},setLanguages(t,e){t.languages=e},setLanguage(t,e){t.language=e},setIsReady(t,e){t.ready=e},setIsConnected(t,e){t.isConnected=e},setIsModelOk(t,e){t.isModelOk=e},setIsGenerating(t,e){t.isGenerating=e},setConfig(t,e){t.config=e},setPersonalities(t,e){t.personalities=e},setMountedPers(t,e){t.mountedPers=e},setMountedPersArr(t,e){t.mountedPersArr=e},setbindingsZoo(t,e){t.bindingsZoo=e},setModelsArr(t,e){t.modelsArr=e},setselectedModel(t,e){t.selectedModel=e},setDiskUsage(t,e){t.diskUsage=e},setRamUsage(t,e){t.ramUsage=e},setVramUsage(t,e){t.vramUsage=e},setModelsZoo(t,e){t.modelsZoo=e},setCurrentBinding(t,e){t.currentBinding=e},setCurrentModel(t,e){t.currentModel=e},setDatabases(t,e){t.databases=e},setTheme(t){this.currentTheme=t}},getters:{getThemeVars(t){return t.theme_vars},getLeftPanelCollapsed(t){return t.leftPanelCollapsed},getRightPanelCollapsed(t){return t.rightPanelCollapsed},getViewMode(t){return t.view_mode},getpersonalitiesReady(t){return t.personalities_ready},getisRTOn(t){return t.is_rt_on},getLanguages(t){return t.languages},getLanguage(t){return t.language},getIsConnected(t){return t.isConnected},getIsModelOk(t){return t.isModelOk},getIsGenerating(t){return t.isGenerating},getConfig(t){return t.config},getPersonalities(t){return t.personalities},getMountedPersArr(t){return t.mountedPersArr},getMountedPers(t){return t.mountedPers},getbindingsZoo(t){return t.bindingsZoo},getModelsArr(t){return t.modelsArr},getDiskUsage(t){return t.diskUsage},getRamUsage(t){return t.ramUsage},getVramUsage(t){return t.vramUsage},getDatabasesList(t){return t.databases},getModelsZoo(t){return t.modelsZoo},getCyrrentBinding(t){return t.currentBinding},getCurrentModel(t){return t.currentModel}},actions:{async getVersion(){try{let t=await se.get("/get_lollms_webui_version",{});t&&(t=t.data,t.version_type!=""?this.state.version=`${t.version_main}.${t.version_secondary} ${t.version_type} (${t.version_codename})`:this.state.version=`${t.version_main}.${t.version_secondary} (${t.version_codename})`)}catch{console.error("Coudln't get version")}},async refreshConfig({commit:t}){console.log("Fetching configuration");try{console.log("Fetching configuration with client id: ",this.state.client_id);const e=await qH("get_config",this.state.client_id);e.active_personality_id<0&&(e.active_personality_id=0);let n=e.personalities[e.active_personality_id].split("/");e.personality_category=n[0],e.personality_folder=n[1],console.log("Recovered config"),console.log(e),console.log("Committing config"),console.log(e),console.log(this.state.config),t("setConfig",e)}catch(e){console.log(e.message,"refreshConfig")}},async refreshDatabase({commit:t}){let e=await Oo("list_databases");console.log("databases:",e),t("setDatabases",e)},async fetchisRTOn({commit:t}){const n=(await se.get("/is_rt_on")).data.status;t("setisRTOn",n)},async fetchLanguages({commit:t}){console.log("get_personality_languages_list",this.state.client_id);const e=await se.post("/get_personality_languages_list",{client_id:this.state.client_id});console.log("response",e);const n=e.data;console.log("languages",n),t("setLanguages",n)},async fetchLanguage({commit:t}){console.log("get_personality_language",this.state.client_id);const e=await se.post("/get_personality_language",{client_id:this.state.client_id});console.log("response",e);const n=e.data;console.log("language",n),t("setLanguage",n)},async changeLanguage({commit:t},e){console.log("Changing language to ",e);let n=await se.post("/set_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await se.post("/get_personality_languages_list",{client_id:this.state.client_id}),console.log("response",n);const r=n.data;console.log("languages",r),t("setLanguages",r),n=await se.post("/get_personality_language",{client_id:this.state.client_id}),console.log("response",n);const o=n.data;console.log("language",o),t("setLanguage",o),await this.dispatch("refreshMountedPersonalities"),console.log("Language changed successfully:",o)},async deleteLanguage({commit:t},e){console.log("Deleting ",e);let n=await se.post("/del_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await se.post("/get_personality_languages_list",{client_id:this.state.client_id});const r=n.data;t("setLanguages",r),n=await se.post("/get_personality_language",{client_id:this.state.client_id});const o=n.data;t("setLanguage",o)},async refreshPersonalitiesZoo({commit:t}){let e=[];const n=await Oo("get_all_personalities"),r=Object.keys(n);for(let o=0;o{let c=!1;for(const d of this.state.config.personalities)d.includes(i+"/"+l.folder)&&(c=!0);let u={};return u=l,u.category=i,u.full_path=i+"/"+l.folder,u.isMounted=c,u});e.length==0?e=a:e=e.concat(a)}e.sort((o,i)=>o.name.localeCompare(i.name)),t("setPersonalities",e),console.log("Done loading personalities")},refreshMountedPersonalities({commit:t}){this.state.config.active_personality_id<0&&(this.state.config.active_personality_id=0);let e=[];const n=[];for(let o=0;oa.full_path==i);if(s>=0){let a=g2r(this.state.personalities[s]);a?e.push(a):e.push(this.state.personalities[this.state.personalities.findIndex(l=>l.full_path=="generic/lollms")])}else n.push(o),console.log("Couldn't load personality : ",i)}for(let o=n.length-1;o>=0;o--)this.state.config.personalities.splice(n[o],1),this.state.config.active_personality_id>n[o]&&(this.state.config.active_personality_id-=1);t("setMountedPersArr",e);const r=this.state.personalities[this.state.personalities.findIndex(o=>o.full_path==this.state.config.personalities[this.state.config.active_personality_id])];console.log("Setting current mounted personality: ",r),this.state.mountedPers=r},async refreshBindings({commit:t}){let e=await Oo("list_bindings");console.log("Loaded bindings zoo :",e),this.state.installedBindings=e.filter(r=>r.installed),console.log("Loaded bindings zoo ",this.state.installedBindings),t("setbindingsZoo",e);const n=e.findIndex(r=>r.name==this.state.config.binding_name);n!=-1&&t("setCurrentBinding",e[n])},async refreshModelsZoo({commit:t}){const n=(await se.get("/get_available_models")).data;t("setModelsZoo",n)},async refreshModelStatus({commit:t}){let e=await Oo("get_model_status");t("setIsModelOk",e.status)},async refreshModels({commit:t}){let e=await Oo("list_models"),n=await Oo("get_active_model");n!=null&&t("setselectedModel",n.model),t("setModelsArr",e),this.state.modelsZoo.map(o=>{o.isInstalled=e.includes(o.name)}),this.state.installedModels=this.state.modelsZoo.filter(o=>o.isInstalled);const r=this.state.modelsZoo.findIndex(o=>o.name==this.state.config.model_name);r!=-1&&t("setCurrentModel",this.state.modelsZoo[r])},async refreshDiskUsage({commit:t}){this.state.diskUsage=await Oo("disk_usage")},async refreshRamUsage({commit:t}){this.state.ramUsage=await Oo("ram_usage")},async refreshVramUsage({commit:t}){const e=await Oo("vram_usage"),n=[];if(e.nb_gpus>0){for(let o=0;o + License: see project LICENSE + Touched: 2022 +*/.hljs-meta,.hljs-comment{color:#565f89}.hljs-tag,.hljs-doctag,.hljs-selector-id,.hljs-selector-class,.hljs-regexp,.hljs-template-tag,.hljs-selector-pseudo,.hljs-selector-attr,.hljs-variable.language_,.hljs-deletion{color:#f7768e}.hljs-variable,.hljs-template-variable,.hljs-number,.hljs-literal,.hljs-type,.hljs-params,.hljs-link{color:#ff9e64}.hljs-built_in,.hljs-attribute{color:#e0af68}.hljs-selector-tag{color:#2ac3de}.hljs-keyword,.hljs-title.function_,.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-subst,.hljs-property{color:#7dcfff}.hljs-selector-tag{color:#73daca}.hljs-quote,.hljs-string,.hljs-symbol,.hljs-bullet,.hljs-addition{color:#9ece6a}.hljs-code,.hljs-formula,.hljs-section{color:#7aa2f7}.hljs-name,.hljs-keyword,.hljs-operator,.hljs-char.escape_,.hljs-attr{color:#bb9af7}.hljs-punctuation{color:#c0caf5}.hljs{background:#1a1b26;color:#9aa5ce}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.code-container{display:flex;margin:0}.line-numbers{flex-shrink:0;padding-right:5px;color:#999;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;margin:0}.code-content{flex-grow:1;margin:0;outline:none}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.execute-button{display:flex;align-items:center;gap:.5rem}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.prose{color:inherit}.prose h1{margin-bottom:1rem;margin-top:1.5rem;font-size:1.5rem;line-height:2rem;font-weight:700}.prose h2{margin-bottom:.75rem;margin-top:1.25rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}.prose h3{margin-bottom:.5rem;margin-top:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:700}.prose p{margin-bottom:1rem}.prose ul{margin-bottom:1rem;list-style-type:disc;padding-left:1.25rem}.prose ol{margin-bottom:1rem;list-style-type:decimal;padding-left:1.25rem}.prose code{border-radius:.25rem;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-bg-opacity: .1;padding:.125rem .25rem;font-family:JetBrains Mono,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.prose pre{margin-bottom:1rem;overflow-x:auto;border-radius:.5rem;padding:1rem}.prose pre code{background-color:transparent;padding:0}.prose blockquote{margin-top:1rem;margin-bottom:1rem;border-left-width:4px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding-left:1rem;font-style:italic}.prose a{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity));text-decoration-line:underline}.prose a:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.prose::-webkit-scrollbar{width:.5rem}.prose::-webkit-scrollbar-track{background-color:transparent}.prose::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity));-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.prose::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.prose{scroll-behavior:smooth}.math[data-v-8ca613b1]{display:inline-block}.mathjax_block[data-v-8ca613b1]{display:block}.progress-bar-container{background-color:#f0f0f0;border-radius:4px;height:8px;overflow:hidden}.progress-bar{background-color:#3498db;height:100%;transition:width .3s ease}.custom-scrollbar[data-v-8a34bb65]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px}.custom-scrollbar[data-v-8a34bb65]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}.toastItem-enter-active[data-v-46f379e5],.toastItem-leave-active[data-v-46f379e5]{transition:all .5s ease}.toastItem-enter-from[data-v-46f379e5],.toastItem-leave-to[data-v-46f379e5]{opacity:0;transform:translate(-30px)}.topbar-container[data-v-efa65484]{position:fixed;top:0;left:0;right:0;z-index:1000}.topbar[data-v-efa65484]{background-color:#ffffff1a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:transform .3s ease-in-out;display:flex;justify-content:center}.topbar-hidden[data-v-efa65484]{transform:translateY(-100%)}.topbar-content[data-v-efa65484]{display:flex;justify-content:space-between;align-items:center;max-width:1200px;width:100%}.pin-button[data-v-efa65484]{background-color:transparent;border:none;cursor:pointer;padding:5px;display:flex;align-items:center;justify-content:center}.pin-button svg[data-v-efa65484]{width:24px;height:24px;transition:transform .3s ease}.pin-button:hover svg[data-v-efa65484]{transform:scale(1.2)}.placeholder[data-v-efa65484]{height:10px}.topbar-container[data-v-efa65484]{position:relative;width:100%}.hover-zone[data-v-efa65484]{opacity:0}.error[data-v-efa65484]{color:red;margin-left:1rem}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000}.hovered{transform:scale(1.05);transition:transform .2s ease-in-out}.active{transform:scale(1.1);transition:transform .2s ease-in-out}.dropdown-shadow[data-v-6c3ea3a5]{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}:root.dark .dropdown-shadow[data-v-6c3ea3a5]{box-shadow:0 4px 6px -1px #ffffff1a,0 2px 4px -1px #ffffff0f}select{width:200px}body{background-color:#fafafa;font-family:sans-serif}.container{margin:4px auto;width:800px}.settings{position:fixed;top:0;right:0;width:500px;background-color:#fff;z-index:1000;overflow-y:auto;height:100%}.slider-container{margin-top:20px}.slider-value{display:inline-block;margin-left:10px;color:#6b7280;font-size:14px}.small-button{padding:.5rem .75rem;font-size:.875rem}.active-tab{font-weight:700}.help-view[data-v-8c1798f3]{min-height:100vh}.big-card[data-v-8c1798f3]{margin-left:auto;margin-right:auto;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:2rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.big-card[data-v-8c1798f3]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.help-sections-container[data-v-8c1798f3]{max-height:70vh;overflow-y:auto;padding-right:1rem}.help-section[data-v-8c1798f3]{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.help-content[data-v-8c1798f3]{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.help-content[data-v-8c1798f3]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar{width:12px}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar-thumb{background:#888;border-radius:10px;border:3px solid #f1f1f1}.help-sections-container[data-v-8c1798f3]::-webkit-scrollbar-thumb:hover{background:#555}.help-sections-container[data-v-8c1798f3]{scrollbar-width:thin;scrollbar-color:#888 #f1f1f1}.menu-container{position:relative;display:inline-block}.menu-button{background-color:#007bff;color:#fff;padding:10px;border:none;cursor:pointer;border-radius:4px}.menu-list{position:absolute;background-color:#fff;color:#000;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0003;padding:10px;max-width:500px;z-index:1000}.slide-enter-active,.slide-leave-active{transition:transform .2s}.slide-enter-to,.slide-leave-from{transform:translateY(-10px)}.menu-ul{list-style:none;padding:0;margin:0}.menu-li{cursor:pointer;display:flex;align-items:center;padding:5px}.menu-icon{width:20px;height:20px;margin-right:8px}.menu-command{min-width:200px;text-align:left}.fade-enter-active[data-v-f43216be],.fade-leave-active[data-v-f43216be]{transition:opacity .3s}.fade-enter[data-v-f43216be],.fade-leave-to[data-v-f43216be]{opacity:0}.input-field[data-v-40ced5e7]{width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.5rem .75rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.input-field[data-v-40ced5e7]:focus{border-color:transparent;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.input-field[data-v-40ced5e7]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.heartbeat-text[data-v-40ced5e7]{font-size:24px;animation:pulsate-40ced5e7 1.5s infinite}@keyframes pulsate-40ced5e7{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}to{transform:scale(1);opacity:1}}.list-move[data-v-40ced5e7],.list-enter-active[data-v-40ced5e7],.list-leave-active[data-v-40ced5e7]{transition:all .5s ease}.list-enter-from[data-v-40ced5e7]{transform:translatey(-30px)}.list-leave-to[data-v-40ced5e7]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-40ced5e7]{position:absolute}.bounce-enter-active[data-v-40ced5e7]{animation:bounce-in-40ced5e7 .5s}.bounce-leave-active[data-v-40ced5e7]{animation:bounce-in-40ced5e7 .5s reverse}@keyframes bounce-in-40ced5e7{0%{transform:scale(0)}50%{transform:scale(1.25)}to{transform:scale(1)}}.bg-primary-light[data-v-40ced5e7]{background-color:#0ff}.hover[data-v-40ced5e7]:bg-primary-light:hover{background-color:#7fffd4}.font-bold[data-v-40ced5e7]{font-weight:700}.control-buttons[data-v-2b3580ce]{position:absolute;top:0;right:0;height:100%;display:flex;align-items:center;transform:translate(100%);transition:transform .3s}.group:hover .control-buttons[data-v-2b3580ce]{transform:translate(0)}.control-buttons-inner[data-v-2b3580ce]{display:flex;gap:10px;align-items:center;background-color:#fff;padding:8px;border-radius:0 0 0 8px;box-shadow:0 2px 8px #0000001a}.json-tree-view[data-v-40406ec6]{margin-left:16px}.json-item[data-v-40406ec6]{margin-bottom:4px}.json-key[data-v-40406ec6]{cursor:pointer;display:flex;align-items:center}.toggle-icon[data-v-40406ec6]{margin-right:4px;width:12px}.key[data-v-40406ec6]{font-weight:700;margin-right:4px}.value[data-v-40406ec6]{margin-left:4px}.string[data-v-40406ec6]{color:#0b7285}.number[data-v-40406ec6]{color:#d9480f}.boolean[data-v-40406ec6]{color:#5c940d}.null[data-v-40406ec6]{color:#868e96}.json-nested[data-v-40406ec6]{margin-left:16px;border-left:1px dashed #ccc;padding-left:8px}.json-viewer[data-v-83fc9727]{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:14px;line-height:1.5;color:#333}.collapsible-section[data-v-83fc9727]{cursor:pointer;padding:8px;background-color:#f0f0f0;border-radius:4px;display:flex;align-items:center;transition:background-color .2s}.collapsible-section[data-v-83fc9727]:hover{background-color:#e0e0e0}.toggle-icon[data-v-83fc9727]{margin-right:8px;transition:transform .2s}.json-content[data-v-83fc9727]{margin-top:8px;padding-left:16px}.border-t-primary[data-v-2cb174d6]{border-color:#e2e8f0;border-top-color:currentColor}@keyframes spin-2cb174d6{to{transform:rotate(360deg)}}.animate-spin[data-v-2cb174d6]{animation:spin-2cb174d6 .8s linear infinite}.expand-button[data-v-5c83cd0b]{margin-left:10px;margin-right:10px;background:none;border:none;padding:0;cursor:pointer}.htmljs[data-v-5c83cd0b]{background:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .5s ease-out forwards}details[open] summary~*{animation:slideDown .3s ease-in-out}details summary::marker{display:none}details summary::-webkit-details-marker{display:none}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bounce-enter-active[data-v-f44002af]{animation:bounce-in-f44002af .5s}.bounce-leave-active[data-v-f44002af]{animation:bounce-in-f44002af .5s reverse}@keyframes bounce-in-f44002af{0%{transform:scale(0)}50%{transform:scale(1.25)}to{transform:scale(1)}}.custom-scrollbar[data-v-f7ef60f7]::-webkit-scrollbar{width:.5rem}.custom-scrollbar[data-v-f7ef60f7]::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-f7ef60f7]:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-f7ef60f7]::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-f7ef60f7]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-f7ef60f7]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-f7ef60f7]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.personalities-hover-area[data-v-3071a639]{position:relative;padding-top:10px}.custom-scrollbar[data-v-3071a639]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-3071a639]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-3071a639]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-3071a639]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}.list-move[data-v-3071a639],.list-enter-active[data-v-3071a639],.list-leave-active[data-v-3071a639]{transition:all .5s ease}.list-enter-from[data-v-3071a639]{transform:translatey(-30px)}.list-leave-to[data-v-3071a639]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-3071a639]{position:absolute}@keyframes rolling-ball-d9375d3e{0%{transform:translate(-50px) rotate(0)}25%{transform:translate(0) rotate(90deg)}50%{transform:translate(50px) rotate(180deg)}75%{transform:translate(0) rotate(270deg)}to{transform:translate(-50px) rotate(360deg)}}@keyframes bounce-d9375d3e{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fade-in-up-d9375d3e{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-rolling-ball[data-v-d9375d3e]{animation:rolling-ball-d9375d3e 4s infinite ease-in-out,bounce-d9375d3e 1s infinite ease-in-out}.animate-fade-in-up[data-v-d9375d3e]{animation:fade-in-up-d9375d3e 1.5s ease-out}.floating-button-container[data-v-d9375d3e]{position:fixed;bottom:30px;right:30px;z-index:9999}.floating-button[data-v-d9375d3e]{position:fixed;bottom:30px;right:30px;width:100px;height:100px;border-radius:50%;background-color:#ff4500e6;display:flex;justify-content:center;align-items:center;box-shadow:0 0 30px #ff4500cc;animation:pulse-d9375d3e 1.5s infinite,glow-d9375d3e 2s infinite,wobble-d9375d3e 3s infinite;overflow:hidden;z-index:9999;transition:all .3s ease}.floating-button[data-v-d9375d3e]:hover{transform:scale(1.2) rotate(5deg);background-color:#ff4500}.tooltip[data-v-d9375d3e]{position:absolute;background-color:#000c;color:#fff;padding:8px 12px;border-radius:8px;font-size:16px;font-weight:700;white-space:nowrap;opacity:0;transition:opacity .3s ease,transform .3s ease;pointer-events:none;top:-50px;left:50%;transform:translate(-50%) scale(.9)}.floating-button:hover .tooltip[data-v-d9375d3e]{opacity:1;transform:translate(-50%) scale(1)}@keyframes pulse-d9375d3e{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes glow-d9375d3e{0%{box-shadow:0 0 30px #ff4500cc}50%{box-shadow:0 0 60px #ff4500,0 0 90px #ff450099}to{box-shadow:0 0 30px #ff4500cc}}@keyframes wobble-d9375d3e{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.hidden[data-v-d9375d3e]{display:none}.popup-container[data-v-d504dfc9]{background-color:#fff;color:#333;border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:24px;width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.close-button[data-v-d504dfc9]{position:absolute;top:16px;right:16px;background-color:#3490dc;color:#fff;font-weight:700;padding:8px 16px;border-radius:8px;cursor:pointer;transition:background-color .3s ease}.close-button[data-v-d504dfc9]:hover{background-color:#2779bd}.iframe-content[data-v-d504dfc9]{width:100%;height:80%;border:none;margin-bottom:16px}.checkbox-container[data-v-d504dfc9]{display:flex;align-items:center;justify-content:center}.styled-checkbox[data-v-d504dfc9]{width:24px;height:24px;accent-color:#3490dc;cursor:pointer}.checkbox-label[data-v-d504dfc9]{margin-left:8px;font-size:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fade-enter-active[data-v-d504dfc9],.fade-leave-active[data-v-d504dfc9]{transition:opacity .5s}.fade-enter[data-v-d504dfc9],.fade-leave-to[data-v-d504dfc9]{opacity:0}.glow-effect[data-v-85f3dede]{box-shadow:0 0 5px 2px #00ffffb3;animation:glow-85f3dede 1.5s ease-in-out infinite alternate}@keyframes glow-85f3dede{0%{box-shadow:0 0 5px 2px #00ffffb3}to{box-shadow:0 0 20px 2px #00ffffb3}}.changelog-popup-overlay[data-v-f9c6a52e]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.changelog-popup[data-v-f9c6a52e]{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.changelog-header[data-v-f9c6a52e]{padding:1rem;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.changelog-content[data-v-f9c6a52e]{padding:1rem;overflow-y:auto;flex-grow:1}.changelog-footer[data-v-f9c6a52e]{padding:1rem;border-top:1px solid #eee;text-align:right}.understood-button[data-v-f9c6a52e]{background:#4caf50;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.close-button[data-v-f9c6a52e]{background:none;border:none;font-size:1.5rem;cursor:pointer}.markdown-body[data-v-f9c6a52e]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body h1[data-v-f9c6a52e],.markdown-body h2[data-v-f9c6a52e],.markdown-body h3[data-v-f9c6a52e],.markdown-body h4[data-v-f9c6a52e],.markdown-body h5[data-v-f9c6a52e],.markdown-body h6[data-v-f9c6a52e]{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1[data-v-f9c6a52e]{font-size:2em}.markdown-body h2[data-v-f9c6a52e]{font-size:1.5em}.markdown-body h3[data-v-f9c6a52e]{font-size:1.25em}.markdown-body p[data-v-f9c6a52e]{margin-top:0;margin-bottom:16px}.markdown-body ul[data-v-f9c6a52e],.markdown-body ol[data-v-f9c6a52e]{padding-left:2em;margin-top:0;margin-bottom:16px}.markdown-body code[data-v-f9c6a52e]{padding:.2em .4em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px}.markdown-body pre[data-v-f9c6a52e]{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body blockquote[data-v-f9c6a52e]{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0}.personalities-container[data-v-c8d5cfb8]{position:relative}.skills-lib-icon[data-v-c8d5cfb8]{position:absolute;top:-2px;right:-2px;z-index:10;font-size:5px;width:2px;height:2px}.skills-lib-icon i[data-v-c8d5cfb8]{width:2px;height:2px}@keyframes giggle-c8d5cfb8{0%,to{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(-5px) rotate(-10deg) scale(1.05)}50%{transform:translate(5px) rotate(10deg) scale(.95)}75%{transform:translate(-5px) rotate(-10deg) scale(1.05)}}.animate-giggle[data-v-c8d5cfb8]{animation:giggle-c8d5cfb8 1.5s infinite ease-in-out}.custom-scrollbar[data-v-c8d5cfb8]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-c8d5cfb8]::-webkit-scrollbar{width:8px}.custom-scrollbar[data-v-c8d5cfb8]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-c8d5cfb8]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}@keyframes custom-pulse-c8d5cfb8{0%,to{box-shadow:0 0 #3b82f680}50%{box-shadow:0 0 0 15px #3b82f600}}.animate-pulse[data-v-c8d5cfb8]{animation:custom-pulse-c8d5cfb8 2s infinite}.slide-right-enter-active[data-v-c8d5cfb8],.slide-right-leave-active[data-v-c8d5cfb8]{transition:transform .3s ease}.slide-right-enter[data-v-c8d5cfb8],.slide-right-leave-to[data-v-c8d5cfb8]{transform:translate(-100%)}.slide-left-enter-active[data-v-c8d5cfb8],.slide-left-leave-active[data-v-c8d5cfb8]{transition:transform .3s ease}.slide-left-enter[data-v-c8d5cfb8],.slide-left-leave-to[data-v-c8d5cfb8]{transform:translate(100%)}.fade-and-fly-enter-active[data-v-c8d5cfb8]{animation:fade-and-fly-enter-c8d5cfb8 .5s ease}.fade-and-fly-leave-active[data-v-c8d5cfb8]{animation:fade-and-fly-leave-c8d5cfb8 .5s ease}@keyframes fade-and-fly-enter-c8d5cfb8{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-and-fly-leave-c8d5cfb8{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(1.2)}}.list-move[data-v-c8d5cfb8],.list-enter-active[data-v-c8d5cfb8],.list-leave-active[data-v-c8d5cfb8]{transition:all .5s ease}.list-enter-from[data-v-c8d5cfb8]{transform:translatey(-30px)}.list-leave-to[data-v-c8d5cfb8]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-c8d5cfb8]{position:absolute}@keyframes float-c8d5cfb8{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float[data-v-c8d5cfb8]{animation:float-c8d5cfb8 linear infinite}@keyframes star-move-c8d5cfb8{0%{transform:translate(0) rotate(0)}50%{transform:translate(20px,20px) rotate(180deg)}to{transform:translate(0) rotate(360deg)}}.animate-star[data-v-c8d5cfb8]{animation:star-move-c8d5cfb8 linear infinite}@keyframes fall-c8d5cfb8{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(calc(100vh + 20px)) rotate(360deg);opacity:0}}.animate-fall[data-v-c8d5cfb8]{animation:fall-c8d5cfb8 linear infinite}@keyframes glow-c8d5cfb8{0%,to{text-shadow:0 0 5px rgba(66,153,225,.5),0 0 10px rgba(66,153,225,.5)}50%{text-shadow:0 0 20px rgba(66,153,225,.8),0 0 30px rgba(66,153,225,.8)}}.animate-glow[data-v-c8d5cfb8]{animation:glow-c8d5cfb8 2s ease-in-out infinite}@media (prefers-color-scheme: dark){@keyframes glow-c8d5cfb8{0%,to{text-shadow:0 0 5px rgba(147,197,253,.5),0 0 10px rgba(147,197,253,.5)}50%{text-shadow:0 0 20px rgba(147,197,253,.8),0 0 30px rgba(147,197,253,.8)}0%,to{text-shadow:0 0 5px rgba(147,197,253,.5),0 0 10px rgba(147,197,253,.5)}50%{text-shadow:0 0 20px rgba(147,197,253,.8),0 0 30px rgba(147,197,253,.8)}}}@keyframes roll-c8d5cfb8{0%{transform:translate(-50%) rotate(0)}to{transform:translate(50%) rotate(360deg)}}.animate-roll[data-v-c8d5cfb8]{animation:roll-c8d5cfb8 4s linear infinite}.toolbar[data-v-c8d5cfb8]{position:relative;width:100%}.toolbar-container[data-v-c8d5cfb8]{display:flex;height:2.5rem;align-items:center}.toolbar-button[data-v-c8d5cfb8]{cursor:pointer;border-style:none;background-color:transparent;padding:.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.toolbar-button[data-v-c8d5cfb8]:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.menu-container[data-v-c8d5cfb8]{position:relative}.expandable-menu[data-v-c8d5cfb8]{position:absolute;top:100%;left:.625rem;flex-direction:column;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.menu-container:hover .expandable-menu[data-v-c8d5cfb8],.menu-visible[data-v-c8d5cfb8]{display:flex}.menu-item[data-v-c8d5cfb8]{background:none;border:none;cursor:pointer;padding:8px;color:#333;transition:background-color .3s}.menu-item[data-v-c8d5cfb8]:hover{background-color:#f0f0f0}.dot[data-v-c8d5cfb8]{width:10px;height:10px;border-radius:50%}.dot-green[data-v-c8d5cfb8]{background-color:green}.dot-red[data-v-c8d5cfb8]{background-color:red}.animate-pulse[data-v-c8d5cfb8]{animation:pulse-c8d5cfb8 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-c8d5cfb8{0%,to{opacity:1}50%{opacity:.7}}.logo-container[data-v-c8d5cfb8]{position:relative;width:48px;height:48px}.logo-image[data-v-c8d5cfb8]{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}@keyframes bounce-c8d5cfb8{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce[data-v-c8d5cfb8]{animation:bounce-c8d5cfb8 1s infinite}@keyframes roll-and-bounce-c8d5cfb8{0%,to{transform:translate(0) rotate(0)}45%{transform:translate(100px) rotate(360deg)}50%{transform:translate(90px) rotate(390deg)}55%{transform:translate(100px) rotate(360deg)}95%{transform:translate(0) rotate(0)}}@keyframes spin-c8d5cfb8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--baklava-control-color-primary: #e28b46;--baklava-control-color-error: #d00000;--baklava-control-color-background: #2c3748;--baklava-control-color-foreground: white;--baklava-control-color-hover: #455670;--baklava-control-color-active: #556986;--baklava-control-color-disabled-foreground: #666c75;--baklava-control-border-radius: 3px;--baklava-sidebar-color-background: #1b202c;--baklava-sidebar-color-foreground: white;--baklava-node-color-background: #1b202c;--baklava-node-color-foreground: white;--baklava-node-color-hover: #e28c4677;--baklava-node-color-selected: var(--baklava-control-color-primary);--baklava-node-color-resize-handle: var(--baklava-control-color-background);--baklava-node-title-color-background: #151a24;--baklava-node-title-color-foreground: white;--baklava-group-node-title-color-background: #215636;--baklava-group-node-title-color-foreground: white;--baklava-node-interface-port-tooltip-color-foreground: var(--baklava-control-color-primary);--baklava-node-interface-port-tooltip-color-background: var(--baklava-editor-background-pattern-black);--baklava-node-border-radius: 6px;--baklava-color-connection-default: #737f96;--baklava-color-connection-allowed: #48bc79;--baklava-color-connection-forbidden: #bc4848;--baklava-editor-background-pattern-default: #202b3c;--baklava-editor-background-pattern-line: #263140;--baklava-editor-background-pattern-black: #263140;--baklava-context-menu-background: #1b202c;--baklava-context-menu-shadow: 0 0 8px rgba(0, 0, 0, .65);--baklava-toolbar-background: #1b202caa;--baklava-toolbar-foreground: white;--baklava-node-palette-background: #1b202caa;--baklava-node-palette-foreground: white;--baklava-selectionbox-color-border: var(--baklava-node-color-background);--baklava-selectionbox-color-background: var(--baklava-node-color-hover);--baklava-visual-transition: .1s linear}.baklava-button{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);transition:background-color var(--baklava-visual-transition);border:none;padding:.45em .35em;border-radius:var(--baklava-control-border-radius);font-size:inherit;cursor:pointer;overflow-x:hidden}.baklava-button:hover{background-color:var(--baklava-control-color-hover)}.baklava-button:active{background-color:var(--baklava-control-color-primary)}.baklava-button.--block{width:100%}.baklava-checkbox{display:flex;padding:.35em 0;cursor:pointer;overflow-x:hidden;align-items:center}.baklava-checkbox .__checkmark-container{display:flex;background-color:var(--baklava-control-color-background);border-radius:var(--baklava-control-border-radius);transition:background-color var(--baklava-visual-transition);width:18px;height:18px}.baklava-checkbox:hover .__checkmark-container{background-color:var(--baklava-control-color-hover)}.baklava-checkbox:active .__checkmark-container{background-color:var(--baklava-control-color-active)}.baklava-checkbox .__checkmark{stroke-dasharray:15;stroke-dashoffset:15;stroke:var(--baklava-control-color-foreground);stroke-width:2px;fill:none;transition:stroke-dashoffset var(--baklava-visual-transition)}.baklava-checkbox.--checked .__checkmark{stroke-dashoffset:0}.baklava-checkbox.--checked .__checkmark-container{background-color:var(--baklava-control-color-primary)}.baklava-checkbox .__label{margin-left:.5rem}.baklava-context-menu{color:var(--baklava-control-color-foreground);position:absolute;display:inline-block;z-index:100;background-color:var(--baklava-context-menu-background);box-shadow:var(--baklava-context-menu-shadow);border-radius:0 0 var(--baklava-control-border-radius) var(--baklava-control-border-radius);min-width:6rem;width:-moz-max-content;width:max-content}.baklava-context-menu>.item{display:flex;align-items:center;padding:.35em 1em;transition:background .05s linear;position:relative}.baklava-context-menu>.item>.__label{flex:1 1 auto}.baklava-context-menu>.item>.__submenu-icon{margin-left:.75rem}.baklava-context-menu>.item.--disabled{color:var(--baklava-control-color-hover)}.baklava-context-menu>.item:not(.--header):not(.--active):not(.--disabled):hover{background:var(--baklava-control-color-primary)}.baklava-context-menu>.item.--active{background:var(--baklava-control-color-primary)}.baklava-context-menu.--nested{left:100%;top:0}.baklava-context-menu.--flipped-x.--nested{left:unset;right:100%}.baklava-context-menu.--flipped-y.--nested{top:unset;bottom:0}.baklava-context-menu>.divider{margin:.35em 0;height:1px;background-color:var(--baklava-control-color-hover)}.baklava-icon{display:block;height:100%}.baklava-icon.--clickable{cursor:pointer;transition:color var(--baklava-visual-transition)}.baklava-icon.--clickable:hover{color:var(--baklava-control-color-primary)}.baklava-input{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);caret-color:var(--baklava-control-color-primary);border:none;border-radius:var(--baklava-control-border-radius);padding:.45em .75em;width:100%;transition:background-color var(--baklava-visual-transition);font-size:inherit;font:inherit}.baklava-input:hover{background-color:var(--baklava-control-color-hover)}.baklava-input:active{background-color:var(--baklava-control-color-active)}.baklava-input:focus-visible{outline:1px solid var(--baklava-control-color-primary)}.baklava-input[type=number]::-webkit-inner-spin-button,.baklava-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.baklava-input.--invalid{box-shadow:0 0 2px 2px var(--baklava-control-color-error)}.baklava-num-input{background:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);border-radius:var(--baklava-control-border-radius);width:100%;display:grid;grid-template-columns:20px 1fr 20px}.baklava-num-input>.__button{display:flex;flex:0 0 auto;width:20px;justify-content:center;align-items:center;transition:background var(--baklava-visual-transition);cursor:pointer}.baklava-num-input>.__button:hover{background-color:var(--baklava-control-color-hover)}.baklava-num-input>.__button:active{background-color:var(--baklava-control-color-active)}.baklava-num-input>.__button.--dec{grid-area:1/1/span 1/span 1}.baklava-num-input>.__button.--dec>svg{transform:rotate(90deg)}.baklava-num-input>.__button.--inc{grid-area:1/3/span 1/span 1}.baklava-num-input>.__button.--inc>svg{transform:rotate(-90deg)}.baklava-num-input>.__button path{stroke:var(--baklava-control-color-foreground);fill:var(--baklava-control-color-foreground)}.baklava-num-input>.__content{grid-area:1/2/span 1/span 1;display:inline-flex;cursor:pointer;max-width:100%;min-width:0;align-items:center;transition:background-color var(--baklava-visual-transition)}.baklava-num-input>.__content:hover{background-color:var(--baklava-control-color-hover)}.baklava-num-input>.__content:active{background-color:var(--baklava-control-color-active)}.baklava-num-input>.__content>.__label,.baklava-num-input>.__content>.__value{margin:.35em 0;padding:0 .5em}.baklava-num-input>.__content>.__label{flex:1;min-width:0;overflow:hidden}.baklava-num-input>.__content>.__value{text-align:right}.baklava-num-input>.__content>input{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);caret-color:var(--baklava-control-color-primary);padding:.35em;width:100%}.baklava-select{width:100%;position:relative;color:var(--baklava-control-color-foreground)}.baklava-select.--open>.__selected{border-bottom-left-radius:0;border-bottom-right-radius:0}.baklava-select.--open>.__selected>.__icon{transform:rotate(180deg)}.baklava-select>.__selected{background-color:var(--baklava-control-color-background);padding:.35em .75em;border-radius:var(--baklava-control-border-radius);transition:background var(--baklava-visual-transition);min-height:1.7em;display:flex;align-items:center;cursor:pointer}.baklava-select>.__selected:hover{background:var(--baklava-control-color-hover)}.baklava-select>.__selected:active{background:var(--baklava-control-color-active)}.baklava-select>.__selected>.__text{flex:1 0 auto;flex-basis:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.baklava-select>.__selected>.__icon{flex:0 0 auto;display:flex;justify-content:center;align-items:center;transition:transform .25s ease;width:18px;height:18px}.baklava-select>.__selected>.__icon path{stroke:var(--baklava-control-color-foreground);fill:var(--baklava-control-color-foreground)}.baklava-select>.__dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;background-color:var(--baklava-context-menu-background);filter:drop-shadow(0 0 4px black);border-radius:0 0 var(--baklava-control-border-radius) var(--baklava-control-border-radius);max-height:15em;overflow-y:scroll}.baklava-select>.__dropdown::-webkit-scrollbar{width:0px;background:transparent}.baklava-select>.__dropdown>.item{padding:.35em .35em .35em 1em;transition:background .05s linear}.baklava-select>.__dropdown>.item:not(.--header):not(.--active){cursor:pointer}.baklava-select>.__dropdown>.item:not(.--header):not(.--active):hover{background:var(--baklava-control-color-hover)}.baklava-select>.__dropdown>.item.--active{background:var(--baklava-control-color-primary)}.baklava-select>.__dropdown>.item.--header{color:var(--baklava-control-color-disabled-foreground);border-bottom:1px solid var(--baklava-control-color-disabled-foreground);padding:.5em .35em .5em 1em}.baklava-slider{background:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);border-radius:var(--baklava-control-border-radius);position:relative;cursor:pointer}.baklava-slider>.__content{display:flex;position:relative}.baklava-slider>.__content>.__label,.baklava-slider>.__content>.__value{flex:1 1 auto;margin:.35em 0;padding:0 .5em;text-overflow:ellipsis}.baklava-slider>.__content>.__value{text-align:right}.baklava-slider>.__content>input{background-color:var(--baklava-control-color-background);color:var(--baklava-control-color-foreground);caret-color:var(--baklava-control-color-primary);padding:.35em;width:100%}.baklava-slider>.__slider{position:absolute;top:0;bottom:0;left:0;background-color:var(--baklava-control-color-primary);border-radius:var(--baklava-control-border-radius)}.baklava-connection{stroke:var(--baklava-color-connection-default);stroke-width:2px;fill:none}.baklava-connection.--temporary{stroke-width:4px;stroke-dasharray:5 5;stroke-dashoffset:0;animation:dash 1s linear infinite;transform:translateY(-1px)}@keyframes dash{to{stroke-dashoffset:20}}.baklava-connection.--allowed{stroke:var(--baklava-color-connection-allowed)}.baklava-connection.--forbidden{stroke:var(--baklava-color-connection-forbidden)}.baklava-minimap{position:absolute;height:15%;width:15%;min-width:150px;max-width:90%;top:20px;right:20px;z-index:900}.baklava-editor{width:100%;height:100%;position:relative;overflow:hidden;outline:none!important;font-family:Lato,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:15px;touch-action:none}.baklava-editor .background{background-color:var(--baklava-editor-background-pattern-default);background-image:linear-gradient(var(--baklava-editor-background-pattern-black) 2px,transparent 2px),linear-gradient(90deg,var(--baklava-editor-background-pattern-black) 2px,transparent 2px),linear-gradient(var(--baklava-editor-background-pattern-line) 1px,transparent 1px),linear-gradient(90deg,var(--baklava-editor-background-pattern-line) 1px,transparent 1px);background-repeat:repeat;width:100%;height:100%;pointer-events:none!important}.baklava-editor .selection-box{position:absolute;border:1px solid var(--baklava-selectionbox-color-border);background-color:var(--baklava-selectionbox-color-background);pointer-events:none;opacity:.5}.baklava-editor.--start-selection-box{cursor:crosshair}.baklava-editor *:not(input):not(textarea){user-select:none;-moz-user-select:none;-webkit-user-select:none;touch-action:none}.baklava-editor .input-user-select{user-select:auto;-moz-user-select:auto;-webkit-user-select:auto}.baklava-editor *,.baklava-editor *:after,.baklava-editor *:before{box-sizing:border-box}.baklava-editor.--temporary-connection{cursor:crosshair}.baklava-editor .connections-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none!important}.baklava-editor .node-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.baklava-editor .node-container *{pointer-events:all}.baklava-ignore-mouse *{pointer-events:none!important}.baklava-ignore-mouse .__port{pointer-events:all!important}.baklava-node-interface{padding:.25em 0;position:relative}.baklava-node-interface .__port{position:absolute;width:10px;height:10px;background:#fff;border-radius:50%;top:calc(50% - 5px);cursor:crosshair}.baklava-node-interface .__port.--selected{outline:2px var(--baklava-color-connection-default) solid;outline-offset:4px}.baklava-node-interface.--input{text-align:left;padding-left:.5em}.baklava-node-interface.--input .__port{left:-1.1em}.baklava-node-interface.--output{text-align:right;padding-right:.5em}.baklava-node-interface.--output .__port{right:-1.1em}.baklava-node-interface .__tooltip{position:absolute;left:5px;top:15px;transform:translate(-50%);background:var(--baklava-node-interface-port-tooltip-color-background);color:var(--baklava-node-interface-port-tooltip-color-foreground);padding:.25em .5em;text-align:center;z-index:2}.baklava-node-palette{position:absolute;left:0;top:60px;width:250px;height:calc(100% - 60px);z-index:3;padding:2rem;overflow-y:auto;background:var(--baklava-node-palette-background);color:var(--baklava-node-palette-foreground)}.baklava-node-palette h1{margin-top:2rem}.baklava-node.--palette{position:unset;margin:1rem 0;cursor:grab}.baklava-node.--palette:first-child{margin-top:0}.baklava-node.--palette .__title{padding:.5rem;border-radius:var(--baklava-node-border-radius)}.baklava-dragged-node{position:absolute;width:calc(250px - 4rem);height:40px;z-index:4;pointer-events:none}.baklava-node{background:var(--baklava-node-color-background);color:var(--baklava-node-color-foreground);border:1px solid transparent;border-radius:var(--baklava-node-border-radius);position:absolute;box-shadow:0 0 4px #000c;transition:border-color var(--baklava-visual-transition),box-shadow var(--baklava-visual-transition);width:var(--width)}.baklava-node:hover{border-color:var(--baklava-node-color-hover)}.baklava-node:hover .__resize-handle:after{opacity:1}.baklava-node.--selected{z-index:5;border-color:var(--baklava-node-color-selected)}.baklava-node.--dragging{box-shadow:0 0 12px #000c}.baklava-node.--dragging>.__title{cursor:grabbing}.baklava-node>.__title{display:flex;background:var(--baklava-node-title-color-background);color:var(--baklava-node-title-color-foreground);padding:.4em .75em;border-radius:var(--baklava-node-border-radius) var(--baklava-node-border-radius) 0 0;cursor:grab}.baklava-node>.__title>*:first-child{flex-grow:1}.baklava-node>.__title>.__title-label{pointer-events:none}.baklava-node>.__title>.__menu{position:relative;cursor:initial}.baklava-node[data-node-type^=__baklava_]>.__title{background:var(--baklava-group-node-title-color-background);color:var(--baklava-group-node-title-color-foreground)}.baklava-node>.__content{padding:.75em}.baklava-node>.__content.--reverse-y{display:flex;flex-direction:column-reverse}.baklava-node>.__content>div>div{margin:.5em 0}.baklava-node.--two-column>.__content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;grid-template-areas:". ." ". ."}.baklava-node.--two-column>.__content>.__inputs{grid-row:1;grid-column:1}.baklava-node.--two-column>.__content>.__outputs{grid-row:1;grid-column:2}.baklava-node .__resize-handle{position:absolute;right:0;bottom:0;width:1rem;height:1rem;transform:translate(50%);cursor:ew-resize}.baklava-node .__resize-handle:after{content:"";position:absolute;bottom:0;left:-.5rem;width:1rem;height:1rem;opacity:0;border-bottom-right-radius:var(--baklava-node-border-radius);transition:opacity var(--baklava-visual-transition);background:linear-gradient(-45deg,transparent 10%,var(--baklava-node-color-resize-handle) 10%,var(--baklava-node-color-resize-handle) 15%,transparent 15%,transparent 30%,var(--baklava-node-color-resize-handle) 30%,var(--baklava-node-color-resize-handle) 35%,transparent 35%,transparent 50%,var(--baklava-node-color-resize-handle) 50%,var(--baklava-node-color-resize-handle) 55%,transparent 55%)}.baklava-sidebar{position:absolute;height:100%;width:25%;min-width:300px;max-width:90%;top:0;right:0;z-index:1000;background-color:var(--baklava-sidebar-color-background);color:var(--baklava-sidebar-color-foreground);box-shadow:none;overflow-x:hidden;padding:1em;transform:translate(100%);transition:transform .5s;display:flex;flex-direction:column}.baklava-sidebar.--open{transform:translate(0);box-shadow:0 0 15px #000}.baklava-sidebar .__resizer{position:absolute;left:0;top:0;height:100%;width:4px;cursor:col-resize}.baklava-sidebar .__header{display:flex;align-items:center}.baklava-sidebar .__header .__node-name{margin-left:.5rem}.baklava-sidebar .__close{font-size:2em;border:none;background:none;color:inherit;cursor:pointer}.baklava-sidebar .__interface{margin:.5em 0}.baklava-toolbar{position:absolute;left:0;top:0;width:100%;height:60px;z-index:3;padding:.5rem 2rem;background:var(--baklava-toolbar-background);color:var(--baklava-toolbar-foreground);display:flex;align-items:center}.baklava-toolbar-entry{margin-left:.5rem;margin-right:.5rem}.baklava-toolbar-button{color:var(--baklava-toolbar-foreground);background:none;border:none;transition:color var(--baklava-visual-transition)}.baklava-toolbar-button:not([disabled]){cursor:pointer}.baklava-toolbar-button:hover:not([disabled]){color:var(--baklava-control-color-primary)}.baklava-toolbar-button[disabled]{color:var(--baklava-control-color-disabled-foreground)}.slide-fade-enter-active,.slide-fade-leave-active{transition:all .1s ease-out}.slide-fade-enter-from,.slide-fade-leave-to{transform:translateY(5px);opacity:0}.fade-enter-active,.fade-leave-active{transition:opacity .1s ease-out!important}.fade-enter-from,.fade-leave-to{opacity:0}.loading-indicator[data-v-f8c39e0b]{display:flex;justify-content:center;align-items:center;height:100px;font-size:1.2em;color:#666}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(63 131 248 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(63 131 248 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Outfit,PTSans,Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.tooltip-arrow,.tooltip-arrow:before{position:absolute;width:8px;height:8px;background:inherit}.tooltip-arrow{visibility:hidden}.tooltip-arrow:before{content:"";visibility:visible;transform:rotate(45deg)}[data-tooltip-style^=light]+.tooltip>.tooltip-arrow:before{border-style:solid;border-color:#e5e7eb}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=top]>.tooltip-arrow:before{border-bottom-width:1px;border-right-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=right]>.tooltip-arrow:before{border-bottom-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=bottom]>.tooltip-arrow:before{border-top-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=left]>.tooltip-arrow:before{border-top-width:1px;border-right-width:1px}.tooltip[data-popper-placement^=top]>.tooltip-arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.tooltip-arrow{top:-4px}.tooltip[data-popper-placement^=left]>.tooltip-arrow{right:-4px}.tooltip[data-popper-placement^=right]>.tooltip-arrow{left:-4px}.tooltip.invisible>.tooltip-arrow:before{visibility:hidden}[data-popper-arrow],[data-popper-arrow]:before{position:absolute;width:8px;height:8px;background:inherit}[data-popper-arrow]{visibility:hidden}[data-popper-arrow]:before{content:"";visibility:visible;transform:rotate(45deg)}[data-popper-arrow]:after{content:"";visibility:visible;transform:rotate(45deg);position:absolute;width:9px;height:9px;background:inherit}[role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:#e5e7eb}.dark [role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:#4b5563}[role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:#e5e7eb}.dark [role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:#4b5563}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:before{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:after{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:before{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:after{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:before{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:after{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:before{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:after{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]{bottom:-5px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]{top:-5px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]{right:-5px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]{left:-5px}[role=tooltip].invisible>[data-popper-arrow]:before{visibility:hidden}[role=tooltip].invisible>[data-popper-arrow]:after{visibility:hidden}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #1C64F2;--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);border-color:#1c64f2}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}select:not([size]){background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:.75em .75em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#1c64f2;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #1C64F2;--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)}[type=checkbox]:checked,[type=radio]:checked,.dark [type=checkbox]:checked,.dark [type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:.55em .55em;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-repeat:no-repeat;background-size:.55em .55em;-webkit-print-color-adjust:exact;print-color-adjust:exact}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}.dark [type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-color:currentColor;border-color:transparent;background-position:center;background-repeat:no-repeat;background-size:.55em .55em;-webkit-print-color-adjust:exact;print-color-adjust:exact}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px auto inherit}input[type=file]::file-selector-button{color:#fff;background:#1f2937;border:0;font-weight:500;font-size:.875rem;cursor:pointer;padding:.625rem 1rem .625rem 2rem;margin-inline-start:-1rem;margin-inline-end:1rem}input[type=file]::file-selector-button:hover{background:#374151}.dark input[type=file]::file-selector-button{color:#fff;background:#4b5563}.dark input[type=file]::file-selector-button:hover{background:#6b7280}input[type=range]::-webkit-slider-thumb{height:1.25rem;width:1.25rem;background:#1c64f2;border-radius:9999px;border:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;cursor:pointer}input[type=range]:disabled::-webkit-slider-thumb{background:#9ca3af}.dark input[type=range]:disabled::-webkit-slider-thumb{background:#6b7280}input[type=range]:focus::-webkit-slider-thumb{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1px;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}input[type=range]::-moz-range-thumb{height:1.25rem;width:1.25rem;background:#1c64f2;border-radius:9999px;border:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;cursor:pointer}input[type=range]:disabled::-moz-range-thumb{background:#9ca3af}.dark input[type=range]:disabled::-moz-range-thumb{background:#6b7280}input[type=range]::-moz-range-progress{background:#3f83f8}input[type=range]::-ms-fill-lower{background:#3f83f8}.toggle-bg:after{content:"";position:absolute;top:.125rem;left:.125rem;background:#fff;border-color:#d1d5db;border-width:1px;border-radius:9999px;height:1.25rem;width:1.25rem;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.15s;box-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}input:checked+.toggle-bg:after{transform:translate(100%);border-color:#fff}input:checked+.toggle-bg{background:#1c64f2;border-color:#1c64f2}*{scrollbar-color:initial;scrollbar-width:initial}body{min-height:100vh;background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #e0eaff var(--tw-gradient-from-position);--tw-gradient-to: rgb(224 234 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #f0e6ff var(--tw-gradient-to-position)}body:is(.dark *){background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #0f2647 var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 38 71 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1e1b4b var(--tw-gradient-to-position)}html{scroll-behavior:smooth}body{font-family:Roboto,sans-serif}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-bottom-1{bottom:-.25rem}.-bottom-1\.5{bottom:-.375rem}.-bottom-2{bottom:-.5rem}.-bottom-4{bottom:-1rem}.-left-1\.5{left:-.375rem}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.bottom-20{bottom:5rem}.bottom-4{bottom:1rem}.bottom-5{bottom:1.25rem}.bottom-6{bottom:1.5rem}.bottom-8{bottom:2rem}.bottom-\[60px\]{bottom:60px}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-20{left:5rem}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-20{right:5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-20{top:5rem}.top-3{top:.75rem}.top-full{top:100%}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2 / span 2}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.-m-1{margin:-.25rem}.-m-2{margin:-.5rem}.-m-4{margin:-1rem}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-4{margin:1rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.-my-1\.5{margin-top:-.375rem;margin-bottom:-.375rem}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.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}.my-8{margin-top:2rem;margin-bottom:2rem}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-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-36{height:9rem}.h-4{height:1rem}.h-4\/5{height:80%}.h-48{height:12rem}.h-5{height:1.25rem}.h-5\/6{height:83.333333%}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[200px\]{height:200px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-auto{height:auto}.h-full{height:100%}.h-modal{height:calc(100% - 2rem)}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[200px\]{max-height:200px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[500px\]{min-height:500px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[15rem\]{width:15rem}.w-\[16rem\]{width:16rem}.w-\[300px\]{width:300px}.w-\[500px\]{width:500px}.w-\[this-is\\\\\]{width:this-is\\}.w-\[this-is\]{width:this-is}.w-\[weird-and-invalid\]{width:weird-and-invalid}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[24rem\]{min-width:24rem}.min-w-\[300px\]{min-width:300px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.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-\[24rem\]{max-width:24rem}.max-w-\[300px\]{max-width:300px}.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-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.origin-left{transform-origin:left}.origin-top-right{transform-origin:top right}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-0{--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform,.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x: pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x: pan-left;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-right{--tw-pan-x: pan-right;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y: pan-y;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-up{--tw-pan-y: pan-up;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y: pan-down;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pinch-zoom{--tw-pinch-zoom: pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-proximity{--tw-scroll-snap-strictness: proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.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-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[200px\,1fr\]{grid-template-columns:200px 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-baseline{place-content:baseline}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-baseline{place-items:baseline}.place-items-stretch{place-items:stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-baseline{align-content:baseline}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.-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-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-1px * var(--tw-space-x-reverse));margin-left:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.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-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-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-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-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-ellipsis,.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.\!rounded-full{border-radius:9999px!important}.rounded{border-radius:.25rem}.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-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-t-2{border-top-width:2px}.border-t-4{border-top-width:4px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-bg-dark{border-color:var(--color-bg-dark)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(195 221 253 / var(--tw-border-opacity))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}.border-blue-700{--tw-border-opacity: 1;border-color:rgb(26 86 219 / var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity))}.border-green-600{--tw-border-opacity: 1;border-color:rgb(5 122 85 / var(--tw-border-opacity))}.border-green-700{--tw-border-opacity: 1;border-color:rgb(4 108 78 / var(--tw-border-opacity))}.border-pink-600{--tw-border-opacity: 1;border-color:rgb(214 31 105 / var(--tw-border-opacity))}.border-pink-700{--tw-border-opacity: 1;border-color:rgb(191 18 93 / var(--tw-border-opacity))}.border-primary{border-color:var(--color-primary)}.border-primary-light{border-color:var(--color-primary-light)}.border-purple-600{--tw-border-opacity: 1;border-color:rgb(126 58 242 / var(--tw-border-opacity))}.border-purple-700{--tw-border-opacity: 1;border-color:rgb(108 43 217 / var(--tw-border-opacity))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(251 213 213 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(240 82 82 / var(--tw-border-opacity))}.border-red-600{--tw-border-opacity: 1;border-color:rgb(224 36 36 / var(--tw-border-opacity))}.border-red-700{--tw-border-opacity: 1;border-color:rgb(200 30 30 / var(--tw-border-opacity))}.border-secondary{border-color:var(--color-secondary)}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(227 160 8 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(194 120 3 / var(--tw-border-opacity))}.border-t-primary{border-top-color:var(--color-primary)}.bg-\[rgb\(255\,0\,0\)\]{--tw-bg-opacity: 1;background-color:rgb(255 0 0 / var(--tw-bg-opacity))}.bg-accent{background-color:var(--color-accent)}.bg-bg-dark-tone-panel{background-color:var(--color-bg-dark-tone-panel)}.bg-bg-light{background-color:var(--color-bg-light)}.bg-bg-light-tone{background-color:var(--color-bg-light-tone)}.bg-bg-light-tone-panel{background-color:var(--color-bg-light-tone-panel)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/70{background-color:#000000b3}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.bg-blue-700{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(222 247 236 / var(--tw-bg-opacity))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(188 240 218 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(49 196 141 / var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(243 250 247 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(14 159 110 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.bg-green-700{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(229 237 255 / var(--tw-bg-opacity))}.bg-indigo-200{--tw-bg-opacity: 1;background-color:rgb(205 219 254 / var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(104 117 245 / var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(88 80 236 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(254 236 220 / var(--tw-bg-opacity))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 232 243 / var(--tw-bg-opacity))}.bg-pink-200{--tw-bg-opacity: 1;background-color:rgb(250 209 232 / var(--tw-bg-opacity))}.bg-pink-700{--tw-bg-opacity: 1;background-color:rgb(191 18 93 / var(--tw-bg-opacity))}.bg-primary{background-color:var(--color-primary)}.bg-primary-light{background-color:var(--color-primary-light)}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(237 235 254 / var(--tw-bg-opacity))}.bg-purple-200{--tw-bg-opacity: 1;background-color:rgb(220 215 254 / var(--tw-bg-opacity))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(144 97 249 / var(--tw-bg-opacity))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(126 58 242 / var(--tw-bg-opacity))}.bg-purple-700{--tw-bg-opacity: 1;background-color:rgb(108 43 217 / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(253 232 232 / var(--tw-bg-opacity))}.bg-red-200{--tw-bg-opacity: 1;background-color:rgb(251 213 213 / var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(249 128 128 / var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(253 242 242 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(240 82 82 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/30{background-color:#ffffff4d}.bg-white\/50{background-color:#ffffff80}.bg-white\/95{background-color:#fffffff2}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(253 246 178 / var(--tw-bg-opacity))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(227 160 8 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(194 120 3 / var(--tw-bg-opacity))}.bg-opacity-10{--tw-bg-opacity: .1}.bg-opacity-5{--tw-bg-opacity: .05}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.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-bg-light{--tw-gradient-from: var(--color-bg-light) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3F83F8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/10{--tw-gradient-from: rgb(63 131 248 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-400{--tw-gradient-from: #31C48D var(--tw-gradient-from-position);--tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #0E9F6E var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #5850EC var(--tw-gradient-from-position);--tw-gradient-to: rgb(88 80 236 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-lime-500{--tw-gradient-from: #84cc16 var(--tw-gradient-from-position);--tw-gradient-to: rgb(132 204 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #E74694 var(--tw-gradient-from-position);--tw-gradient-to: rgb(231 70 148 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #9061F9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(144 97 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-600{--tw-gradient-from: #7E3AF2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-200{--tw-gradient-from: #FBD5D5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 213 213 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #F05252 var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 82 82 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-200{--tw-gradient-from: #AFECEF var(--tw-gradient-from-position);--tw-gradient-to: rgb(175 236 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-300{--tw-gradient-from: #7EDCE2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 220 226 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-500{--tw-gradient-from: #0694A2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 148 162 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-5\%{--tw-gradient-from-position: 5%}.via-bg-light{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--color-bg-light) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-blue-600{--tw-gradient-to: rgb(28 100 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1C64F2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-cyan-600{--tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0891b2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-green-600{--tw-gradient-to: rgb(5 122 85 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #057A55 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-lime-600{--tw-gradient-to: rgb(101 163 13 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #65a30d var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-pink-600{--tw-gradient-to: rgb(214 31 105 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #D61F69 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-600{--tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #7E3AF2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-red-300{--tw-gradient-to: rgb(248 180 180 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #F8B4B4 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-red-600{--tw-gradient-to: rgb(224 36 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #E02424 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-teal-600{--tw-gradient-to: rgb(4 116 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #047481 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-10\%{--tw-gradient-via-position: 10%}.to-blue-500{--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #1C64F2 var(--tw-gradient-to-position)}.to-blue-700{--tw-gradient-to: #1A56DB var(--tw-gradient-to-position)}.to-cyan-700{--tw-gradient-to: #0e7490 var(--tw-gradient-to-position)}.to-green-500{--tw-gradient-to: #0E9F6E var(--tw-gradient-to-position)}.to-green-700{--tw-gradient-to: #046C4E var(--tw-gradient-to-position)}.to-lime-200{--tw-gradient-to: #d9f99d var(--tw-gradient-to-position)}.to-lime-300{--tw-gradient-to: #bef264 var(--tw-gradient-to-position)}.to-lime-700{--tw-gradient-to: #4d7c0f var(--tw-gradient-to-position)}.to-orange-400{--tw-gradient-to: #FF8A4C var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #E74694 var(--tw-gradient-to-position)}.to-pink-700{--tw-gradient-to: #BF125D var(--tw-gradient-to-position)}.to-purple-500\/10{--tw-gradient-to: rgb(144 97 249 / .1) var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #7E3AF2 var(--tw-gradient-to-position)}.to-purple-700{--tw-gradient-to: #6C2BD9 var(--tw-gradient-to-position)}.to-red-700{--tw-gradient-to: #C81E1E var(--tw-gradient-to-position)}.to-teal-700{--tw-gradient-to: #036672 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-yellow-200{--tw-gradient-to: #FCE96A var(--tw-gradient-to-position)}.to-100\%{--tw-gradient-to-position: 100%}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:padding-box}.bg-origin-content{background-origin:content-box}.fill-blue-600{fill:#1c64f2}.fill-current{fill:currentColor}.fill-gray-300{fill:#d1d5db}.fill-gray-600{fill:#4b5563}.fill-green-500{fill:#0e9f6e}.fill-pink-600{fill:#d61f69}.fill-purple-600{fill:#7e3af2}.fill-red-600{fill:#e02424}.fill-secondary{fill:var(--color-secondary)}.fill-white{fill:#fff}.fill-yellow-400{fill:#e3a008}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.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-1{padding-left:.25rem;padding-right:.25rem}.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}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.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-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-80{padding-bottom:20rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-24{padding-right:6rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-mono{font-family:JetBrains Mono,Consolas,monospace}.font-sans{font-family:Inter,Outfit,PTSans,Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}.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-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero: slashed-zero;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.lining-nums{--tw-numeric-figure: lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure: oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.proportional-nums{--tw-numeric-spacing: proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.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)}.diagonal-fractions{--tw-numeric-fraction: diagonal-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction: stacked-fractions;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-9{line-height:2.25rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-\[\#336699\]\/\[\.35\]{color:#33669959}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-100{--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-green-200{--tw-text-opacity: 1;color:rgb(188 240 218 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(5 122 85 / var(--tw-text-opacity))}.text-green-700{--tw-text-opacity: 1;color:rgb(4 108 78 / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:rgb(3 84 63 / var(--tw-text-opacity))}.text-green-900{--tw-text-opacity: 1;color:rgb(1 71 55 / var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(104 117 245 / var(--tw-text-opacity))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(81 69 205 / var(--tw-text-opacity))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(66 56 157 / var(--tw-text-opacity))}.text-indigo-900{--tw-text-opacity: 1;color:rgb(54 47 120 / var(--tw-text-opacity))}.text-light-text-panel{color:var(--color-light-text-panel)}.text-orange-200{--tw-text-opacity: 1;color:rgb(252 217 189 / var(--tw-text-opacity))}.text-orange-500{--tw-text-opacity: 1;color:rgb(255 90 31 / var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity: 1;color:rgb(208 56 1 / var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity: 1;color:rgb(231 70 148 / var(--tw-text-opacity))}.text-pink-600{--tw-text-opacity: 1;color:rgb(214 31 105 / var(--tw-text-opacity))}.text-pink-700{--tw-text-opacity: 1;color:rgb(191 18 93 / var(--tw-text-opacity))}.text-pink-800{--tw-text-opacity: 1;color:rgb(153 21 75 / var(--tw-text-opacity))}.text-pink-900{--tw-text-opacity: 1;color:rgb(117 26 61 / var(--tw-text-opacity))}.text-primary{color:var(--color-primary)}.text-purple-500{--tw-text-opacity: 1;color:rgb(144 97 249 / var(--tw-text-opacity))}.text-purple-600{--tw-text-opacity: 1;color:rgb(126 58 242 / var(--tw-text-opacity))}.text-purple-700{--tw-text-opacity: 1;color:rgb(108 43 217 / var(--tw-text-opacity))}.text-purple-800{--tw-text-opacity: 1;color:rgb(85 33 181 / var(--tw-text-opacity))}.text-purple-900{--tw-text-opacity: 1;color:rgb(74 29 150 / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:rgb(253 232 232 / var(--tw-text-opacity))}.text-red-200{--tw-text-opacity: 1;color:rgb(251 213 213 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(224 36 36 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity: 1;color:rgb(200 30 30 / var(--tw-text-opacity))}.text-red-800{--tw-text-opacity: 1;color:rgb(155 28 28 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity: 1;color:rgb(119 29 29 / var(--tw-text-opacity))}.text-secondary{color:var(--color-secondary)}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity))}.text-teal-500{--tw-text-opacity: 1;color:rgb(6 148 162 / var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(227 160 8 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(194 120 3 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(159 88 10 / var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(142 75 16 / var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(114 59 19 / var(--tw-text-opacity))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(99 49 18 / var(--tw-text-opacity))}.text-opacity-95{--tw-text-opacity: .95}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.decoration-solid{text-decoration-style:solid}.decoration-double{text-decoration-style:double}.decoration-dotted{text-decoration-style:dotted}.decoration-dashed{text-decoration-style:dashed}.decoration-wavy{text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.accent-blue-500{accent-color:#3F83F8}.accent-blue-600{accent-color:#1C64F2}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.\!shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !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 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--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 rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-blue-500\/50{--tw-shadow-color: rgb(63 131 248 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-800\/80{--tw-shadow-color: rgb(30 66 159 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-500\/50{--tw-shadow-color: rgb(6 182 212 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-800\/80{--tw-shadow-color: rgb(21 94 117 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-500\/50{--tw-shadow-color: rgb(14 159 110 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-800\/80{--tw-shadow-color: rgb(3 84 63 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-lime-500\/50{--tw-shadow-color: rgb(132 204 22 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-lime-800\/80{--tw-shadow-color: rgb(63 98 18 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-pink-500\/50{--tw-shadow-color: rgb(231 70 148 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-pink-800\/80{--tw-shadow-color: rgb(153 21 75 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-500\/50{--tw-shadow-color: rgb(144 97 249 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-800\/80{--tw-shadow-color: rgb(85 33 181 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-500\/50{--tw-shadow-color: rgb(240 82 82 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-800\/80{--tw-shadow-color: rgb(155 28 28 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-teal-500\/50{--tw-shadow-color: rgb(6 148 162 / .5);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.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-inset{--tw-ring-inset: inset}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-blue-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity))}.ring-cyan-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.ring-gray-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity))}.ring-green-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity))}.ring-pink-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(153 21 75 / var(--tw-ring-opacity))}.ring-pink-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(117 26 61 / var(--tw-ring-opacity))}.ring-purple-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity))}.ring-purple-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity))}.ring-red-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity))}.ring-red-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.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 rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));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-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(100%);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)}.invert{--tw-invert: invert(100%);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)}.sepia{--tw-sepia: sepia(100%);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)!important}.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)}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale: grayscale(100%);-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-invert{--tw-backdrop-invert: invert(100%);-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-sepia{--tw-backdrop-sepia: sepia(100%);-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-filter{-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-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content: "this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar{display:block;width:var(--scrollbar-width, 16px);height:var(--scrollbar-height, 16px)}.scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar-thin::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar-thin::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar-thin::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar-thin::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar-thin::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar-thin::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar-thin::-webkit-scrollbar{display:block;width:8px;height:8px}.scrollbar-track-bg-light{--scrollbar-track: var(--color-bg-light) !important}.scrollbar-track-bg-light-tone{--scrollbar-track: var(--color-bg-light-tone) !important}.scrollbar-track-blue-100{--scrollbar-track: #E1EFFE !important}.scrollbar-track-gray-200{--scrollbar-track: #E5E7EB !important}.scrollbar-thumb-bg-light-tone{--scrollbar-thumb: var(--color-bg-light-tone) !important}.scrollbar-thumb-bg-light-tone-panel{--scrollbar-thumb: var(--color-bg-light-tone-panel) !important}.scrollbar-thumb-blue-500{--scrollbar-thumb: #3F83F8 !important}.scrollbar-thumb-gray-400{--scrollbar-thumb: #9CA3AF !important}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.display-none{display:none}h1{margin-bottom:1.5rem;font-size:2.25rem;line-height:2.5rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}h1:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}@media (min-width: 768px){h1{font-size:3rem;line-height:1}}h2{margin-bottom:1rem;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}h2:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}h3{margin-bottom:.75rem;font-size:1.5rem;line-height:2rem;font-weight:500;--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}h3:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}h4{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:500;--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}h4:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}h1,h2{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));padding-bottom:.5rem}h1:is(.dark *),h2:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}p{overflow-wrap:break-word;font-family:Inter,Outfit,PTSans,Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:1rem;line-height:1.5rem;line-height:1.625;letter-spacing:-.025em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}@media (min-width: 768px){p{font-size:1.125rem;line-height:1.75rem;line-height:2}}table{border-collapse:collapse;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}table:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}th,td{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));padding:.5rem}th:is(.dark *),td:is(.dark *){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}tr:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}tr:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}ul,ol{margin-top:1rem;margin-bottom:1rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:1.75rem}ul{margin-left:.5rem;list-style-type:disc}ul>: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))}li{position:relative;padding-left:.5rem}ol{margin-left:.5rem;list-style-type:decimal}ol>: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))}ul ul,ol ol,ul ol,ol ul{margin-top:.5rem;margin-bottom:0;margin-left:1.5rem}li::marker{color:#4b5563}:root{--color-primary: #4a90e2;--color-primary-light: #6ab7f1;--color-secondary: #8ab8e0;--color-accent: #3a7ca1;--color-light-text-panel: #ffffff;--color-dark-text-panel: #e0e0e0;--color-bg-light-panel: #f0faff;--color-bg-light: #ffffff;--color-bg-light-tone: #e0f0ff;--color-bg-light-code-block: #f5faff;--color-bg-light-tone-panel: #d0e0f0;--color-bg-light-discussion: #f8faff;--color-bg-light-discussion-odd: #f0faff;--color-bg-dark: #0a0a1a;--color-bg-dark-tone: #151521;--color-bg-dark-tone-panel: #1c1c2a;--color-bg-dark-code-block: #151521;--color-bg-dark-discussion: #0e0e1a;--color-bg-dark-discussion-odd: #0d0d1a}textarea,input,select{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}textarea:is(.dark *),input:is(.dark *),select:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.background-color{min-height:100vh;background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #E1EFFE var(--tw-gradient-from-position);--tw-gradient-to: rgb(225 239 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #CABFFD var(--tw-gradient-to-position)}.background-color:is(.dark *){--tw-gradient-from: #1E429F var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 66 159 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #4A1D96 var(--tw-gradient-to-position)}.toolbar-color{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.toolbar-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.panels-color{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.panels-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.unicolor-panels-color{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.unicolor-panels-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.message{position:relative;margin:.5rem;display:flex;width:100%;flex-grow:1;flex-direction:column;flex-wrap:wrap;overflow:visible;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));padding:1.25rem 1.25rem .75rem;font-size:1.125rem;line-height:1.75rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.message:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}.message{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(35 56 118 / var(--tw-text-opacity))}.message:is(.dark *){background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #233876 var(--tw-gradient-from-position);--tw-gradient-to: rgb(35 56 118 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1E429F var(--tw-gradient-to-position);--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.message:hover{--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.message:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.message:nth-child(2n){--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.message:nth-child(2n):is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.message:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.message:nth-child(odd):is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.message-header{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.message-content{font-size:1.125rem;line-height:1.75rem;line-height:1.625}body{min-height:100vh;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));font-size:1rem;line-height:1.5rem}body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.discussion{margin-right:.5rem;font-size:.75rem;line-height:1rem}.discussion:hover{--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.discussion-hilighted{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));font-size:.75rem;line-height:1rem}.discussion-hilighted:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.bg-gradient-welcome{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #E1EFFE var(--tw-gradient-from-position);--tw-gradient-to: rgb(225 239 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #CABFFD var(--tw-gradient-to-position)}.bg-gradient-welcome:is(.dark *){--tw-gradient-from: #1E429F var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 66 159 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #4A1D96 var(--tw-gradient-to-position)}.bg-gradient-progress{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #C3DDFD var(--tw-gradient-from-position);--tw-gradient-to: rgb(195 221 253 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #A4CAFE var(--tw-gradient-to-position)}.bg-gradient-progress:is(.dark *){--tw-gradient-from: #1A56DB var(--tw-gradient-from-position);--tw-gradient-to: rgb(26 86 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1C64F2 var(--tw-gradient-to-position)}.text-gradient-title{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #1A56DB var(--tw-gradient-from-position);--tw-gradient-to: rgb(26 86 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient-title:is(.dark *){--tw-gradient-from: #A4CAFE var(--tw-gradient-from-position);--tw-gradient-to: rgb(164 202 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.text-subtitle{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.text-subtitle:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.text-author{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.text-author:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.text-loading{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.text-loading:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.text-progress{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.text-progress:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.btn-primary{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-secondary{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.card{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:1.5rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.card:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.input{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));padding:.5rem 1rem}.input:focus{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.input:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.input:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.label{margin-bottom:.25rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.label:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.link{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.link:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.link:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.link:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.navbar-container{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.navbar-container:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.game-menu{position:relative;display:flex;align-items:center;justify-content:center}.text-shadow-custom{text-shadow:1px 1px 0px #e0e0e0,-1px -1px 0px #e0e0e0,1px -1px 0px #e0e0e0,-1px 1px 0px #e0e0e0}.animated-progressbar-bg{position:relative;height:2.5rem;width:100%;overflow:hidden;border-radius:.125rem;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #172554 var(--tw-gradient-from-position);--tw-gradient-to: rgb(23 37 84 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #233876 var(--tw-gradient-to-position);--tw-shadow: 0 0 15px rgba(245,158,11,.2);--tw-shadow-colored: 0 0 15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.animated-progressbar-bg:is(.dark *){--tw-gradient-from: #000000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #172554 var(--tw-gradient-to-position)}.animated-progressbar-fg{position:absolute;top:0;left:0;height:100%;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #3F83F8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #76A9FA var(--tw-gradient-to-position);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.animated-progressbar-fg:is(.dark *){--tw-gradient-from: #76A9FA var(--tw-gradient-from-position);--tw-gradient-to: rgb(118 169 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.menu-item{margin-bottom:.5rem;padding:.5rem 1rem;font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity));transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.menu-item:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.menu-item:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.menu-item:is(.dark *):hover{--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.menu-item.active-link{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-top-left-radius:.375rem;border-top-right-radius:.375rem;--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);text-shadow:1px 1px 0px #e0e0e0,-1px -1px 0px #e0e0e0,1px -1px 0px #e0e0e0,-1px 1px 0px #e0e0e0}.menu-item.active-link:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.menu-item.active-link:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-text-opacity: 1;color:rgb(35 56 118 / var(--tw-text-opacity))}.menu-item.active-link:is(.dark *):hover{--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.menu-item.active-link{text-shadow:0 0 10px rgba(128,128,128,.5)}.menu-item.active-link:before{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:5px;background:linear-gradient(to right,#4a90e2,#8ab8e0,#4a90e2);border-radius:10px;animation:shimmer 2s infinite}.dark .menu-item.active-link:before{background:linear-gradient(to right,#6ab7f1,#aaa,#6ab7f1)}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:100% 0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.feather-emoji{display:inline-block;margin-left:5px;animation:bounce 2s infinite}.app-card{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.app-card:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-card:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.app-card:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}button{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}button:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#76A9FA #C3DDFD}.dark .scrollbar-thin{scrollbar-color:#1C64F2 #1E429F}.scrollbar-thin::-webkit-scrollbar{width:.5rem}.scrollbar-thin::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.scrollbar-thin:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.scrollbar-thin::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.scrollbar-thin:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.scrollbar-thin::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar-thin:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.btn{display:flex;align-items:center;border-radius:.5rem;padding:.5rem 1rem;font-weight:600;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-primary{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-primary: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(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);--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.btn-primary:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.btn-secondary{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.btn-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.btn-secondary: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(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);--tw-ring-opacity: 1;--tw-ring-color: rgb(195 221 253 / var(--tw-ring-opacity))}.btn-secondary:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.btn-secondary:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.btn-secondary:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.search-input{width:100%;border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity));background-color:transparent;padding:.5rem 1rem .5rem 2.5rem;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.search-input:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px}.search-input:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.search-input:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar{display:block;width:8px;height:8px}.scrollbar{--scrollbar-track: #C3DDFD;--scrollbar-thumb: #76A9FA;scrollbar-width:thin;scrollbar-color:#76A9FA #C3DDFD}.dark .scrollbar{scrollbar-color:#1C64F2 #1E429F}.scrollbar::-webkit-scrollbar{width:.5rem}.scrollbar::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.scrollbar:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.scrollbar::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.scrollbar:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.scrollbar::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar{--scrollbar-thumb-hover: #3F83F8}.scrollbar:is(.dark *){--scrollbar-track: #1A56DB;--scrollbar-thumb: #1C64F2;--scrollbar-thumb-hover: #3F83F8}.card-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.card-title:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.card-content{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.card-content:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.card-footer{margin-top:1rem;display:flex;align-items:center;justify-content:space-between}.card-footer-button{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.card-footer-button:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.subcard{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity));padding:1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.subcard:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.subcard-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.subcard-title:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.subcard-content{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.subcard-content:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.subcard-footer{margin-top:1rem;display:flex;align-items:center;justify-content:space-between}.subcard-footer-button{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.subcard-footer-button:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.discussion-toolbox{display:flex;--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;gap:.5rem;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.5rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.group:hover .discussion-toolbox{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.discussion-toolbox:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.lollms-title-style{text-shadow:2px 2px 4px rgba(0,0,0,.2),2px 2px 0px white,-2px -2px 0px white,2px -2px 0px white,-2px 2px 0px white;background:linear-gradient(45deg,#f59e0b,#fbbf24);-webkit-background-clip:text;background-clip:text}.chat-bar{position:relative;display:flex;flex-grow:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;gap:.5rem;--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-bar:hover{--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)}.chat-bar:is(.dark *){--tw-border-opacity: 1;border-color:rgb(4 108 78 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(132 225 188 / var(--tw-text-opacity))}.chat-bar{height:50px;transition:all .3s ease}.chat-bar:hover{box-shadow:0 4px 6px -1px #00ff001a,0 2px 4px -1px #00ff000f}.svg-button{border-radius:9999px;padding:.5rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.svg-button:focus{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity));--tw-ring-offset-width: 2px}.svg-button:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.svg-button:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.svg-button:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.svg-button:active{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.svg-button:active:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.nav-button{border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nav-button:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.nav-button:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.nav-button:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.nav-button-active{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.nav-button-active:hover{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.nav-button-active:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.nav-button-active:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-on{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.btn-on:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.btn-off{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.btn-off:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.interesting-facts{margin-top:1.5rem;margin-bottom:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.5rem;background-color:#fffc;padding:1rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.interesting-facts: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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.interesting-facts:is(.dark *){background-color:#1f2937cc}.toolbar-button{cursor:pointer;border-style:none;background-color:transparent;padding:.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.toolbar-button:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.context-menu{position:absolute;background-color:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 10px #0000001a;border-radius:4px;padding:8px 0;min-width:150px;z-index:1000}.context-menu-item{padding:8px 16px;font-size:14px;color:#333;cursor:pointer;transition:background-color .2s ease}.context-menu-item:hover{background-color:#f5f5f5}.context-menu-separator{height:1px;background-color:#e0e0e0;margin:4px 0}.context-menu-item-disabled{color:#999;cursor:not-allowed}.context-menu-item-icon{margin-right:8px}.steps-container{margin-bottom:1rem;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.steps-header{display:flex;cursor:pointer;align-items:center;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding:1rem}.steps-header:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.steps-title{margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}.step-item{margin-bottom:.5rem;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));padding-left:1rem}.steps-container{margin-bottom:1rem;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.steps-container:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.steps-header{display:flex;cursor:pointer;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));padding:1rem}.steps-header:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.steps-icon{margin-right:1rem}.steps-summary{flex-grow:1}.steps-title{margin:0;font-size:1rem;line-height:1.5rem;font-weight:600;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.steps-title:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.steps-status{margin:0;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.steps-status:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.toggle-icon{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-icon:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.steps-content{padding:1rem}.steps-list{margin:0;list-style-type:none;padding:0}.step-item{margin-bottom:.5rem;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding-left:1rem}.step-item:last-child{margin-bottom:0}.step-item:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.step-container{margin-bottom:1rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.step-wrapper{display:flex;align-items:flex-start;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.75rem}.step-wrapper:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.step-icon{margin-right:.75rem;height:1.5rem;width:1.5rem;flex-shrink:0}.icon-success{height:1.5rem;width:1.5rem;--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.icon-fail{height:1.5rem;width:1.5rem;--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.icon-spinner{height:1.5rem;width:1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.icon-spinner{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));border-top-color:transparent}.icon-spinner:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.step-content{flex-grow:1}.step-text{font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.step-text:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.step-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.step-description:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.fade-enter-active,.fade-leave-active{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.fade-enter,.fade-leave-to{opacity:0}.status-icon{cursor:pointer;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.icon{height:1.5rem;width:1.5rem}.icon-success{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.icon-success:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.icon-fail{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.icon-fail:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.icon-text{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.icon-text:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}.sm\:container{max-width:640px}@media (min-width: 768px){.sm\:container{max-width:768px}}@media (min-width: 1024px){.sm\:container{max-width:1024px}}@media (min-width: 1280px){.sm\:container{max-width:1280px}}@media (min-width: 1536px){.sm\:container{max-width:1536px}}}.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))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.last\:mb-0:last-child{margin-bottom:0}.even\:bg-bg-light-discussion-odd:nth-child(2n){background-color:var(--color-bg-light-discussion-odd)}.checked\:translate-x-6:checked{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.checked\:bg-blue-500:checked{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:block{display:block}.group\/item:hover .group-hover\/item\: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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:hover .group-hover\/item\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-secondary{border-color:var(--color-secondary)}.group:hover .group-hover\:bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.group:hover .group-hover\:bg-white\/50{background-color:#ffffff80}.group:hover .group-hover\:bg-opacity-0{--tw-bg-opacity: 0}.group:hover .group-hover\:from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-green-400{--tw-gradient-from: #31C48D var(--tw-gradient-from-position);--tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-pink-500{--tw-gradient-from: #E74694 var(--tw-gradient-from-position);--tw-gradient-to: rgb(231 70 148 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-purple-500{--tw-gradient-from: #9061F9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(144 97 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-purple-600{--tw-gradient-from: #7E3AF2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-red-200{--tw-gradient-from: #FBD5D5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 213 213 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-teal-300{--tw-gradient-from: #7EDCE2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(126 220 226 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:via-red-300{--tw-gradient-to: rgb(248 180 180 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #F8B4B4 var(--tw-gradient-via-position), var(--tw-gradient-to)}.group:hover .group-hover\:to-blue-500{--tw-gradient-to: #3F83F8 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-blue-600{--tw-gradient-to: #1C64F2 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-lime-300{--tw-gradient-to: #bef264 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-orange-400{--tw-gradient-to: #FF8A4C var(--tw-gradient-to-position)}.group:hover .group-hover\:to-pink-500{--tw-gradient-to: #E74694 var(--tw-gradient-to-position)}.group:hover .group-hover\:to-yellow-200{--tw-gradient-to: #FCE96A var(--tw-gradient-to-position)}.group:hover .group-hover\:text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.group\/item:hover .group-hover\/item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:focus .group-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.group:focus .group-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)}.group:focus .group-focus\:ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.peer:checked~.peer-checked\:text-primary{color:var(--color-primary)}.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)) skew(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))}.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.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-blue-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.hover\:z-10:hover{z-index:10}.hover\:z-20:hover{z-index:20}.hover\:h-8:hover{height:2rem}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-x-100:hover{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-2:hover{border-width:2px}.hover\:border-solid:hover{border-style:solid}.hover\:border-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.hover\:border-gray-600:hover{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.hover\:border-green-200:hover{--tw-border-opacity: 1;border-color:rgb(188 240 218 / var(--tw-border-opacity))}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-primary-light:hover{border-color:var(--color-primary-light)}.hover\:border-secondary:hover{border-color:var(--color-secondary)}.hover\:bg-bg-light-tone:hover{background-color:var(--color-bg-light-tone)}.hover\:bg-bg-light-tone-panel:hover{background-color:var(--color-bg-light-tone-panel)}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.hover\:bg-blue-300:hover{--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.hover\:bg-blue-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.hover\:bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(188 240 218 / var(--tw-bg-opacity))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.hover\:bg-green-800:hover{--tw-bg-opacity: 1;background-color:rgb(3 84 63 / var(--tw-bg-opacity))}.hover\:bg-pink-800:hover{--tw-bg-opacity: 1;background-color:rgb(153 21 75 / var(--tw-bg-opacity))}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary-light:hover{background-color:var(--color-primary-light)}.hover\:bg-purple-800:hover{--tw-bg-opacity: 1;background-color:rgb(85 33 181 / var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(253 232 232 / var(--tw-bg-opacity))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(251 213 213 / var(--tw-bg-opacity))}.hover\:bg-red-300:hover{--tw-bg-opacity: 1;background-color:rgb(248 180 180 / var(--tw-bg-opacity))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(253 242 242 / var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.hover\:bg-red-800:hover{--tw-bg-opacity: 1;background-color:rgb(155 28 28 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:bg-yellow-200:hover{--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.hover\:bg-yellow-500:hover{--tw-bg-opacity: 1;background-color:rgb(194 120 3 / var(--tw-bg-opacity))}.hover\:bg-gradient-to-bl:hover{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))}.hover\:bg-gradient-to-br:hover{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.hover\:bg-gradient-to-l:hover{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.hover\:bg-gradient-to-r:hover{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.hover\:from-blue-50:hover{--tw-gradient-from: #EBF5FF var(--tw-gradient-from-position);--tw-gradient-to: rgb(235 245 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-blue-500\/20:hover{--tw-gradient-from: rgb(63 131 248 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 131 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-green-500:hover{--tw-gradient-from: #0E9F6E var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-teal-200:hover{--tw-gradient-from: #AFECEF var(--tw-gradient-from-position);--tw-gradient-to: rgb(175 236 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-green-600:hover{--tw-gradient-to: #057A55 var(--tw-gradient-to-position)}.hover\:to-lime-200:hover{--tw-gradient-to: #d9f99d var(--tw-gradient-to-position)}.hover\:to-purple-50:hover{--tw-gradient-to: #F6F5FF var(--tw-gradient-to-position)}.hover\:to-purple-500\/20:hover{--tw-gradient-to: rgb(144 97 249 / .2) var(--tw-gradient-to-position)}.hover\:font-bold:hover{font-weight:700}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-green-500:hover{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:rgb(5 122 85 / var(--tw-text-opacity))}.hover\:text-indigo-600:hover{--tw-text-opacity: 1;color:rgb(88 80 236 / var(--tw-text-opacity))}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-purple-600:hover{--tw-text-opacity: 1;color:rgb(126 58 242 / var(--tw-text-opacity))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(224 36 36 / var(--tw-text-opacity))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(200 30 30 / var(--tw-text-opacity))}.hover\:text-secondary:hover{color:var(--color-secondary)}.hover\:text-teal-600:hover{--tw-text-opacity: 1;color:rgb(4 116 129 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:text-yellow-600:hover{--tw-text-opacity: 1;color:rgb(159 88 10 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-none:hover{--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)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:scrollbar-thumb-primary{--scrollbar-thumb-hover: var(--color-primary) !important}.before\:hover\:text-center:hover:before{content:var(--tw-content);text-align:center}.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.focus\:z-10:focus{z-index:10}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.focus\:border-secondary:focus{border-color:var(--color-secondary)}.focus\:border-transparent:focus{border-color:transparent}.focus\:text-blue-700:focus{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring: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(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.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-4: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(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)}.focus\:ring-blue-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(195 221 253 / var(--tw-ring-opacity))}.focus\:ring-blue-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.focus\:ring-blue-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.focus\:ring-blue-500\/50:focus{--tw-ring-color: rgb(63 131 248 / .5)}.focus\:ring-blue-700:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(26 86 219 / var(--tw-ring-opacity))}.focus\:ring-cyan-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity))}.focus\:ring-cyan-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity))}.focus\:ring-gray-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity))}.focus\:ring-gray-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.focus\:ring-gray-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.focus\:ring-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.focus\:ring-green-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(188 240 218 / var(--tw-ring-opacity))}.focus\:ring-green-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(132 225 188 / var(--tw-ring-opacity))}.focus\:ring-green-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(49 196 141 / var(--tw-ring-opacity))}.focus\:ring-green-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.focus\:ring-lime-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity))}.focus\:ring-lime-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity))}.focus\:ring-pink-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(250 209 232 / var(--tw-ring-opacity))}.focus\:ring-pink-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 180 217 / var(--tw-ring-opacity))}.focus\:ring-primary:focus{--tw-ring-color: var(--color-primary)}.focus\:ring-purple-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(220 215 254 / var(--tw-ring-opacity))}.focus\:ring-purple-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity))}.focus\:ring-red-100:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 232 232 / var(--tw-ring-opacity))}.focus\:ring-red-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity))}.focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.focus\:ring-secondary:focus{--tw-ring-color: var(--color-secondary)}.focus\:ring-teal-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(126 220 226 / var(--tw-ring-opacity))}.focus\:ring-yellow-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(250 202 21 / var(--tw-ring-opacity))}.focus\:ring-yellow-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(227 160 8 / var(--tw-ring-opacity))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:hover\:text-center:hover:focus{text-align:center}.hover\:focus\:text-center:focus:hover{text-align:center}.active\:scale-75:active{--tw-scale-x: .75;--tw-scale-y: .75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-90:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scrollbar-thumb-secondary{--scrollbar-thumb-active: var(--color-secondary) !important}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(55 65 81 / var(--tw-divide-opacity))}.dark\:border-bg-light:is(.dark *){border-color:var(--color-bg-light)}.dark\:border-blue-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 86 219 / var(--tw-border-opacity))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.dark\:border-green-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity))}.dark\:border-pink-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(241 126 184 / var(--tw-border-opacity))}.dark\:border-pink-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(231 70 148 / var(--tw-border-opacity))}.dark\:border-purple-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(172 148 250 / var(--tw-border-opacity))}.dark\:border-purple-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(144 97 249 / var(--tw-border-opacity))}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(240 82 82 / var(--tw-border-opacity))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(155 28 28 / var(--tw-border-opacity))}.dark\:border-transparent:is(.dark *){border-color:transparent}.dark\:border-yellow-300:is(.dark *){--tw-border-opacity: 1;border-color:rgb(250 202 21 / var(--tw-border-opacity))}.dark\:bg-bg-dark:is(.dark *){background-color:var(--color-bg-dark)}.dark\:bg-bg-dark-tone:is(.dark *){background-color:var(--color-bg-dark-tone)}.dark\:bg-bg-dark-tone-panel:is(.dark *){background-color:var(--color-bg-dark-tone-panel)}.dark\:bg-black:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.dark\:bg-blue-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.dark\:bg-blue-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.dark\:bg-blue-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.dark\:bg-blue-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-700\/50:is(.dark *){background-color:#37415180}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-gray-800\/20:is(.dark *){background-color:#1f293733}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark\:bg-gray-900\/95:is(.dark *){background-color:#111827f2}.dark\:bg-green-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(188 240 218 / var(--tw-bg-opacity))}.dark\:bg-green-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 159 110 / var(--tw-bg-opacity))}.dark\:bg-green-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.dark\:bg-green-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 84 63 / var(--tw-bg-opacity))}.dark\:bg-green-900\/20:is(.dark *){background-color:#01473733}.dark\:bg-indigo-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(205 219 254 / var(--tw-bg-opacity))}.dark\:bg-indigo-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(104 117 245 / var(--tw-bg-opacity))}.dark\:bg-orange-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(180 52 3 / var(--tw-bg-opacity))}.dark\:bg-orange-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(138 44 13 / var(--tw-bg-opacity))}.dark\:bg-pink-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(250 209 232 / var(--tw-bg-opacity))}.dark\:bg-pink-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(214 31 105 / var(--tw-bg-opacity))}.dark\:bg-purple-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(220 215 254 / var(--tw-bg-opacity))}.dark\:bg-purple-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(144 97 249 / var(--tw-bg-opacity))}.dark\:bg-purple-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(126 58 242 / var(--tw-bg-opacity))}.dark\:bg-red-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(251 213 213 / var(--tw-bg-opacity))}.dark\:bg-red-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(240 82 82 / var(--tw-bg-opacity))}.dark\:bg-red-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.dark\:bg-red-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(155 28 28 / var(--tw-bg-opacity))}.dark\:bg-red-900\/20:is(.dark *){background-color:#771d1d33}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.dark\:bg-yellow-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.dark\:bg-opacity-70:is(.dark *){--tw-bg-opacity: .7}.dark\:bg-opacity-80:is(.dark *){--tw-bg-opacity: .8}.dark\:from-bg-dark:is(.dark *){--tw-gradient-from: var(--color-bg-dark) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-400\/20:is(.dark *){--tw-gradient-from: rgb(118 169 250 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(118 169 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-indigo-400:is(.dark *){--tw-gradient-from: #8DA2FB var(--tw-gradient-from-position);--tw-gradient-to: rgb(141 162 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-bg-dark:is(.dark *){--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--color-bg-dark) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-purple-400:is(.dark *){--tw-gradient-to: #AC94FA var(--tw-gradient-to-position)}.dark\:to-purple-400\/20:is(.dark *){--tw-gradient-to: rgb(172 148 250 / .2) var(--tw-gradient-to-position)}.dark\:fill-gray-300:is(.dark *){fill:#d1d5db}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.dark\:text-blue-500:is(.dark *){--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.dark\:text-blue-800:is(.dark *){--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity))}.dark\:text-dark-text-panel:is(.dark *){color:var(--color-dark-text-panel)}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.dark\:text-gray-800:is(.dark *){--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.dark\:text-green-200:is(.dark *){--tw-text-opacity: 1;color:rgb(188 240 218 / var(--tw-text-opacity))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.dark\:text-green-500:is(.dark *){--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.dark\:text-green-800:is(.dark *){--tw-text-opacity: 1;color:rgb(3 84 63 / var(--tw-text-opacity))}.dark\:text-green-900:is(.dark *){--tw-text-opacity: 1;color:rgb(1 71 55 / var(--tw-text-opacity))}.dark\:text-indigo-500:is(.dark *){--tw-text-opacity: 1;color:rgb(104 117 245 / var(--tw-text-opacity))}.dark\:text-indigo-900:is(.dark *){--tw-text-opacity: 1;color:rgb(54 47 120 / var(--tw-text-opacity))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(252 217 189 / var(--tw-text-opacity))}.dark\:text-pink-400:is(.dark *){--tw-text-opacity: 1;color:rgb(241 126 184 / var(--tw-text-opacity))}.dark\:text-pink-500:is(.dark *){--tw-text-opacity: 1;color:rgb(231 70 148 / var(--tw-text-opacity))}.dark\:text-pink-900:is(.dark *){--tw-text-opacity: 1;color:rgb(117 26 61 / var(--tw-text-opacity))}.dark\:text-primary:is(.dark *){color:var(--color-primary)}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(172 148 250 / var(--tw-text-opacity))}.dark\:text-purple-500:is(.dark *){--tw-text-opacity: 1;color:rgb(144 97 249 / var(--tw-text-opacity))}.dark\:text-purple-900:is(.dark *){--tw-text-opacity: 1;color:rgb(74 29 150 / var(--tw-text-opacity))}.dark\:text-red-200:is(.dark *){--tw-text-opacity: 1;color:rgb(251 213 213 / var(--tw-text-opacity))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.dark\:text-red-800:is(.dark *){--tw-text-opacity: 1;color:rgb(155 28 28 / var(--tw-text-opacity))}.dark\:text-red-900:is(.dark *){--tw-text-opacity: 1;color:rgb(119 29 29 / var(--tw-text-opacity))}.dark\:text-slate-50:is(.dark *){--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(250 202 21 / var(--tw-text-opacity))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(194 120 3 / var(--tw-text-opacity))}.dark\:text-yellow-800:is(.dark *){--tw-text-opacity: 1;color:rgb(114 59 19 / var(--tw-text-opacity))}.dark\:text-yellow-900:is(.dark *){--tw-text-opacity: 1;color:rgb(99 49 18 / var(--tw-text-opacity))}.dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:shadow-lg:is(.dark *){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-blue-800\/80:is(.dark *){--tw-shadow-color: rgb(30 66 159 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-cyan-800\/80:is(.dark *){--tw-shadow-color: rgb(21 94 117 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-green-800\/80:is(.dark *){--tw-shadow-color: rgb(3 84 63 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-lime-800\/80:is(.dark *){--tw-shadow-color: rgb(63 98 18 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-pink-800\/80:is(.dark *){--tw-shadow-color: rgb(153 21 75 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-purple-800\/80:is(.dark *){--tw-shadow-color: rgb(85 33 181 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-red-800\/80:is(.dark *){--tw-shadow-color: rgb(155 28 28 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-teal-800\/80:is(.dark *){--tw-shadow-color: rgb(5 80 92 / .8);--tw-shadow: var(--tw-shadow-colored)}.dark\:ring-gray-500:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark\:ring-white:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.dark\:ring-opacity-20:is(.dark *){--tw-ring-opacity: .2}.dark\:ring-offset-gray-700:is(.dark *){--tw-ring-offset-color: #374151}.dark\:ring-offset-gray-800:is(.dark *){--tw-ring-offset-color: #1F2937}.dark\:scrollbar-track-bg-dark:is(.dark *){--scrollbar-track: var(--color-bg-dark) !important}.dark\:scrollbar-track-bg-dark-tone:is(.dark *){--scrollbar-track: var(--color-bg-dark-tone) !important}.dark\:scrollbar-track-gray-700:is(.dark *){--scrollbar-track: #374151 !important}.dark\:scrollbar-track-gray-800:is(.dark *){--scrollbar-track: #1F2937 !important}.dark\:scrollbar-thumb-bg-dark-tone:is(.dark *){--scrollbar-thumb: var(--color-bg-dark-tone) !important}.dark\:scrollbar-thumb-bg-dark-tone-panel:is(.dark *){--scrollbar-thumb: var(--color-bg-dark-tone-panel) !important}.dark\:scrollbar-thumb-gray-500:is(.dark *){--scrollbar-thumb: #6B7280 !important}.dark\:scrollbar-thumb-gray-600:is(.dark *){--scrollbar-thumb: #4B5563 !important}.dark\:even\:bg-bg-dark-discussion-odd:nth-child(2n):is(.dark *){background-color:var(--color-bg-dark-discussion-odd)}.group:hover .dark\:group-hover\:bg-gray-800\/60:is(.dark *){background-color:#1f293799}.group:hover .dark\:group-hover\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.group:focus .dark\:group-focus\:ring-gray-800\/70:is(.dark *){--tw-ring-color: rgb(31 41 55 / .7)}.peer:focus~.dark\:peer-focus\:ring-blue-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity))}.dark\:hover\:border-blue-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / var(--tw-border-opacity))}.dark\:hover\:border-gray-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:hover\:border-primary:hover:is(.dark *){border-color:var(--color-primary)}.dark\:hover\:bg-blue-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(164 202 254 / var(--tw-bg-opacity))}.dark\:hover\:bg-blue-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.dark\:hover\:bg-blue-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-600\/50:hover:is(.dark *){background-color:#4b556380}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-700\/50:hover:is(.dark *){background-color:#37415180}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:hover\:bg-green-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(132 225 188 / var(--tw-bg-opacity))}.dark\:hover\:bg-green-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.dark\:hover\:bg-green-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.dark\:hover\:bg-pink-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(231 70 148 / var(--tw-bg-opacity))}.dark\:hover\:bg-pink-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(191 18 93 / var(--tw-bg-opacity))}.dark\:hover\:bg-primary:hover:is(.dark *){background-color:var(--color-primary)}.dark\:hover\:bg-purple-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(144 97 249 / var(--tw-bg-opacity))}.dark\:hover\:bg-purple-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(108 43 217 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(248 180 180 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.dark\:hover\:bg-red-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(119 29 29 / var(--tw-bg-opacity))}.dark\:hover\:bg-yellow-300:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(250 202 21 / var(--tw-bg-opacity))}.dark\:hover\:bg-yellow-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(227 160 8 / var(--tw-bg-opacity))}.hover\:dark\:bg-bg-dark-tone:is(.dark *):hover{background-color:var(--color-bg-dark-tone)}.hover\:dark\:bg-bg-dark-tone-panel:is(.dark *):hover{background-color:var(--color-bg-dark-tone-panel)}.dark\:hover\:from-blue-400\/30:hover:is(.dark *){--tw-gradient-from: rgb(118 169 250 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(118 169 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:hover\:from-blue-900\/30:hover:is(.dark *){--tw-gradient-from: rgb(35 56 118 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(35 56 118 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:hover\:to-purple-400\/30:hover:is(.dark *){--tw-gradient-to: rgb(172 148 250 / .3) var(--tw-gradient-to-position)}.dark\:hover\:to-purple-900\/30:hover:is(.dark *){--tw-gradient-to: rgb(74 29 150 / .3) var(--tw-gradient-to-position)}.dark\:hover\:text-blue-500:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:hover\:text-gray-900:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.dark\:hover\:text-green-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:hover\:scrollbar-thumb-primary:is(.dark *){--scrollbar-thumb-hover: var(--color-primary) !important}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.dark\:focus\:border-secondary:focus:is(.dark *){border-color:var(--color-secondary)}.dark\:focus\:text-white:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:focus\:ring-blue-500:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.dark\:focus\:ring-blue-600:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.dark\:focus\:ring-blue-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity))}.dark\:focus\:ring-cyan-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-500:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-600:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-700:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity))}.dark\:focus\:ring-gray-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity))}.dark\:focus\:ring-green-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity))}.dark\:focus\:ring-lime-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity))}.dark\:focus\:ring-pink-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(153 21 75 / var(--tw-ring-opacity))}.dark\:focus\:ring-pink-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(117 26 61 / var(--tw-ring-opacity))}.dark\:focus\:ring-purple-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity))}.dark\:focus\:ring-purple-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity))}.dark\:focus\:ring-red-400:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity))}.dark\:focus\:ring-red-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(155 28 28 / var(--tw-ring-opacity))}.dark\:focus\:ring-red-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity))}.dark\:focus\:ring-secondary:focus:is(.dark *){--tw-ring-color: var(--color-secondary)}.dark\:focus\:ring-teal-700:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(3 102 114 / var(--tw-ring-opacity))}.dark\:focus\:ring-teal-800:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(5 80 92 / var(--tw-ring-opacity))}.dark\:focus\:ring-yellow-900:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(99 49 18 / var(--tw-ring-opacity))}.dark\:focus\:ring-offset-gray-700:focus:is(.dark *){--tw-ring-offset-color: #374151}@media (min-width: 640px){.sm\:mb-0{margin-bottom:0}.sm\:mr-4{margin-right:1rem}.sm\:mt-0{margin-top:0}.sm\:h-10{height:2.5rem}.sm\:h-6{height:1.5rem}.sm\:h-64{height:16rem}.sm\:w-1\/4{width:25%}.sm\:w-10{width:2.5rem}.sm\:w-6{width:1.5rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:rounded-lg{border-radius:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:text-center{text-align:center}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.sm\:underline{text-decoration-line:underline}}@media (min-width: 768px){.md\:inset-0{top:0;right:0;bottom:0;left:0}.md\:order-2{order:2}.md\:mr-6{margin-right:1.5rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-2\/3{width:66.666667%}.md\:w-48{width:12rem}.md\:w-auto{width:auto}.md\:max-w-xl{max-width:36rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[300px\,1fr\]{grid-template-columns:300px 1fr}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\: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)))}.md\: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)))}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.md\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.md\:rounded-none{border-radius:0}.md\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.md\:border-0{border-width:0px}.md\:bg-transparent{background-color:transparent}.md\:p-0{padding:0}.md\:p-6{padding:1.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:font-medium{font-weight:500}.md\:text-blue-700{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.md\:hover\:bg-transparent:hover{background-color:transparent}.md\:hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.md\:dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.md\:dark\:hover\:bg-transparent:hover:is(.dark *){background-color:transparent}.md\:dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.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\:flex-row{flex-direction:row}.dark\:lg\:hover\:\[paint-order\:markers\]:hover:is(.dark *){paint-order:markers}}@media (min-width: 1280px){.xl\:h-80{height:20rem}.xl\:w-1\/6{width:16.666667%}}@media (min-width: 1536px){.\32xl\:h-96{height:24rem}} diff --git a/web/dist/index.html b/web/dist/index.html index dce8305a..67128081 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -6,8 +6,8 @@ LoLLMS WebUI - - + +
diff --git a/web/src/components/ChatBox.vue b/web/src/components/ChatBox.vue index b9ee85db..f2e34548 100644 --- a/web/src/components/ChatBox.vue +++ b/web/src/components/ChatBox.vue @@ -1,13 +1,8 @@