From 4f7f944885514f13b32d7ab07d247fb270657220 Mon Sep 17 00:00:00 2001 From: Saifeddine ALOUI Date: Thu, 3 Apr 2025 00:09:51 +0200 Subject: [PATCH] fix --- web/dist/assets/index-BeUsrJ7C.css | 26 ++++++++ web/dist/assets/index-Bh7FEesB.css | 26 -------- .../{index-DBWmPIc8.js => index-n0MHHb8e.js} | 36 +++++------ web/dist/index.html | 4 +- web/src/App.vue | 61 ++++++++----------- 5 files changed, 73 insertions(+), 80 deletions(-) create mode 100644 web/dist/assets/index-BeUsrJ7C.css delete mode 100644 web/dist/assets/index-Bh7FEesB.css rename web/dist/assets/{index-DBWmPIc8.js => index-n0MHHb8e.js} (95%) diff --git a/web/dist/assets/index-BeUsrJ7C.css b/web/dist/assets/index-BeUsrJ7C.css new file mode 100644 index 00000000..ef3ef89a --- /dev/null +++ b/web/dist/assets/index-BeUsrJ7C.css @@ -0,0 +1,26 @@ +@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";.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)}.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}/*! + 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}.code-block-button[data-v-6c0ead0d]{border-radius:.25rem;padding:.25rem;--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-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.code-block-button[data-v-6c0ead0d]:hover{background-color:var(--color-primary);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.code-block-button[data-v-6c0ead0d]: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-color: var(--color-primary);--tw-ring-offset-width: 1px}.code-block-button[data-v-6c0ead0d]:disabled{cursor:not-allowed;opacity:.5}.code-block-button[data-v-6c0ead0d]:hover:disabled{background-color:transparent;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.code-block-button[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.code-block-button[data-v-6c0ead0d]:hover:is(.dark *){background-color:var(--color-primary)}.code-block-button[data-v-6c0ead0d]:hover:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.feather-small[data-v-6c0ead0d]{display:inline-block;height:.75rem;width:.75rem;vertical-align:middle}.hljs[data-v-6c0ead0d]{background:none!important;padding:0!important;margin:0!important}.code-block-container[data-v-6c0ead0d]{position:relative}.code-content-flex[data-v-6c0ead0d]{align-items:stretch}.line-numbers[data-v-6c0ead0d]{flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow-y:hidden;white-space:pre;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.5rem;text-align:right;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.line-numbers[data-v-6c0ead0d]: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))}.line-numbers[data-v-6c0ead0d]{min-height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-content[data-v-6c0ead0d]{flex-grow:1;overflow-x:auto;overflow-y:hidden;white-space:pre-wrap;overflow-wrap:break-word;padding:.5rem}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.code-content[data-v-6c0ead0d]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar{display:block;width:8px;height:8px}.code-content[data-v-6c0ead0d]{--scrollbar-track: transparent;--scrollbar-thumb: #9CA3AF}.code-content[data-v-6c0ead0d]:focus{outline:2px solid transparent;outline-offset:2px}.code-content[data-v-6c0ead0d]:is(.dark *){--scrollbar-thumb: #6B7280}.code-content[data-v-6c0ead0d]{min-height:1.5em;caret-color:currentColor;color:#1f2937;background-color:#fff}.dark .code-content[data-v-6c0ead0d]{color:#e5e7eb;background-color:#1f2937}.code-content[data-v-6c0ead0d]::-webkit-scrollbar{height:8px}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb{border-radius:4px}.animate-spin[data-v-6c0ead0d]{animation:spin-6c0ead0d 1s linear infinite}@keyframes spin-6c0ead0d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.execute-button[data-v-6c0ead0d]{display:inline-flex;align-items:center;justify-content:center}.dark .dark\:hidden[data-v-6c0ead0d]{display:none}.dark .dark\:inline[data-v-6c0ead0d]{display:inline}.hidden[data-v-6c0ead0d]{display:none}.code-block-button i[data-feather][data-v-6c0ead0d],.code-block-button img[data-v-6c0ead0d]{vertical-align:middle}.parameter-item[data-v-6c0ead0d]{margin-bottom:.5rem}.parameter-item>div[data-v-6c0ead0d]:last-child{margin-left:.5rem}.execution-output-content a[data-v-6c0ead0d]{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.execution-output-content a[data-v-6c0ead0d]:hover{text-decoration-line:underline}.execution-output-content a[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.execution-output-content h1[data-v-6c0ead0d]{margin-top:.5rem;margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}.execution-output-content h2[data-v-6c0ead0d]{margin-top:.375rem;margin-bottom:.375rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.execution-output-content h3[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;font-size:1rem;line-height:1.5rem;font-weight:600}.execution-output-content h4[data-v-6c0ead0d],.execution-output-content h5[data-v-6c0ead0d],.execution-output-content h6[data-v-6c0ead0d]{margin-top:.125rem;margin-bottom:.125rem;font-weight:600}.execution-output-content p[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem}.execution-output-content ul[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;margin-left:1rem;list-style-position:inside;list-style-type:disc}.execution-output-content ol[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;margin-left:1rem;list-style-position:inside;list-style-type:decimal}.execution-output-content li[data-v-6c0ead0d]{margin-top:.125rem;margin-bottom:.125rem}.execution-output-content code[data-v-6c0ead0d]:not(pre>code){border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.125rem .25rem;font-family:JetBrains Mono,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.execution-output-content code[data-v-6c0ead0d]:not(pre>code):is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.execution-output-content pre[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;overflow-x:auto;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.5rem;font-family:JetBrains Mono,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.execution-output-content pre[data-v-6c0ead0d]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.execution-output-content pre>code[data-v-6c0ead0d]{background-color:transparent;padding:0;font-size:.875rem;line-height:1.25rem}.execution-output-content blockquote[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;border-left-width:4px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding-left:.5rem;font-style:italic;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.execution-output-content blockquote[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.execution-output-content table[data-v-6c0ead0d]{margin-top:.5rem;margin-bottom:.5rem;width:100%;border-collapse:collapse;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));font-size:.875rem;line-height:1.25rem}.execution-output-content table[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.execution-output-content th[data-v-6c0ead0d],.execution-output-content td[data-v-6c0ead0d]{border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding:.375rem;text-align:left}.execution-output-content th[data-v-6c0ead0d]:is(.dark *),.execution-output-content td[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.execution-output-content th[data-v-6c0ead0d]{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));font-weight:600}.execution-output-content th[data-v-6c0ead0d]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.execution-output-content img[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;height:auto;max-width:100%;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.execution-output-content img[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.execution-output-content svg[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;height:auto;max-width:100%}.execution-output-content hr[data-v-6c0ead0d]{margin-top:.5rem;margin-bottom:.5rem;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.execution-output-content hr[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.execution-output-content.hljs[data-v-6c0ead0d]{color:#1f2937;background-color:#fff}.dark .execution-output-content.hljs[data-v-6c0ead0d]{color:#e5e7eb;background-color:#1f2937}.search-replace-panel[data-v-6c0ead0d]{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.search-replace-panel[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.search-replace-panel input[type=text][data-v-6c0ead0d]{border-radius:.25rem;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:.25rem .5rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.search-replace-panel input[type=text][data-v-6c0ead0d]:focus{border-color:var(--color-primary);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(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);--tw-ring-color: var(--color-primary)}.search-replace-panel input[type=text][data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.search-replace-panel input[type=text][data-v-6c0ead0d]{min-width:80px}.search-replace-panel .search-status[data-v-6c0ead0d]{white-space:nowrap;padding-left:.25rem;padding-right:.25rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.search-replace-panel .search-status[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.search-replace-panel .search-status[data-v-6c0ead0d]{min-width:50px;text-align:center}.search-replace-panel .search-button[data-v-6c0ead0d]{padding:.125rem .25rem;font-size:.75rem;line-height:1rem}.search-replace-panel .search-button i[data-feather][data-v-6c0ead0d]{height:.875rem;width:.875rem}.search-replace-panel .code-block-button[data-v-6c0ead0d]{padding:.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:hover{background-color:var(--color-primary);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:hover:is(.dark *){background-color:var(--color-primary)}.search-replace-panel .code-block-button[data-v-6c0ead0d]:disabled{cursor:not-allowed;opacity:.5}.search-replace-panel .code-block-button[data-v-6c0ead0d]:disabled:hover{background-color:transparent;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:disabled:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.code-content[data-v-6c0ead0d]::-moz-selection{background-color:#c3ddfd;color:#000}.code-content[data-v-6c0ead0d]::selection{background-color:#c3ddfd;color:#000}.dark .code-content[data-v-6c0ead0d]::-moz-selection{background-color:#1e429f;color:#fff}.dark .code-content[data-v-6c0ead0d]::selection{background-color:#1e429f;color:#fff}.dark .code-content.hljs[data-v-6c0ead0d],.dark .execution-output-content.hljs[data-v-6c0ead0d]{color:#a9b1d6}.dark .hljs-meta[data-v-6c0ead0d]{color:#ff9e64}.dark .hljs-comment[data-v-6c0ead0d]{color:#565f89;font-style:italic}.dark .hljs-tag[data-v-6c0ead0d],.dark .hljs-tag .hljs-name[data-v-6c0ead0d],.dark .hljs-tag .hljs-attr[data-v-6c0ead0d]{color:#f7768e}.dark .hljs-keyword[data-v-6c0ead0d],.dark .hljs-selector-tag[data-v-6c0ead0d],.dark .hljs-literal[data-v-6c0ead0d],.dark .hljs-name[data-v-6c0ead0d]{color:#bb9af7}.dark .hljs-deletion[data-v-6c0ead0d],.dark .hljs-number[data-v-6c0ead0d],.dark .hljs-attribute[data-v-6c0ead0d],.dark .hljs-variable[data-v-6c0ead0d],.dark .hljs-template-variable[data-v-6c0ead0d],.dark .hljs-symbol[data-v-6c0ead0d]{color:#ff9e64}.dark .hljs-section[data-v-6c0ead0d],.dark .hljs-title[data-v-6c0ead0d],.dark .hljs-type[data-v-6c0ead0d]{color:#7aa2f7}.dark .hljs-string[data-v-6c0ead0d],.dark .hljs-subst[data-v-6c0ead0d],.dark .hljs-regexp[data-v-6c0ead0d],.dark .hljs-link[data-v-6c0ead0d],.dark .hljs-addition[data-v-6c0ead0d],.dark .hljs-selector-id[data-v-6c0ead0d],.dark .hljs-selector-class[data-v-6c0ead0d]{color:#9ece6a}.dark .hljs-built_in[data-v-6c0ead0d],.dark .hljs-bullet[data-v-6c0ead0d],.dark .hljs-code[data-v-6c0ead0d],.dark .hljs-formula[data-v-6c0ead0d]{color:#7dcfff}.dark .hljs-emphasis[data-v-6c0ead0d]{font-style:italic}.dark .hljs-strong[data-v-6c0ead0d]{font-weight:700}html:not(.dark) .code-content.hljs[data-v-6c0ead0d],html:not(.dark) .execution-output-content.hljs[data-v-6c0ead0d]{color:#24292e}html:not(.dark) .hljs-meta[data-v-6c0ead0d]{color:#6a737d}html:not(.dark) .hljs-comment[data-v-6c0ead0d]{color:#6a737d;font-style:italic}html:not(.dark) .hljs-tag[data-v-6c0ead0d]{color:#22863a}html:not(.dark) .hljs-tag .hljs-name[data-v-6c0ead0d],html:not(.dark) .hljs-tag .hljs-attr[data-v-6c0ead0d]{color:#22863a}html:not(.dark) .hljs-keyword[data-v-6c0ead0d],html:not(.dark) .hljs-selector-tag[data-v-6c0ead0d],html:not(.dark) .hljs-literal[data-v-6c0ead0d],html:not(.dark) .hljs-name[data-v-6c0ead0d]{color:#d73a49}html:not(.dark) .hljs-deletion[data-v-6c0ead0d],html:not(.dark) .hljs-number[data-v-6c0ead0d],html:not(.dark) .hljs-attribute[data-v-6c0ead0d],html:not(.dark) .hljs-variable[data-v-6c0ead0d],html:not(.dark) .hljs-template-variable[data-v-6c0ead0d],html:not(.dark) .hljs-symbol[data-v-6c0ead0d]{color:#005cc5}html:not(.dark) .hljs-section[data-v-6c0ead0d],html:not(.dark) .hljs-title[data-v-6c0ead0d],html:not(.dark) .hljs-type[data-v-6c0ead0d]{color:#6f42c1}html:not(.dark) .hljs-string[data-v-6c0ead0d],html:not(.dark) .hljs-subst[data-v-6c0ead0d],html:not(.dark) .hljs-regexp[data-v-6c0ead0d],html:not(.dark) .hljs-link[data-v-6c0ead0d],html:not(.dark) .hljs-addition[data-v-6c0ead0d],html:not(.dark) .hljs-selector-id[data-v-6c0ead0d],html:not(.dark) .hljs-selector-class[data-v-6c0ead0d]{color:#032f62}html:not(.dark) .hljs-built_in[data-v-6c0ead0d],html:not(.dark) .hljs-bullet[data-v-6c0ead0d],html:not(.dark) .hljs-code[data-v-6c0ead0d],html:not(.dark) .hljs-formula[data-v-6c0ead0d]{color:#e36209}html:not(.dark) .hljs-emphasis[data-v-6c0ead0d]{font-style:italic}html:not(.dark) .hljs-strong[data-v-6c0ead0d]{font-weight:700}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub Dark + Description: Dark theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-dark + Current colors taken from GitHub's CSS +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.math[data-v-3ade7b33]{display:inline-block}.mathjax_block[data-v-3ade7b33]{display:block}.progress-bar-container[data-v-ae2d8fdf]{background-color:#f0f0f0;border-radius:4px;height:8px;overflow:hidden}.progress-bar[data-v-ae2d8fdf]{background-color:#3498db;height:100%;transition:width .3s ease}.custom-scrollbar[data-v-78eaa4f5]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar-track{background-color:transparent}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-78eaa4f5]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-78eaa4f5]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.range-thumb[data-v-78eaa4f5]{margin-top:-.25rem;height:1rem;width:1rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-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)}.dark .range-thumb[data-v-78eaa4f5]{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.switch-thumb[data-v-78eaa4f5]{position:absolute;top:.125rem;left:.125rem;height:1.25rem;width:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-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);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.peer:checked~.switch-thumb[data-v-78eaa4f5]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~div[data-v-78eaa4f5]{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.dark .peer:checked~div[data-v-78eaa4f5]{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.theme-dropdown[data-v-b2b50ce7]{position:absolute;right:0;z-index:52;margin-top:.25rem;width:12rem;overflow:hidden}.language-dropdown[data-v-b2b50ce7]{position:absolute;right:0;z-index:52;margin-top:.25rem;width:16rem;overflow:hidden}.info-dropdown[data-v-b2b50ce7]{position:absolute;right:0;z-index:52;margin-top:.25rem;width:auto;min-width:300px;max-width:28rem}.context-menu-transition-enter-active[data-v-b2b50ce7]{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:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}.context-menu-transition-enter-from[data-v-b2b50ce7]{--tw-translate-y: -.5rem;--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));opacity:0}.context-menu-transition-enter-to[data-v-b2b50ce7]{--tw-translate-y: 0px;--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));opacity:1}.context-menu-transition-leave-active[data-v-b2b50ce7]{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-timing-function:cubic-bezier(.4,0,1,1)}.context-menu-transition-leave-from[data-v-b2b50ce7]{--tw-translate-y: 0px;--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));opacity:1}.context-menu-transition-leave-to[data-v-b2b50ce7]{--tw-translate-y: -.5rem;--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));opacity:0}.context-menu[data-v-b2b50ce7]{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(255 255 255 / var(--tw-bg-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)}.context-menu[data-v-b2b50ce7]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.context-menu-item[data-v-b2b50ce7]{display:flex;cursor:pointer;align-items:center;padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;--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-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.context-menu-item[data-v-b2b50ce7]:hover{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.context-menu-item[data-v-b2b50ce7]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.context-menu-item[data-v-b2b50ce7]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.context-menu-item-icon[data-v-b2b50ce7]{margin-right:.5rem;height:.875rem;width:.875rem;--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.context-menu-item-icon[data-v-b2b50ce7]:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.scrollbar[data-v-b2b50ce7]{scrollbar-width:thin;scrollbar-color:#A4CAFE #E1EFFE}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar{width:6px;height:6px}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar-track{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar-thumb{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.transition-height{transition-property:height}.overlay[data-v-c3cec55e]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;z-index:1000;cursor:pointer}.card-container.scale-110[data-v-c3cec55e]{z-index:1001}.card-container[data-v-c3cec55e],.shrunk-card[data-v-c3cec55e]{transition-property:transform,background-color,border-color,color,box-shadow,background-opacity,-webkit-backdrop-filter;transition-property:transform,background-color,border-color,color,box-shadow,background-opacity,backdrop-filter;transition-property:transform,background-color,border-color,color,box-shadow,background-opacity,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease-in-out;transition-duration:.3s}.card-container[data-v-c3cec55e]:focus-within,.shrunk-card[data-v-c3cec55e]: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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity));--tw-ring-offset-width: 2px;--tw-ring-offset-color: transparent}.card-container[data-v-c3cec55e],.shrunk-card[data-v-c3cec55e],button[data-v-c3cec55e]{outline:none}.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[data-v-721d5f23]{width:200px}body[data-v-721d5f23]{background-color:#fafafa;font-family:sans-serif}.container[data-v-721d5f23]{margin:4px auto;width:800px}.settings[data-v-721d5f23]{position:fixed;top:0;right:0;width:500px;background-color:#fff;z-index:1000;overflow-y:auto;height:100%}.slider-container[data-v-721d5f23]{margin-top:20px}.slider-value[data-v-721d5f23]{display:inline-block;margin-left:10px;color:#6b7280;font-size:14px}.small-button[data-v-721d5f23]{padding:.5rem .75rem;font-size:.875rem}.active-tab[data-v-dd0910af]{font-weight:700}.folder-button[data-v-09d1f933]{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;border-radius:.5rem;border-width:2px;border-style:dashed;padding:1rem;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-property:all;min-height:100px}.folder-button[data-v-09d1f933]:hover{border-style:solid;--tw-bg-opacity: .5;--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)}.folder-button span[data-v-09d1f933]{line-height:1.2}.border-blue-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.border-blue-500[data-v-09d1f933]:hover:is(.dark *){background-color:#23387633}.border-green-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(243 250 247 / var(--tw-bg-opacity))}.border-green-500[data-v-09d1f933]:hover:is(.dark *){background-color:#01473733}.border-yellow-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(253 253 234 / var(--tw-bg-opacity))}.border-yellow-500[data-v-09d1f933]:hover:is(.dark *){background-color:#63311233}.border-purple-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(246 245 255 / var(--tw-bg-opacity))}.border-purple-500[data-v-09d1f933]:hover:is(.dark *){background-color:#4a1d9633}.border-red-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(253 242 242 / var(--tw-bg-opacity))}.border-red-500[data-v-09d1f933]:hover:is(.dark *){background-color:#771d1d33}.transition-all[data-v-09d1f933]{transition-property:all}.duration-300[data-v-09d1f933]{transition-duration:.3s}.input-field[data-v-29a3f94a]{display:block;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(249 250 251 / 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)}.input-field[data-v-29a3f94a]:focus{border-color:var(--color-primary);outline:2px solid transparent;outline-offset:2px;--tw-ring-color: var(--color-primary) }.input-field[data-v-29a3f94a]:disabled{cursor:not-allowed;opacity:.5}.input-field[data-v-29a3f94a]: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))}@media (min-width: 640px){.input-field[data-v-29a3f94a]{font-size:.875rem;line-height:1.25rem}}.setting-item[data-v-3760efd0]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-3760efd0]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-3760efd0]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-3760efd0]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-3760efd0]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-3760efd0]{width:25%}}.input[data-v-3760efd0]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem}.input[data-v-3760efd0]::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]{--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)}.input[data-v-3760efd0]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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 }.input[data-v-3760efd0]:disabled{opacity:.5}.input[data-v-3760efd0]: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(243 244 246 / var(--tw-text-opacity))}.input[data-v-3760efd0]:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]:focus:is(.dark *){--tw-ring-offset-color: #111827 }@media (min-width: 640px){.input[data-v-3760efd0]{font-size:.875rem;line-height:1.25rem}}.panels-color[data-v-3760efd0]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.panels-color[data-v-3760efd0]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.toggle-item[data-v-3760efd0]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.toggle-item[data-v-3760efd0]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-3760efd0]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-3760efd0]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-3760efd0]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-3760efd0]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.btn[data-v-3760efd0]{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.btn[data-v-3760efd0]: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-offset-width: 2px }.btn[data-v-3760efd0]:disabled{opacity:.5}.btn[data-v-3760efd0]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.btn-sm[data-v-3760efd0]{padding:.375rem .75rem;font-size:.75rem;line-height:1rem}.btn-primary[data-v-3760efd0]{--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[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-primary[data-v-3760efd0]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.btn-secondary[data-v-3760efd0]{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.btn-secondary[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.btn-secondary[data-v-3760efd0]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.btn-secondary[data-v-3760efd0]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.btn-secondary[data-v-3760efd0]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.btn-positive[data-v-3760efd0]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-positive[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.btn-positive[data-v-3760efd0]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity)) }.form-select[data-v-3760efd0]{display:block;width:100%;border-radius:.375rem;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5rem}.form-select[data-v-3760efd0]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px;--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.form-select[data-v-3760efd0]: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(209 213 219 / var(--tw-text-opacity))}@media (min-width: 640px){.form-select[data-v-3760efd0]{font-size:.875rem;line-height:1.25rem}}.panels-color>.grid[data-v-3760efd0]{border-style:none;padding:0;--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)}.setting-item[data-v-52537129]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-52537129]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-52537129]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-52537129]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-52537129]{width:25%}}.setting-label-inline[data-v-52537129]{margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.setting-label-inline[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.input-field[data-v-52537129]{display:block;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(249 250 251 / 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)}.input-field[data-v-52537129]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field[data-v-52537129]:disabled{opacity:.5}.input-field[data-v-52537129]: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))}.input-field[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}@media (min-width: 640px){.input-field[data-v-52537129]{font-size:.875rem;line-height:1.25rem}}.input-field-sm[data-v-52537129]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field-sm[data-v-52537129]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field-sm[data-v-52537129]:disabled{opacity:.5}.input-field-sm[data-v-52537129]: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))}.input-field-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.range-input[data-v-52537129]{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));accent-color:#1C64F2}.range-input[data-v-52537129]:disabled{opacity:.5}.range-input[data-v-52537129]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.toggle-item[data-v-52537129]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-52537129]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-52537129]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-52537129]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.button-base[data-v-52537129]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-base[data-v-52537129]: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-offset-width: 2px}.button-base[data-v-52537129]:disabled{opacity:.5}.button-base[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-base-sm[data-v-52537129]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-52537129]: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-offset-width: 2px}.button-base-sm[data-v-52537129]:disabled{opacity:.5}.button-base-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-52537129]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-primary[data-v-52537129]: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-offset-width: 2px}.button-primary[data-v-52537129]:disabled{opacity:.5}.button-primary[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-secondary[data-v-52537129]: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-offset-width: 2px}.button-secondary[data-v-52537129]:disabled{opacity:.5}.button-secondary[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary[data-v-52537129]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary[data-v-52537129]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-success[data-v-52537129]: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-offset-width: 2px}.button-success[data-v-52537129]:disabled{opacity:.5}.button-success[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.button-danger[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-danger[data-v-52537129]: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-offset-width: 2px}.button-danger[data-v-52537129]:disabled{opacity:.5}.button-danger[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-danger[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.button-primary-sm[data-v-52537129]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-52537129]: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-offset-width: 2px}.button-primary-sm[data-v-52537129]:disabled{opacity:.5}.button-primary-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-secondary-sm[data-v-52537129]: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-offset-width: 2px}.button-secondary-sm[data-v-52537129]:disabled{opacity:.5}.button-secondary-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary-sm[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary-sm[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-52537129]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary-sm[data-v-52537129]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success-sm[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-52537129]: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-offset-width: 2px}.button-success-sm[data-v-52537129]:disabled{opacity:.5}.button-success-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success-sm[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}[data-v-4777608e]:root{--color-primary: #3b82f6;--color-primary-rgb: 59, 130, 246}.dark[data-v-4777608e]:root{--color-primary: #60a5fa;--color-primary-rgb: 96, 165, 250}.setting-item[data-v-4777608e]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-4777608e]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-4777608e]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-4777608e]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-4777608e]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-4777608e]{width:25%}}.input-field-sm[data-v-4777608e]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field-sm[data-v-4777608e]:focus{border-color:var(--color-primary);outline:2px solid transparent;outline-offset:2px;--tw-ring-color: var(--color-primary)}.input-field-sm[data-v-4777608e]:disabled{opacity:.5}.input-field-sm[data-v-4777608e]: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))}.range-input[data-v-4777608e]{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled{opacity:.5}.range-input[data-v-4777608e]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]{accent-color:var(--color-primary)}.range-input[data-v-4777608e]::-webkit-slider-thumb{height:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--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);-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;background-color:var(--color-primary)}.range-input[data-v-4777608e]::-moz-range-thumb{height:1rem;width:1rem;cursor:pointer;border-radius:9999px;border-style:none;--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);-moz-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;background-color:var(--color-primary)}.range-input[data-v-4777608e]:disabled::-webkit-slider-thumb{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled::-moz-range-thumb{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled:is(.dark *)::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:focus{outline:2px solid transparent;outline-offset:2px}.range-input[data-v-4777608e]:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.dark .range-input[data-v-4777608e]:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px #1f2937,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.range-input[data-v-4777608e]:focus::-moz-range-thumb{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.dark .range-input[data-v-4777608e]:focus::-moz-range-thumb{box-shadow:0 0 0 2px #1f2937,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.toggle-item[data-v-4777608e]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-4777608e]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-4777608e]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-4777608e]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-4777608e]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-4777608e]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-4777608e]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.setting-item-grid[data-v-7b97b998]{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));align-items:center;-moz-column-gap:1rem;column-gap:1rem;row-gap:.25rem;padding-top:.25rem;padding-bottom:.25rem}@media (min-width: 768px){.setting-item-grid[data-v-7b97b998]{grid-template-columns:minmax(150px,25%) 1fr}}.setting-label[data-v-7b97b998]{padding-right:.5rem;text-align:left;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-7b97b998]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-7b97b998]{text-align:right}}.setting-input-group[data-v-7b97b998]{display:flex;align-items:center;gap:.5rem}.input-field[data-v-7b97b998]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field[data-v-7b97b998]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field[data-v-7b97b998]:disabled{opacity:.5}.input-field[data-v-7b97b998]: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))}.input-field[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.input-field-sm[data-v-7b97b998]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.75rem;line-height:1rem;--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)}.input-field-sm[data-v-7b97b998]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field-sm[data-v-7b97b998]:disabled{opacity:.5}.input-field-sm[data-v-7b97b998]: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))}.input-field-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.toggle-item[data-v-7b97b998]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-7b97b998]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-7b97b998]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-7b97b998]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-7b97b998]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-7b97b998]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.button-base[data-v-7b97b998]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-base[data-v-7b97b998]: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-offset-width: 2px}.button-base[data-v-7b97b998]:disabled{opacity:.5}.button-base[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-base-sm[data-v-7b97b998]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-7b97b998]: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-offset-width: 2px}.button-base-sm[data-v-7b97b998]:disabled{opacity:.5}.button-base-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-7b97b998]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-primary[data-v-7b97b998]: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-offset-width: 2px}.button-primary[data-v-7b97b998]:disabled{opacity:.5}.button-primary[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-secondary[data-v-7b97b998]: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-offset-width: 2px}.button-secondary[data-v-7b97b998]:disabled{opacity:.5}.button-secondary[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary[data-v-7b97b998]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary[data-v-7b97b998]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-success[data-v-7b97b998]: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-offset-width: 2px}.button-success[data-v-7b97b998]:disabled{opacity:.5}.button-success[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.button-danger[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-danger[data-v-7b97b998]: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-offset-width: 2px}.button-danger[data-v-7b97b998]:disabled{opacity:.5}.button-danger[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-danger[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.button-primary-sm[data-v-7b97b998]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-7b97b998]: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-offset-width: 2px}.button-primary-sm[data-v-7b97b998]:disabled{opacity:.5}.button-primary-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-secondary-sm[data-v-7b97b998]: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-offset-width: 2px}.button-secondary-sm[data-v-7b97b998]:disabled{opacity:.5}.button-secondary-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary-sm[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary-sm[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-7b97b998]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary-sm[data-v-7b97b998]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success-sm[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-7b97b998]: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-offset-width: 2px}.button-success-sm[data-v-7b97b998]:disabled{opacity:.5}.button-success-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success-sm[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}[data-feather][data-v-720de39c]{vertical-align:middle;width:1em;height:1em;stroke-width:2}@keyframes spin-720de39c{to{transform:rotate(360deg)}}.animate-spin[data-v-720de39c]{animation:spin-720de39c 1s linear infinite}@keyframes pulse-720de39c{50%{opacity:.5}}.animate-pulse[data-v-720de39c]{animation:pulse-720de39c 2s cubic-bezier(.4,0,.6,1) infinite}.line-clamp-3[data-v-720de39c]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.input-field[data-v-62a84717]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field[data-v-62a84717]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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(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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.input-field[data-v-62a84717]:disabled{opacity:.5}.input-field[data-v-62a84717]: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(229 231 235 / var(--tw-text-opacity))}.input-field[data-v-62a84717]:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.input-field[data-v-62a84717]:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.binding-entry-processing[data-v-62a84717]{opacity:.7;pointer-events:none}.bg-primary-light[data-v-62a84717]{background-color:#e0f2fe}.dark .bg-primary-dark\/20[data-v-62a84717]{background-color:#3b82f633}.border-primary-dark\/30[data-v-62a84717]{border-color:#2563eb4d}.focus\:ring-primary-dark\/50[data-v-62a84717]:focus{--tw-ring-color: rgba(37, 99, 235, .5)}.dark .fill-primary[data-v-62a84717]{fill:#3b82f6}.fill-primary[data-v-62a84717]{fill:#2563eb}.interactive-menu-container[data-v-e42afcb4]{position:relative;display:inline-block;text-align:left;--menu-trigger-bg: #F3F4F6;--menu-trigger-text: #4B5563;--menu-trigger-hover-bg: #E5E7EB;--menu-trigger-hover-text: #1F2937;--menu-trigger-focus-ring: #6875F5;--menu-dropdown-bg: #ffffff;--menu-dropdown-border: rgb(0 0 0 / 5%);--menu-dropdown-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--menu-item-text: #374151;--menu-item-hover-bg: #E5EDFF;--menu-item-hover-text: #111827;--menu-item-icon-color: #6B7280;--menu-item-icon-hover-color: #374151;--menu-item-checkmark-color: #5850EC}.dark .interactive-menu-container[data-v-e42afcb4]{--menu-trigger-bg: #374151;--menu-trigger-text: #9CA3AF;--menu-trigger-hover-bg: #4B5563;--menu-trigger-hover-text: #E5E7EB;--menu-dropdown-bg: #1F2937;--menu-dropdown-border: rgb(255 255 255 / 10%);--menu-item-text: #E5E7EB;--menu-item-hover-bg: #362F78;--menu-item-hover-text: #F3F4F6;--menu-item-icon-color: #9CA3AF;--menu-item-icon-hover-color: #E5E7EB;--menu-item-checkmark-color: #8DA2FB}.interactive-menu-trigger[data-v-e42afcb4]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.25rem;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-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:var(--menu-trigger-bg);color:var(--menu-trigger-text);line-height:0;border:none;cursor:pointer}.interactive-menu-trigger[data-v-e42afcb4]:hover{background-color:var(--menu-trigger-hover-bg);color:var(--menu-trigger-hover-text)}.interactive-menu-trigger[data-v-e42afcb4]: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-offset-width: 2px;ring-color:var(--menu-trigger-focus-ring)}.interactive-menu-trigger-icon[data-v-e42afcb4]{height:1.25rem;width:1.25rem}.interactive-menu-trigger-text[data-v-e42afcb4]{padding-left:.25rem;padding-right:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.interactive-menu-dropdown[data-v-e42afcb4]{position:absolute;z-index:50;margin-top:.5rem;width:14rem;border-radius:.375rem;--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);--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)}.interactive-menu-dropdown[data-v-e42afcb4]:focus{outline:2px solid transparent;outline-offset:2px}.interactive-menu-dropdown[data-v-e42afcb4]{background-color:var(--menu-dropdown-bg);ring-color:var(--menu-dropdown-border);box-shadow:var(--menu-dropdown-shadow);min-width:14rem;max-height:75vh;overflow-y:auto}.interactive-menu-list[data-v-e42afcb4]{margin:0;list-style-type:none;padding:0;padding-top:.25rem;padding-bottom:.25rem}.interactive-menu-item[data-v-e42afcb4]{display:flex;cursor:pointer;align-items:center;white-space:nowrap;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:var(--menu-item-text);min-height:2.25rem}.interactive-menu-item[data-v-e42afcb4]:hover,.interactive-menu-item[data-v-e42afcb4]:focus{background-color:var(--menu-item-hover-bg);color:var(--menu-item-hover-text);outline:none}.interactive-menu-item:hover .interactive-menu-item-icon-container[data-v-e42afcb4],.interactive-menu-item:focus .interactive-menu-item-icon-container[data-v-e42afcb4]{color:var(--menu-item-icon-hover-color)}.interactive-menu-item-checkmark-placeholder[data-v-e42afcb4]{margin-right:.5rem;display:flex;width:1rem;flex-shrink:0;align-items:center;justify-content:center}.interactive-menu-item-checkmark-icon[data-v-e42afcb4]{height:1rem;width:1rem;color:var(--menu-item-checkmark-color)}.interactive-menu-item-icon-container[data-v-e42afcb4]{margin-right:.5rem;display:flex;width:1rem;flex-shrink:0;align-items:center;justify-content:center;color:var(--menu-item-icon-color);transition:color .15s ease-in-out}.interactive-menu-item-icon[data-v-e42afcb4]{height:1rem;width:1rem}.interactive-menu-item-icon-text[data-v-e42afcb4]{font-size:.75rem;line-height:1rem;font-weight:700}.interactive-menu-item-icon-placeholder[data-v-e42afcb4]{display:inline-block;height:1rem;width:1rem}.interactive-menu-item-name[data-v-e42afcb4]{flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interactive-menu-transition-enter-active[data-v-e42afcb4]{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:.1s;transition-timing-function:cubic-bezier(0,0,.2,1)}.interactive-menu-transition-enter-from[data-v-e42afcb4]{--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));opacity:0}.interactive-menu-transition-enter-to[data-v-e42afcb4]{--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));opacity:1}.interactive-menu-transition-leave-active[data-v-e42afcb4]{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:75ms;transition-timing-function:cubic-bezier(.4,0,1,1)}.interactive-menu-transition-leave-from[data-v-e42afcb4]{--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));opacity:1}.interactive-menu-transition-leave-to[data-v-e42afcb4]{--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));opacity:0}.interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar{width:6px}.interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar-track{background:transparent}.interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar-thumb{background-color:#9ca3af66;border-radius:3px}.dark .interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar-thumb{background-color:#4b556380}.interactive-menu-dropdown[data-v-e42afcb4]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) transparent}.dark .interactive-menu-dropdown[data-v-e42afcb4]{scrollbar-color:rgba(75,85,99,.5) transparent}[aria-disabled=true][data-v-9a7ef5e9]{cursor:not-allowed}.button-base-sm[data-v-9a7ef5e9]{display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-base-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-base-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-primary-sm[data-v-9a7ef5e9]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-primary-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-primary-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-primary-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.button-success-sm[data-v-9a7ef5e9]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-success-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-success-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-success-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity)) }.button-danger-sm[data-v-9a7ef5e9]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-danger-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-danger-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-danger-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-danger-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity)) }.button-secondary-sm[data-v-9a7ef5e9]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-secondary-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-secondary-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-secondary-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-secondary-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)) }.button-secondary-sm[data-v-9a7ef5e9]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary-sm[data-v-9a7ef5e9]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}[data-feather][data-v-9a7ef5e9]{display:inline-block;height:1rem;width:1rem;vertical-align:middle}.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-afc35f9f]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field[data-v-afc35f9f]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field[data-v-afc35f9f]:disabled{opacity:.5}.input-field[data-v-afc35f9f]: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))}.input-field[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.input-field-sm[data-v-afc35f9f]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.75rem;line-height:1rem;--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)}.input-field-sm[data-v-afc35f9f]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field-sm[data-v-afc35f9f]:disabled{opacity:.5}.input-field-sm[data-v-afc35f9f]: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))}.input-field-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.setting-label-inline[data-v-afc35f9f]{margin-bottom:.25rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label-inline[data-v-afc35f9f]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.button-base-sm[data-v-afc35f9f]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-base-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-base-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-afc35f9f]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-primary-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-primary-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-afc35f9f]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-afc35f9f]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-success-sm[data-v-afc35f9f]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-success-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-success-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success-sm[data-v-afc35f9f]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-afc35f9f]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.button-danger-sm[data-v-afc35f9f]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-danger-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-danger-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-danger-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-danger-sm[data-v-afc35f9f]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger-sm[data-v-afc35f9f]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.model-grid-enter-active[data-v-afc35f9f],.model-grid-leave-active[data-v-afc35f9f]{transition:all .5s ease}.model-grid-enter-from[data-v-afc35f9f],.model-grid-leave-to[data-v-afc35f9f]{opacity:0;transform:translateY(15px)}.bg-primary-light[data-v-afc35f9f]{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.dark .bg-primary-dark\/20[data-v-afc35f9f]:is(.dark *){background-color:#3f83f833}.border-primary-dark\/30[data-v-afc35f9f]{border-color:#3f83f84d}[data-feather].w-4[data-v-afc35f9f]{display:inline-block;vertical-align:middle}[data-feather].animate-spin[data-v-afc35f9f]{animation:spin-afc35f9f 1s linear infinite}@keyframes spin-afc35f9f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.input[data-v-8ff7e3ea]{display:block;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(243 244 246 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input[data-v-8ff7e3ea]:focus{border-color:transparent;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[data-v-8ff7e3ea]:disabled{opacity:.5}.input[data-v-8ff7e3ea]: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(243 244 246 / var(--tw-text-opacity))}.btn[data-v-8ff7e3ea]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.btn[data-v-8ff7e3ea]: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-offset-width: 2px}.btn[data-v-8ff7e3ea]:disabled{opacity:.5}.btn[data-v-8ff7e3ea]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.btn-sm[data-v-8ff7e3ea]{padding:.375rem .625rem;font-size:.75rem;line-height:1rem}.scrollbar-thin[data-v-8ff7e3ea]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.scrollbar-thin[data-v-8ff7e3ea]::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin[data-v-8ff7e3ea]::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:4px}.scrollbar-thin[data-v-8ff7e3ea]::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:4px;border:2px solid var(--scrollbar-track)}[data-v-8ff7e3ea]:root{--scrollbar-thumb: #cbd5e1;--scrollbar-track: #f1f5f9}.dark[data-v-8ff7e3ea]:root{--scrollbar-thumb: #4b5563;--scrollbar-track: #1f2937}.scrollbar-thumb-blue-300[data-v-8ff7e3ea]{--scrollbar-thumb: #93c5fd}.scrollbar-track-blue-100[data-v-8ff7e3ea]{--scrollbar-track: #dbeafe}.dark .dark\:scrollbar-thumb-blue-700[data-v-8ff7e3ea]{--scrollbar-thumb: #1d4ed8}.dark .dark\:scrollbar-track-blue-900[data-v-8ff7e3ea]{--scrollbar-track: #1e3a8a}.setting-item[data-v-99271729]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-99271729]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-99271729]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-99271729]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-99271729]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-99271729]{width:25%}}.input-field-sm[data-v-99271729]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field-sm[data-v-99271729]:focus{border-color:var(--color-primary);outline:2px solid transparent;outline-offset:2px;--tw-ring-color: var(--color-primary) }.input-field-sm[data-v-99271729]:disabled{opacity:.5}.input-field-sm[data-v-99271729]: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))}.range-input[data-v-99271729]{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));accent-color:var(--color-primary)}.range-input[data-v-99271729]:disabled{opacity:.5}.range-input[data-v-99271729]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.toggle-item[data-v-99271729]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-99271729]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-99271729]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-99271729]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-99271729]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-99271729]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-99271729]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.icon-button[data-v-9889ee74]{border-radius:9999px;padding:.375rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity));transition-duration:.15s}.icon-button[data-v-9889ee74]: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))}.icon-button[data-v-9889ee74]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.icon-button[data-v-9889ee74]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.icon-button[data-v-9889ee74]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.panels-color[data-v-9889ee74]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.panels-color[data-v-9889ee74]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.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[data-v-0535817b]{font-family:monospace;font-size:14px;line-height:1.5;margin-left:20px}.tree-node[data-v-0535817b]{position:relative}.node-label[data-v-0535817b]{cursor:pointer;padding:2px 0}.node-label[data-v-0535817b]:hover{background-color:#f0f0f0}.toggle-icon[data-v-0535817b]{display:inline-block;width:20px;color:#666}.node-content[data-v-0535817b]{border-left:1px dotted #ccc;margin-left:7px;padding-left:13px}.key[data-v-0535817b]{color:#881391;margin-right:5px}.value[data-v-0535817b]{padding:2px 4px}.value.string[data-v-0535817b]{color:#22863a}.value.number[data-v-0535817b]{color:#005cc5}.value.boolean[data-v-0535817b]{color:#d73a49}.value.null[data-v-0535817b]{color:#6a737d}.bracket[data-v-0535817b]{color:#444;margin-left:5px}.bracket-close[data-v-0535817b]{color:#444;margin-left:7px}.json-viewer[data-v-6fbe5047]{border:1px solid #ddd;border-radius:4px;margin:10px;background:#fff}.viewer-header[data-v-6fbe5047]{padding:8px 12px;background:#f5f5f5;cursor:pointer;border-bottom:1px solid #ddd}.viewer-header[data-v-6fbe5047]:hover{background:#eee}.toggle-icon[data-v-6fbe5047]{display:inline-block;width:20px;color:#666}.title[data-v-6fbe5047]{font-weight:700;color:#333}.viewer-content[data-v-6fbe5047]{padding:10px}.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}@keyframes fadeIn-8fd68363{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn[data-v-8fd68363]{animation:fadeIn-8fd68363 .5s ease-out forwards}.htmljs[data-v-8fd68363]{background:none}.svg-button i[data-feather][data-v-8fd68363]{height:1rem;width:1rem}.animate-spin[data-v-8fd68363]{animation:spin-8fd68363 1s linear infinite}@keyframes spin-8fd68363{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-pulse[data-v-8fd68363]{animation:pulse-8fd68363 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-8fd68363{0%,to{opacity:1}50%{opacity:.5}}.footer-item[data-v-8fd68363]{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.footer-item[data-v-8fd68363]:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.footer-value[data-v-8fd68363]{margin-left:.25rem;font-weight:400;--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.footer-value[data-v-8fd68363]:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}textarea[data-v-8fd68363]{overflow-y:hidden;resize:none;min-height:5em}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar{width:.5rem}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}@keyframes spin-slow-95d5df8b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow[data-v-95d5df8b]{animation:spin-slow-95d5df8b 3s linear infinite}.personalities-hover-area[data-v-95d5df8b]{position:relative;padding-top:10px}.custom-scrollbar[data-v-95d5df8b]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-95d5df8b]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-95d5df8b]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-95d5df8b]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}.list-move[data-v-95d5df8b],.list-enter-active[data-v-95d5df8b],.list-leave-active[data-v-95d5df8b]{transition:all .5s ease}.list-enter-from[data-v-95d5df8b]{transform:translatey(-30px)}.list-leave-to[data-v-95d5df8b]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-95d5df8b]{position:absolute}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .svg-button{padding:.375rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .svg-button svg,[data-v-95d5df8b] .personalities-commands-container[data-size=small] .svg-button i{height:1rem;width:1rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .context-menu{font-size:.75rem;line-height:1rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .context-menu-item{padding:.375rem .75rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .context-menu-item-icon{margin-right:.375rem;height:.875rem;width:.875rem}@keyframes rolling-ball-861ce6fc{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-861ce6fc{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fade-in-up-861ce6fc{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-rolling-ball[data-v-861ce6fc]{animation:rolling-ball-861ce6fc 4s infinite ease-in-out,bounce-861ce6fc 1s infinite ease-in-out}.animate-fade-in-up[data-v-861ce6fc]{animation:fade-in-up-861ce6fc 1.5s ease-out}.floating-button-container[data-v-861ce6fc]{position:fixed;bottom:30px;right:30px;z-index:9999}.floating-button[data-v-861ce6fc]{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-861ce6fc 1.5s infinite,glow-861ce6fc 2s infinite,wobble-861ce6fc 3s infinite;overflow:hidden;z-index:9999;transition:all .3s ease}.floating-button[data-v-861ce6fc]:hover{transform:scale(1.2) rotate(5deg);background-color:#ff4500}.tooltip[data-v-861ce6fc]{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-861ce6fc]{opacity:1;transform:translate(-50%) scale(1)}@keyframes pulse-861ce6fc{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes glow-861ce6fc{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-861ce6fc{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.hidden[data-v-861ce6fc]{display:none}.fish-animation-container[data-v-a6ab94aa]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:2147483640;pointer-events:none;overflow:hidden}.swimming-fish[data-v-a6ab94aa]{position:absolute;top:0;left:0;height:100px;width:auto;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:auto;animation:wobble-a6ab94aa 2.2s ease-in-out infinite;will-change:transform}@keyframes wobble-a6ab94aa{0%{transform-origin:center center;transform:translateY(0) rotate(0)}25%{transform-origin:center center;transform:translateY(-200px) rotate(-3deg)}50%{transform-origin:center center;transform:translateY(50px) rotate(0)}75%{transform-origin:center center;transform:translateY(-200px) rotate(3deg)}to{transform-origin:center center;transform:translateY(0) rotate(0)}}.caught-message[data-v-a6ab94aa]{pointer-events:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:opacity,transform}.popup-container[data-v-425d1bc4]{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-425d1bc4]{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-425d1bc4]:hover{background-color:#2779bd}.iframe-content[data-v-425d1bc4]{width:100%;height:80%;border:none;margin-bottom:16px}.checkbox-container[data-v-425d1bc4]{display:flex;align-items:center;justify-content:center}.styled-checkbox[data-v-425d1bc4]{width:24px;height:24px;accent-color:#3490dc;cursor:pointer}.checkbox-label[data-v-425d1bc4]{margin-left:8px;font-size:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fade-enter-active[data-v-425d1bc4],.fade-leave-active[data-v-425d1bc4]{transition:opacity .5s}.fade-enter[data-v-425d1bc4],.fade-leave-to[data-v-425d1bc4]{opacity:0}.glow-effect[data-v-70cef6eb]{box-shadow:0 0 5px 2px #00ffffb3;animation:glow-70cef6eb 1.5s ease-in-out infinite alternate}@keyframes glow-70cef6eb{0%{box-shadow:0 0 5px 2px #00ffffb3}to{box-shadow:0 0 20px 2px #00ffffb3}}.fixed.inset-0[data-v-6f262cbb]{background-color:#0006}.bg-white[data-v-6f262cbb]{max-width:56rem;box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.changelog-header[data-v-6f262cbb]{display:flex;align-items:center;justify-content:space-between;border-bottom-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));padding:1rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.header-title[data-v-6f262cbb]{font-size:1.25rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.close-btn[data-v-6f262cbb]{border-radius:9999px;padding:.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.close-btn[data-v-6f262cbb]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb]{flex:1 1 0%;overflow-y:auto;padding:1.5rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.changelog-content[data-v-6f262cbb] h1,.changelog-content[data-v-6f262cbb] h2,.changelog-content[data-v-6f262cbb] h3,.changelog-content[data-v-6f262cbb] h4,.changelog-content[data-v-6f262cbb] h5,.changelog-content[data-v-6f262cbb] h6{margin-bottom:.75rem;margin-top:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb] h1:first-child,.changelog-content[data-v-6f262cbb] h2:first-child,.changelog-content[data-v-6f262cbb] h3:first-child,.changelog-content[data-v-6f262cbb] h4:first-child,.changelog-content[data-v-6f262cbb] h5:first-child,.changelog-content[data-v-6f262cbb] h6:first-child{margin-top:0}.changelog-content[data-v-6f262cbb] h1{margin-bottom:1rem;border-bottom-width:1px;padding-bottom:.5rem;font-size:1.5rem;line-height:2rem}.changelog-content[data-v-6f262cbb] h2{margin-bottom:.75rem;border-bottom-width:1px;padding-bottom:.25rem;font-size:1.25rem;line-height:1.75rem}.changelog-content[data-v-6f262cbb] h3{font-size:1.125rem;line-height:1.75rem}.changelog-content[data-v-6f262cbb] h4{font-size:1rem;line-height:1.5rem}.changelog-content[data-v-6f262cbb] p{margin-bottom:1rem}.changelog-content[data-v-6f262cbb] ul,.changelog-content[data-v-6f262cbb] ol{margin-bottom:1rem;padding-left:1.5rem}.changelog-content[data-v-6f262cbb] li{margin-bottom:.25rem}.changelog-content[data-v-6f262cbb] ul{list-style-type:disc}.changelog-content[data-v-6f262cbb] ol{list-style-type:decimal}.changelog-content[data-v-6f262cbb] code{border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.125rem .25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity));font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.changelog-content[data-v-6f262cbb] pre{margin-bottom:1rem;overflow-x:auto;border-radius:.25rem;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));padding:1rem;font-size:.875rem;line-height:1.25rem;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.changelog-content[data-v-6f262cbb] pre code{border-style:none;background-color:transparent;padding:0;font-size:.875rem;line-height:1.25rem}.changelog-content[data-v-6f262cbb] 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));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-style:italic;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb] a{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb] a:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));text-decoration-line:underline}.changelog-footer[data-v-6f262cbb]{display:flex;justify-content:flex-end;border-top-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));padding:1rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.action-btn[data-v-6f262cbb]{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.action-btn[data-v-6f262cbb]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.action-btn[data-v-6f262cbb]: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}.action-btn[data-v-6f262cbb]:active{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.personalities-container[data-v-9b0751f8]{position:relative}.skills-lib-icon[data-v-9b0751f8]{position:absolute;top:-2px;right:-2px;z-index:10;font-size:5px;width:2px;height:2px}.skills-lib-icon i[data-v-9b0751f8]{width:2px;height:2px}@keyframes giggle-9b0751f8{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-9b0751f8]{animation:giggle-9b0751f8 1.5s infinite ease-in-out}.custom-scrollbar[data-v-9b0751f8]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-9b0751f8]::-webkit-scrollbar{width:8px}.custom-scrollbar[data-v-9b0751f8]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-9b0751f8]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}@keyframes custom-pulse-9b0751f8{0%,to{box-shadow:0 0 #3b82f680}50%{box-shadow:0 0 0 15px #3b82f600}}.animate-pulse[data-v-9b0751f8]{animation:custom-pulse-9b0751f8 2s infinite}.slide-right-enter-active[data-v-9b0751f8],.slide-right-leave-active[data-v-9b0751f8]{transition:transform .3s ease}.slide-right-enter[data-v-9b0751f8],.slide-right-leave-to[data-v-9b0751f8]{transform:translate(-100%)}.slide-left-enter-active[data-v-9b0751f8],.slide-left-leave-active[data-v-9b0751f8]{transition:transform .3s ease}.slide-left-enter[data-v-9b0751f8],.slide-left-leave-to[data-v-9b0751f8]{transform:translate(100%)}.fade-and-fly-enter-active[data-v-9b0751f8]{animation:fade-and-fly-enter-9b0751f8 .5s ease}.fade-and-fly-leave-active[data-v-9b0751f8]{animation:fade-and-fly-leave-9b0751f8 .5s ease}@keyframes fade-and-fly-enter-9b0751f8{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-and-fly-leave-9b0751f8{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(1.2)}}.list-move[data-v-9b0751f8],.list-enter-active[data-v-9b0751f8],.list-leave-active[data-v-9b0751f8]{transition:all .5s ease}.list-enter-from[data-v-9b0751f8]{transform:translatey(-30px)}.list-leave-to[data-v-9b0751f8]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-9b0751f8]{position:absolute}@keyframes float-9b0751f8{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float[data-v-9b0751f8]{animation:float-9b0751f8 linear infinite}@keyframes star-move-9b0751f8{0%{transform:translate(0) rotate(0)}50%{transform:translate(20px,20px) rotate(180deg)}to{transform:translate(0) rotate(360deg)}}.animate-star[data-v-9b0751f8]{animation:star-move-9b0751f8 linear infinite}@keyframes fall-9b0751f8{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(calc(100vh + 20px)) rotate(360deg);opacity:0}}.animate-fall[data-v-9b0751f8]{animation:fall-9b0751f8 linear infinite}@keyframes glow-9b0751f8{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-9b0751f8]{animation:glow-9b0751f8 2s ease-in-out infinite}@media (prefers-color-scheme: dark){@keyframes glow-9b0751f8{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-9b0751f8{0%{transform:translate(-50%) rotate(0)}to{transform:translate(50%) rotate(360deg)}}.animate-roll[data-v-9b0751f8]{animation:roll-9b0751f8 4s linear infinite}.toolbar[data-v-9b0751f8]{position:relative;width:100%}.toolbar-container[data-v-9b0751f8]{display:flex;height:2.5rem;align-items:center}.toolbar-button[data-v-9b0751f8]{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-9b0751f8]:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.menu-container[data-v-9b0751f8]{position:relative}.expandable-menu[data-v-9b0751f8]{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-9b0751f8],.menu-visible[data-v-9b0751f8]{display:flex}.menu-item[data-v-9b0751f8]{background:none;border:none;cursor:pointer;padding:8px;color:#333;transition:background-color .3s}.menu-item[data-v-9b0751f8]:hover{background-color:#f0f0f0}.dot[data-v-9b0751f8]{width:10px;height:10px;border-radius:50%}.dot-green[data-v-9b0751f8]{background-color:green}.dot-red[data-v-9b0751f8]{background-color:red}.animate-pulse[data-v-9b0751f8]{animation:pulse-9b0751f8 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-9b0751f8{0%,to{opacity:1}50%{opacity:.7}}.logo-container[data-v-9b0751f8]{position:relative;width:48px;height:48px}.logo-image[data-v-9b0751f8]{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}@keyframes bounce-9b0751f8{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-9b0751f8]{animation:bounce-9b0751f8 1s infinite}@keyframes roll-and-bounce-9b0751f8{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-9b0751f8{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-a7f0fe49]{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%!important;margin-right:auto!important;margin-left:auto!important;padding-right:2rem!important;padding-left:2rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.context-menu{position:absolute;z-index:1000;min-width:150px;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity));background-color:rgb(1 71 55 / var(--tw-bg-opacity));--tw-bg-opacity: .9;padding-top:.5rem;padding-bottom:.5rem;font-family:JetBrains Mono,Consolas,monospace;--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);--tw-shadow-color: rgb(14 159 110 / .5);--tw-shadow: var(--tw-shadow-colored)}.context-menu:is(.dark *){--tw-border-opacity: 1;border-color:rgb(49 196 141 / var(--tw-border-opacity));background-color:rgb(5 46 22 / var(--tw-bg-opacity));--tw-bg-opacity: .9;--tw-shadow-color: rgb(49 196 141 / .5);--tw-shadow: var(--tw-shadow-colored)}.context-menu:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-10;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: rgb(14 159 110 / .1) var(--tw-gradient-from-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(14 159 110 / .05) var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: transparent var(--tw-gradient-to-position);background-size:100% 1000px;opacity:.3;--tw-content: "";content:var(--tw-content)}.context-menu-item{cursor:pointer;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity));--tw-shadow-color: rgb(14 159 110 / .7);--tw-shadow: var(--tw-shadow-colored);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.context-menu-item: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));background-color:#0e9f6e33}.context-menu-item:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.context-menu-item:hover:is(.dark *){background-color:#31c48d33}.context-menu-item-icon{margin-right:.5rem;--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.context-menu-item-icon:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.context-menu-item:after{position:absolute;left:0;bottom:0;height:1px;width:100%;transform-origin:center;--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));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0E9F6E var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: transparent var(--tw-gradient-to-position);transition-property:transform;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);--tw-content: "";content:var(--tw-content)}.context-menu-item:is(.dark *):after{--tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #31C48D var(--tw-gradient-via-position), var(--tw-gradient-to)}.context-menu-item:hover:after{--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))}.setting-item{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item{flex-direction:row;align-items:center;gap:1rem}}.setting-label{flex-shrink:0;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))}.setting-label:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label{width:12rem}}.toggle-item{margin-top:.5rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.5rem;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(195 221 253 / var(--tw-border-opacity));padding-bottom:.5rem;padding-top:.75rem}.toggle-item:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 86 219 / var(--tw-border-opacity))}@media (min-width: 640px){.toggle-item{flex-direction:row;align-items:center}}.toggle-label{margin-bottom:0!important;margin-right:1rem;flex-grow:1;cursor:pointer;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))}.toggle-label:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.toggle-description{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.toggle-description:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}input[type=range]::-webkit-slider-thumb{height:1.25rem;width:1.25rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / 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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}input[type=range]:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}input[type=range]::-webkit-slider-thumb{margin-top:-6px}input[type=range]::-moz-range-thumb{height:1.25rem;width:1.25rem;cursor:pointer;border-radius:9999px;border-style:none;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity));-moz-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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}input[type=range]:is(.dark *)::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}input[type=range]::-webkit-slider-runnable-track{height:.5rem;width:100%;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}input[type=range]:is(.dark *)::-webkit-slider-runnable-track{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}input[type=range]::-moz-range-track{height:.5rem;width:100%;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}input[type=range]:is(.dark *)::-moz-range-track{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-success{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));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-success:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.btn-success: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(132 225 188 / var(--tw-ring-opacity))}.btn-success:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 159 110 / var(--tw-bg-opacity))}.btn-success:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.btn-success:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity))}.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.25rem}.input-sm{font-size:.875rem;line-height:1.25rem;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-sm: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-sm: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-sm:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.range-input{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.range-input:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.range-input::-webkit-slider-thumb{height:1.25rem;width:1.25rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / 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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.range-input:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.range-input::-webkit-slider-thumb{margin-top:-6px}.range-input::-moz-range-thumb{height:1.25rem;width:1.25rem;cursor:pointer;border-radius:9999px;border-style:none;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity));-moz-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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.range-input:is(.dark *)::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.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{top:-.25rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-1\.5{bottom:.375rem}.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-0\.5{left:.125rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-20{left:5rem}.left-3{left:.75rem}.left-4{left:1rem}.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-0\.5{top:.125rem}.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}.z-\[1001\]{z-index:1001}.z-\[100\]{z-index:100}.z-\[51\]{z-index:51}.z-\[52\]{z-index:52}.z-\[60\]{z-index:60}.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-px{margin:-1px}.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-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.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-0{margin-bottom:0!important}.\!mb-1{margin-bottom:.25rem!important}.\!mt-0{margin-top:0!important}.-mb-px{margin-bottom:-1px}.-mr-1{margin-right:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-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-72{margin-left:18rem}.ml-\[calc\(0\.75rem\+0\.5rem\)\]{margin-left:1.25rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.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-40{height:10rem}.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-\[150px\]{height:150px}.h-\[200px\]{height:200px}.h-\[400px\]{height:400px}.h-\[70vh\]{height:70vh}.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-28{max-height:7rem}.max-h-32{max-height:8rem}.max-h-48{max-height:12rem}.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-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[100px\]{min-height:100px}.min-h-\[150px\]{min-height:150px}.min-h-\[2\.75rem\]{min-height:2.75rem}.min-h-\[200px\]{min-height:200px}.min-h-\[44px\]{min-height:44px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[calc\(100vh-5rem\)\]{min-height:calc(100vh - 5rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.\!w-auto{width:auto!important}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.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-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-44{width:11rem}.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-72{width:18rem}.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-\[95\%\]{width:95%}.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-\[100px\]{min-width:100px}.min-w-\[150px\]{min-width:150px}.min-w-\[24rem\]{min-width:24rem}.min-w-\[300px\]{min-width:300px}.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-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.\!flex-none{flex:none!important}.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,.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-2{--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))}.-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-0{--tw-translate-y: 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-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-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))}.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))}.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}.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))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.\!flex-col{flex-direction:column!important}.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!important}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.\!items-center{align-items:center!important}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.\!justify-start{justify-content:flex-start!important}.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-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.gap-y-5{row-gap:1.25rem}.gap-y-6{row-gap:1.5rem}.-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-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-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.375rem * var(--tw-space-x-reverse));margin-left:calc(.375rem * 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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.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-blue-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(195 221 253 / var(--tw-divide-opacity))}.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-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.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-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.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-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.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-\[3px\]{border-width:3px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.\!border-t-0{border-top-width:0px!important}.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-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-current{border-color:currentColor}.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-200\/30{border-color:#e5e7eb4d}.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-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 140 / 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-300{--tw-border-opacity: 1;border-color:rgb(248 180 180 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(249 128 128 / 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-l-red-500{--tw-border-opacity: 1;border-left-color:rgb(240 82 82 / 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\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.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-100\/50{background-color:#e1effe80}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.bg-blue-200\/70{background-color:#c3ddfdb3}.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-50\/50{background-color:#ebf5ff80}.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-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-50{--tw-bg-opacity: 1;background-color:rgb(246 245 255 / 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\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.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-50{--tw-bg-opacity: 1;background-color:rgb(253 253 234 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(194 120 3 / var(--tw-bg-opacity))}.bg-opacity-5{--tw-bg-opacity: .05}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-60{--tw-bg-opacity: .6}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-90{--tw-bg-opacity: .9}.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-blue-100{--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)}.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-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)}.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)}.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-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-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)}.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-500{fill:#3f83f8}.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-primary{fill:var(--color-primary)}.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}.stroke-current{stroke:currentColor}.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-1{padding:.25rem!important}.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}.\!py-0{padding-top:0!important;padding-bottom:0!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.\!pt-0{padding-top:0!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.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}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.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-extrabold{font-weight:800}.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-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.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-blue-100{--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.text-blue-200{--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(118 169 250 / 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-blue-900{--tw-text-opacity: 1;color:rgb(35 56 118 / 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-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-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))}.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-blue-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(118 169 250 / var(--tw-placeholder-opacity))}.placeholder-blue-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(118 169 250 / var(--tw-placeholder-opacity))}.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-600{accent-color:#1C64F2}.accent-primary{accent-color:var(--color-primary)}.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-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.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-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-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-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.ring-blue-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.ring-blue-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / 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-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / 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-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.ring-yellow-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(194 120 3 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.ring-opacity-50{--tw-ring-opacity: .5}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-gray-800{--tw-ring-offset-color: #1F2937}.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)}.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-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.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-blue-900{--scrollbar-track: #233876 !important}.scrollbar-track-gray-200{--scrollbar-track: #E5E7EB !important}.scrollbar-track-transparent{--scrollbar-track: transparent !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-300{--scrollbar-thumb: #A4CAFE !important}.scrollbar-thumb-blue-700{--scrollbar-thumb: #1A56DB !important}.scrollbar-thumb-gray-300{--scrollbar-thumb: #D1D5DB !important}.scrollbar-thumb-gray-400{--scrollbar-thumb: #9CA3AF !important}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.bg-status-unknown{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-status-unknown:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}:root{--lollms-title: L🐠llMS;--falling-object: "";--activate-dropping-animation: 0;--lollms-welcome-short-message: Welcome to LoLLMS;--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.}.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}}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))}.chatbox-color{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.chatbox-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / 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-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}.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{border-radius:.75rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));padding:1.5rem;--tw-text-opacity: 1;color:rgb(30 66 159 / 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);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.app-card: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)}.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}.animated-progressbar-bg{position:relative;height:1.25rem;width:100%;overflow:hidden;border-radius:9999px;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: #DCD7FE var(--tw-gradient-to-position);--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)}.animated-progressbar-bg: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: #5521B5 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: #9061F9 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: #1C64F2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(28 100 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #7E3AF2 var(--tw-gradient-to-position)}.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(225 239 254 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(26 86 219 / 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(202 191 253 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(164 202 254 / 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))}.user-settings-panel>: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))}.user-settings-panel{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));padding:1rem;--tw-text-opacity: 1;color:rgb(35 56 118 / 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)}.user-settings-panel:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}@media (min-width: 768px){.user-settings-panel{padding:1.5rem}}.folder-item-base{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;border-radius:.5rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.folder-item-base: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)}.folder-item-base{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.folder-item-base:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.folder-item-base:hover{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.folder-item-base:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.folder-item-base{border-width:1px}.folder-item-icon{margin-bottom:.5rem;height:2.5rem;width:2.5rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.group:hover .folder-item-icon{--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))}.folder-item-label{margin-top:.5rem;text-align:center;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.folder-item-label:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.folder-item-personalities{--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.folder-item-personalities:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.folder-item-icon-personalities{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.folder-item-icon-personalities:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.folder-item-functions{--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity))}.folder-item-functions:is(.dark *){--tw-border-opacity: 1;border-color:rgb(49 196 141 / var(--tw-border-opacity))}.folder-item-icon-functions{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.folder-item-icon-functions:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.folder-item-configs{--tw-border-opacity: 1;border-color:rgb(194 120 3 / var(--tw-border-opacity))}.folder-item-configs:is(.dark *){--tw-border-opacity: 1;border-color:rgb(227 160 8 / var(--tw-border-opacity))}.folder-item-icon-configs{--tw-text-opacity: 1;color:rgb(194 120 3 / var(--tw-text-opacity))}.folder-item-icon-configs:is(.dark *){--tw-text-opacity: 1;color:rgb(227 160 8 / var(--tw-text-opacity))}.folder-item-outputs{--tw-border-opacity: 1;border-color:rgb(144 97 249 / var(--tw-border-opacity))}.folder-item-outputs:is(.dark *){--tw-border-opacity: 1;border-color:rgb(172 148 250 / var(--tw-border-opacity))}.folder-item-icon-outputs{--tw-text-opacity: 1;color:rgb(144 97 249 / var(--tw-text-opacity))}.folder-item-icon-outputs:is(.dark *){--tw-text-opacity: 1;color:rgb(172 148 250 / var(--tw-text-opacity))}.folder-item-discussions{--tw-border-opacity: 1;border-color:rgb(240 82 82 / var(--tw-border-opacity))}.folder-item-discussions:is(.dark *){--tw-border-opacity: 1;border-color:rgb(249 128 128 / var(--tw-border-opacity))}.folder-item-icon-discussions{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.folder-item-icon-discussions:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}@keyframes matrix-rain{0%{background-position:0 0}to{background-position:0 1000px}}@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}}}.placeholder\:text-blue-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.placeholder\:text-blue-400::placeholder{--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.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}.group:hover .group-hover\:visible{visibility:visible}.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))}@keyframes pulse{50%{opacity:.5}}.group:hover .group-hover\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.group:hover .group-hover\:border-blue-500{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-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\: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-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)}.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\:-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\: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-\[1\.03\]:hover{--tw-scale-x: 1.03;--tw-scale-y: 1.03;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) 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-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.hover\:border-blue-400:hover{--tw-border-opacity: 1;border-color:rgb(118 169 250 / 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\:bg-bg-light-tone:hover{background-color:var(--color-bg-light-tone)}.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-200\/70:hover{background-color:#c3ddfdb3}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.hover\:bg-blue-50\/50:hover{background-color:#ebf5ff80}.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-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / 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-100:hover{--tw-bg-opacity: 1;background-color:rgb(222 247 236 / 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-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-transparent:hover{background-color:transparent}.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-opacity-80:hover{--tw-bg-opacity: .8}.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\: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-lime-200:hover{--tw-gradient-to: #d9f99d var(--tw-gradient-to-position)}.hover\:font-bold:hover{font-weight:700}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.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-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:rgb(5 122 85 / var(--tw-text-opacity))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(4 108 78 / 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-500:hover{--tw-text-opacity: 1;color:rgb(194 120 3 / 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\:opacity-80:hover{opacity:.8}.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-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\:ring-blue-500:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.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-primary:focus{border-color:var(--color-primary)}.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-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-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-1:focus{--tw-ring-offset-width: 1px}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-blue-100:focus{--tw-ring-offset-color: #E1EFFE}.focus\:hover\:text-center:hover:focus{text-align:center}.hover\:focus\:text-center:focus:hover{text-align:center}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.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}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-gray-600:hover:disabled{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.dark\:inline:is(.dark *){display:inline}.dark\:hidden:is(.dark *){display:none}.dark\:divide-blue-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 86 219 / var(--tw-divide-opacity))}.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-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.dark\:border-blue-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.dark\:border-blue-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / 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-orange-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(208 56 1 / 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-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(224 36 36 / var(--tw-border-opacity))}.dark\:border-red-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(200 30 30 / 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-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(118 169 250 / 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-700\/50:is(.dark *){background-color:#1a56db80}.dark\:bg-blue-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.dark\:bg-blue-800\/50:is(.dark *){background-color:#1e429f80}.dark\:bg-blue-800\/60:is(.dark *){background-color:#1e429f99}.dark\:bg-blue-800\/70:is(.dark *){background-color:#1e429fb3}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.dark\:bg-blue-900\/30:is(.dark *){background-color:#2338764d}.dark\:bg-blue-900\/50:is(.dark *){background-color:#23387680}.dark\:bg-blue-900\/70:is(.dark *){background-color:#233876b3}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.dark\:bg-gray-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(156 163 175 / 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-800\/70:is(.dark *){background-color:#1f2937b3}.dark\:bg-gray-800\/80:is(.dark *){background-color:#1f2937cc}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.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-orange-900\/30:is(.dark *){background-color:#771d1d4d}.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-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(200 30 30 / 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:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(119 29 29 / var(--tw-bg-opacity))}.dark\:bg-red-900\/20:is(.dark *){background-color:#771d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#771d1d4d}.dark\:bg-yellow-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.dark\:bg-opacity-50:is(.dark *){--tw-bg-opacity: .5}.dark\:bg-opacity-70:is(.dark *){--tw-bg-opacity: .7}.dark\:bg-opacity-80:is(.dark *){--tw-bg-opacity: .8}.dark\:from-blue-900:is(.dark *){--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)}.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\:to-purple-400:is(.dark *){--tw-gradient-to: #AC94FA var(--tw-gradient-to-position)}.dark\:fill-blue-300:is(.dark *){fill:#a4cafe}.dark\:fill-blue-400:is(.dark *){fill:#76a9fa}.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-100:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / 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-300:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / 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-600:is(.dark *){--tw-text-opacity: 1;color:rgb(28 100 242 / 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-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-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(255 138 76 / 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-300:is(.dark *){--tw-text-opacity: 1;color:rgb(248 180 180 / 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-500\/90:is(.dark *){color:#f05252e6}.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-400:is(.dark *){--tw-text-opacity: 1;color:rgb(227 160 8 / 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-blue-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(63 131 248 / var(--tw-placeholder-opacity))}.dark\:placeholder-blue-500:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(63 131 248 / var(--tw-placeholder-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-blue-600:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.dark\:ring-gray-500:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark\:ring-gray-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / 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-blue-900:is(.dark *){--tw-ring-offset-color: #233876}.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-blue-900:is(.dark *){--scrollbar-track: #233876 !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-blue-700:is(.dark *){--scrollbar-thumb: #1A56DB !important}.dark\:scrollbar-thumb-gray-500:is(.dark *){--scrollbar-thumb: #6B7280 !important}.dark\:scrollbar-thumb-gray-600:is(.dark *){--scrollbar-thumb: #4B5563 !important}.dark\:placeholder\:text-blue-500:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.dark\:placeholder\:text-blue-500:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.group:hover .dark\:group-hover\:border-blue-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.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-400:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.dark\:hover\:border-blue-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-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\: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-600\/50:hover:is(.dark *){background-color:#1c64f280}.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-700\/50:hover:is(.dark *){background-color:#1a56db80}.dark\:hover\:bg-blue-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / 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-blue-900\/20:hover:is(.dark *){background-color:#23387633}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#2338764d}.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-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.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-green-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(1 71 55 / 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-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(155 28 28 / 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-red-900\/50:hover:is(.dark *){background-color:#771d1d80}.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)}.dark\:hover\:bg-opacity-80:hover:is(.dark *){--tw-bg-opacity: .8}.dark\:hover\:text-blue-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.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-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-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(188 240 218 / var(--tw-text-opacity))}.dark\:hover\:text-red-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(251 213 213 / 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-red-500:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(240 82 82 / 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\:text-yellow-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(227 160 8 / var(--tw-text-opacity))}.dark\:hover\:ring-blue-400:hover:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.dark\:hover\:scrollbar-thumb-primary:is(.dark *){--scrollbar-thumb-hover: var(--color-primary) !important}.dark\:focus\:border-blue-400:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.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-400:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-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-600:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(224 36 36 / 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-blue-800:focus:is(.dark *){--tw-ring-offset-color: #1E429F}.dark\:focus\:ring-offset-gray-700:focus:is(.dark *){--tw-ring-offset-color: #374151}.dark\:focus\:ring-offset-gray-800:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.dark\:focus\:ring-offset-gray-900:focus:is(.dark *){--tw-ring-offset-color: #111827}.dark\:focus-visible\:ring-offset-gray-700\/50:focus-visible:is(.dark *){--tw-ring-offset-color: rgb(55 65 81 / .5)}.dark\:focus-visible\:ring-offset-gray-800:focus-visible:is(.dark *){--tw-ring-offset-color: #1F2937}@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\/3{width:33.333333%!important}.sm\:w-1\/4{width:25%}.sm\:w-10{width:2.5rem}.sm\:w-36{width:9rem}.sm\:w-6{width:1.5rem}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:.5rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:p-10{padding:2.5rem}.sm\:p-6{padding:1.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-sm{font-size:.875rem;line-height:1.25rem}.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\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:ml-80{margin-left:20rem}.md\:mr-6{margin-right:1.5rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:\!w-1\/3{width:33.333333%!important}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-32{width:8rem}.md\:w-48{width:12rem}.md\:w-80{width:20rem}.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-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[minmax\(150px\,25\%\)_1fr\]{grid-template-columns:minmax(150px,25%) 1fr}.md\:\!flex-row{flex-direction:row!important}.md\:flex-row{flex-direction:row}.md\:\!items-center{align-items:center!important}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:1rem}.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-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\: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\:p-8{padding:2rem}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.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\:w-1\/4{width:25%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.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-Bh7FEesB.css b/web/dist/assets/index-Bh7FEesB.css deleted file mode 100644 index d33c3f8c..00000000 --- a/web/dist/assets/index-Bh7FEesB.css +++ /dev/null @@ -1,26 +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";.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)}.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}/*! - 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}.code-block-button[data-v-6c0ead0d]{border-radius:.25rem;padding:.25rem;--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-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.code-block-button[data-v-6c0ead0d]:hover{background-color:var(--color-primary);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.code-block-button[data-v-6c0ead0d]: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-color: var(--color-primary);--tw-ring-offset-width: 1px}.code-block-button[data-v-6c0ead0d]:disabled{cursor:not-allowed;opacity:.5}.code-block-button[data-v-6c0ead0d]:hover:disabled{background-color:transparent;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.code-block-button[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.code-block-button[data-v-6c0ead0d]:hover:is(.dark *){background-color:var(--color-primary)}.code-block-button[data-v-6c0ead0d]:hover:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.feather-small[data-v-6c0ead0d]{display:inline-block;height:.75rem;width:.75rem;vertical-align:middle}.hljs[data-v-6c0ead0d]{background:none!important;padding:0!important;margin:0!important}.code-block-container[data-v-6c0ead0d]{position:relative}.code-content-flex[data-v-6c0ead0d]{align-items:stretch}.line-numbers[data-v-6c0ead0d]{flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow-y:hidden;white-space:pre;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.5rem;text-align:right;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.line-numbers[data-v-6c0ead0d]: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))}.line-numbers[data-v-6c0ead0d]{min-height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-content[data-v-6c0ead0d]{flex-grow:1;overflow-x:auto;overflow-y:hidden;white-space:pre-wrap;overflow-wrap:break-word;padding:.5rem}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.code-content[data-v-6c0ead0d]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.code-content[data-v-6c0ead0d]::-webkit-scrollbar{display:block;width:8px;height:8px}.code-content[data-v-6c0ead0d]{--scrollbar-track: transparent;--scrollbar-thumb: #9CA3AF}.code-content[data-v-6c0ead0d]:focus{outline:2px solid transparent;outline-offset:2px}.code-content[data-v-6c0ead0d]:is(.dark *){--scrollbar-thumb: #6B7280}.code-content[data-v-6c0ead0d]{min-height:1.5em;caret-color:currentColor;color:#1f2937;background-color:#fff}.dark .code-content[data-v-6c0ead0d]{color:#e5e7eb;background-color:#1f2937}.code-content[data-v-6c0ead0d]::-webkit-scrollbar{height:8px}.code-content[data-v-6c0ead0d]::-webkit-scrollbar-thumb{border-radius:4px}.animate-spin[data-v-6c0ead0d]{animation:spin-6c0ead0d 1s linear infinite}@keyframes spin-6c0ead0d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.execute-button[data-v-6c0ead0d]{display:inline-flex;align-items:center;justify-content:center}.dark .dark\:hidden[data-v-6c0ead0d]{display:none}.dark .dark\:inline[data-v-6c0ead0d]{display:inline}.hidden[data-v-6c0ead0d]{display:none}.code-block-button i[data-feather][data-v-6c0ead0d],.code-block-button img[data-v-6c0ead0d]{vertical-align:middle}.parameter-item[data-v-6c0ead0d]{margin-bottom:.5rem}.parameter-item>div[data-v-6c0ead0d]:last-child{margin-left:.5rem}.execution-output-content a[data-v-6c0ead0d]{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.execution-output-content a[data-v-6c0ead0d]:hover{text-decoration-line:underline}.execution-output-content a[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.execution-output-content h1[data-v-6c0ead0d]{margin-top:.5rem;margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}.execution-output-content h2[data-v-6c0ead0d]{margin-top:.375rem;margin-bottom:.375rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.execution-output-content h3[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;font-size:1rem;line-height:1.5rem;font-weight:600}.execution-output-content h4[data-v-6c0ead0d],.execution-output-content h5[data-v-6c0ead0d],.execution-output-content h6[data-v-6c0ead0d]{margin-top:.125rem;margin-bottom:.125rem;font-weight:600}.execution-output-content p[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem}.execution-output-content ul[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;margin-left:1rem;list-style-position:inside;list-style-type:disc}.execution-output-content ol[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;margin-left:1rem;list-style-position:inside;list-style-type:decimal}.execution-output-content li[data-v-6c0ead0d]{margin-top:.125rem;margin-bottom:.125rem}.execution-output-content code[data-v-6c0ead0d]:not(pre>code){border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.125rem .25rem;font-family:JetBrains Mono,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.execution-output-content code[data-v-6c0ead0d]:not(pre>code):is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.execution-output-content pre[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;overflow-x:auto;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.5rem;font-family:JetBrains Mono,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.execution-output-content pre[data-v-6c0ead0d]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.execution-output-content pre>code[data-v-6c0ead0d]{background-color:transparent;padding:0;font-size:.875rem;line-height:1.25rem}.execution-output-content blockquote[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;border-left-width:4px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding-left:.5rem;font-style:italic;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.execution-output-content blockquote[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.execution-output-content table[data-v-6c0ead0d]{margin-top:.5rem;margin-bottom:.5rem;width:100%;border-collapse:collapse;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));font-size:.875rem;line-height:1.25rem}.execution-output-content table[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.execution-output-content th[data-v-6c0ead0d],.execution-output-content td[data-v-6c0ead0d]{border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding:.375rem;text-align:left}.execution-output-content th[data-v-6c0ead0d]:is(.dark *),.execution-output-content td[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.execution-output-content th[data-v-6c0ead0d]{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));font-weight:600}.execution-output-content th[data-v-6c0ead0d]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.execution-output-content img[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;height:auto;max-width:100%;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.execution-output-content img[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.execution-output-content svg[data-v-6c0ead0d]{margin-top:.25rem;margin-bottom:.25rem;height:auto;max-width:100%}.execution-output-content hr[data-v-6c0ead0d]{margin-top:.5rem;margin-bottom:.5rem;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.execution-output-content hr[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.execution-output-content.hljs[data-v-6c0ead0d]{color:#1f2937;background-color:#fff}.dark .execution-output-content.hljs[data-v-6c0ead0d]{color:#e5e7eb;background-color:#1f2937}.search-replace-panel[data-v-6c0ead0d]{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.search-replace-panel[data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.search-replace-panel input[type=text][data-v-6c0ead0d]{border-radius:.25rem;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:.25rem .5rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.search-replace-panel input[type=text][data-v-6c0ead0d]:focus{border-color:var(--color-primary);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(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);--tw-ring-color: var(--color-primary)}.search-replace-panel input[type=text][data-v-6c0ead0d]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.search-replace-panel input[type=text][data-v-6c0ead0d]{min-width:80px}.search-replace-panel .search-status[data-v-6c0ead0d]{white-space:nowrap;padding-left:.25rem;padding-right:.25rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.search-replace-panel .search-status[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.search-replace-panel .search-status[data-v-6c0ead0d]{min-width:50px;text-align:center}.search-replace-panel .search-button[data-v-6c0ead0d]{padding:.125rem .25rem;font-size:.75rem;line-height:1rem}.search-replace-panel .search-button i[data-feather][data-v-6c0ead0d]{height:.875rem;width:.875rem}.search-replace-panel .code-block-button[data-v-6c0ead0d]{padding:.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:hover{background-color:var(--color-primary);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:hover:is(.dark *){background-color:var(--color-primary)}.search-replace-panel .code-block-button[data-v-6c0ead0d]:disabled{cursor:not-allowed;opacity:.5}.search-replace-panel .code-block-button[data-v-6c0ead0d]:disabled:hover{background-color:transparent;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.search-replace-panel .code-block-button[data-v-6c0ead0d]:disabled:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.code-content[data-v-6c0ead0d]::-moz-selection{background-color:#c3ddfd;color:#000}.code-content[data-v-6c0ead0d]::selection{background-color:#c3ddfd;color:#000}.dark .code-content[data-v-6c0ead0d]::-moz-selection{background-color:#1e429f;color:#fff}.dark .code-content[data-v-6c0ead0d]::selection{background-color:#1e429f;color:#fff}.dark .code-content.hljs[data-v-6c0ead0d],.dark .execution-output-content.hljs[data-v-6c0ead0d]{color:#a9b1d6}.dark .hljs-meta[data-v-6c0ead0d]{color:#ff9e64}.dark .hljs-comment[data-v-6c0ead0d]{color:#565f89;font-style:italic}.dark .hljs-tag[data-v-6c0ead0d],.dark .hljs-tag .hljs-name[data-v-6c0ead0d],.dark .hljs-tag .hljs-attr[data-v-6c0ead0d]{color:#f7768e}.dark .hljs-keyword[data-v-6c0ead0d],.dark .hljs-selector-tag[data-v-6c0ead0d],.dark .hljs-literal[data-v-6c0ead0d],.dark .hljs-name[data-v-6c0ead0d]{color:#bb9af7}.dark .hljs-deletion[data-v-6c0ead0d],.dark .hljs-number[data-v-6c0ead0d],.dark .hljs-attribute[data-v-6c0ead0d],.dark .hljs-variable[data-v-6c0ead0d],.dark .hljs-template-variable[data-v-6c0ead0d],.dark .hljs-symbol[data-v-6c0ead0d]{color:#ff9e64}.dark .hljs-section[data-v-6c0ead0d],.dark .hljs-title[data-v-6c0ead0d],.dark .hljs-type[data-v-6c0ead0d]{color:#7aa2f7}.dark .hljs-string[data-v-6c0ead0d],.dark .hljs-subst[data-v-6c0ead0d],.dark .hljs-regexp[data-v-6c0ead0d],.dark .hljs-link[data-v-6c0ead0d],.dark .hljs-addition[data-v-6c0ead0d],.dark .hljs-selector-id[data-v-6c0ead0d],.dark .hljs-selector-class[data-v-6c0ead0d]{color:#9ece6a}.dark .hljs-built_in[data-v-6c0ead0d],.dark .hljs-bullet[data-v-6c0ead0d],.dark .hljs-code[data-v-6c0ead0d],.dark .hljs-formula[data-v-6c0ead0d]{color:#7dcfff}.dark .hljs-emphasis[data-v-6c0ead0d]{font-style:italic}.dark .hljs-strong[data-v-6c0ead0d]{font-weight:700}html:not(.dark) .code-content.hljs[data-v-6c0ead0d],html:not(.dark) .execution-output-content.hljs[data-v-6c0ead0d]{color:#24292e}html:not(.dark) .hljs-meta[data-v-6c0ead0d]{color:#6a737d}html:not(.dark) .hljs-comment[data-v-6c0ead0d]{color:#6a737d;font-style:italic}html:not(.dark) .hljs-tag[data-v-6c0ead0d]{color:#22863a}html:not(.dark) .hljs-tag .hljs-name[data-v-6c0ead0d],html:not(.dark) .hljs-tag .hljs-attr[data-v-6c0ead0d]{color:#22863a}html:not(.dark) .hljs-keyword[data-v-6c0ead0d],html:not(.dark) .hljs-selector-tag[data-v-6c0ead0d],html:not(.dark) .hljs-literal[data-v-6c0ead0d],html:not(.dark) .hljs-name[data-v-6c0ead0d]{color:#d73a49}html:not(.dark) .hljs-deletion[data-v-6c0ead0d],html:not(.dark) .hljs-number[data-v-6c0ead0d],html:not(.dark) .hljs-attribute[data-v-6c0ead0d],html:not(.dark) .hljs-variable[data-v-6c0ead0d],html:not(.dark) .hljs-template-variable[data-v-6c0ead0d],html:not(.dark) .hljs-symbol[data-v-6c0ead0d]{color:#005cc5}html:not(.dark) .hljs-section[data-v-6c0ead0d],html:not(.dark) .hljs-title[data-v-6c0ead0d],html:not(.dark) .hljs-type[data-v-6c0ead0d]{color:#6f42c1}html:not(.dark) .hljs-string[data-v-6c0ead0d],html:not(.dark) .hljs-subst[data-v-6c0ead0d],html:not(.dark) .hljs-regexp[data-v-6c0ead0d],html:not(.dark) .hljs-link[data-v-6c0ead0d],html:not(.dark) .hljs-addition[data-v-6c0ead0d],html:not(.dark) .hljs-selector-id[data-v-6c0ead0d],html:not(.dark) .hljs-selector-class[data-v-6c0ead0d]{color:#032f62}html:not(.dark) .hljs-built_in[data-v-6c0ead0d],html:not(.dark) .hljs-bullet[data-v-6c0ead0d],html:not(.dark) .hljs-code[data-v-6c0ead0d],html:not(.dark) .hljs-formula[data-v-6c0ead0d]{color:#e36209}html:not(.dark) .hljs-emphasis[data-v-6c0ead0d]{font-style:italic}html:not(.dark) .hljs-strong[data-v-6c0ead0d]{font-weight:700}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! - Theme: GitHub Dark - Description: Dark theme as seen on github.com - Author: github.com - Maintainer: @Hirse - Updated: 2021-05-15 - - Outdated base version: https://github.com/primer/github-syntax-dark - Current colors taken from GitHub's CSS -*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.math[data-v-3ade7b33]{display:inline-block}.mathjax_block[data-v-3ade7b33]{display:block}.progress-bar-container[data-v-ae2d8fdf]{background-color:#f0f0f0;border-radius:4px;height:8px;overflow:hidden}.progress-bar[data-v-ae2d8fdf]{background-color:#3498db;height:100%;transition:width .3s ease}.custom-scrollbar[data-v-78eaa4f5]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar-track{background-color:transparent}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-78eaa4f5]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-78eaa4f5]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-78eaa4f5]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.range-thumb[data-v-78eaa4f5]{margin-top:-.25rem;height:1rem;width:1rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-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)}.dark .range-thumb[data-v-78eaa4f5]{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.switch-thumb[data-v-78eaa4f5]{position:absolute;top:.125rem;left:.125rem;height:1.25rem;width:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-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);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.peer:checked~.switch-thumb[data-v-78eaa4f5]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~div[data-v-78eaa4f5]{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.dark .peer:checked~div[data-v-78eaa4f5]{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.theme-dropdown[data-v-b2b50ce7]{position:absolute;right:0;z-index:52;margin-top:.25rem;width:12rem;overflow:hidden}.language-dropdown[data-v-b2b50ce7]{position:absolute;right:0;z-index:52;margin-top:.25rem;width:16rem;overflow:hidden}.info-dropdown[data-v-b2b50ce7]{position:absolute;right:0;z-index:52;margin-top:.25rem;width:auto;min-width:300px;max-width:28rem}.context-menu-transition-enter-active[data-v-b2b50ce7]{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:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}.context-menu-transition-enter-from[data-v-b2b50ce7]{--tw-translate-y: -.5rem;--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));opacity:0}.context-menu-transition-enter-to[data-v-b2b50ce7]{--tw-translate-y: 0px;--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));opacity:1}.context-menu-transition-leave-active[data-v-b2b50ce7]{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-timing-function:cubic-bezier(.4,0,1,1)}.context-menu-transition-leave-from[data-v-b2b50ce7]{--tw-translate-y: 0px;--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));opacity:1}.context-menu-transition-leave-to[data-v-b2b50ce7]{--tw-translate-y: -.5rem;--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));opacity:0}.context-menu[data-v-b2b50ce7]{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(255 255 255 / var(--tw-bg-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)}.context-menu[data-v-b2b50ce7]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.context-menu-item[data-v-b2b50ce7]{display:flex;cursor:pointer;align-items:center;padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;--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-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.context-menu-item[data-v-b2b50ce7]:hover{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.context-menu-item[data-v-b2b50ce7]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.context-menu-item[data-v-b2b50ce7]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.context-menu-item-icon[data-v-b2b50ce7]{margin-right:.5rem;height:.875rem;width:.875rem;--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.context-menu-item-icon[data-v-b2b50ce7]:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.scrollbar[data-v-b2b50ce7]{scrollbar-width:thin;scrollbar-color:#A4CAFE #E1EFFE}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar{width:6px;height:6px}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar-track{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar-thumb{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.scrollbar[data-v-b2b50ce7]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity))}.overlay[data-v-c3cec55e]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;z-index:1000;cursor:pointer}.card-container.scale-110[data-v-c3cec55e]{z-index:1001}.card-container[data-v-c3cec55e],.shrunk-card[data-v-c3cec55e]{transition-property:transform,background-color,border-color,color,box-shadow,background-opacity,-webkit-backdrop-filter;transition-property:transform,background-color,border-color,color,box-shadow,background-opacity,backdrop-filter;transition-property:transform,background-color,border-color,color,box-shadow,background-opacity,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease-in-out;transition-duration:.3s}.card-container[data-v-c3cec55e]:focus-within,.shrunk-card[data-v-c3cec55e]: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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity));--tw-ring-offset-width: 2px;--tw-ring-offset-color: transparent}.card-container[data-v-c3cec55e],.shrunk-card[data-v-c3cec55e],button[data-v-c3cec55e]{outline:none}.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[data-v-721d5f23]{width:200px}body[data-v-721d5f23]{background-color:#fafafa;font-family:sans-serif}.container[data-v-721d5f23]{margin:4px auto;width:800px}.settings[data-v-721d5f23]{position:fixed;top:0;right:0;width:500px;background-color:#fff;z-index:1000;overflow-y:auto;height:100%}.slider-container[data-v-721d5f23]{margin-top:20px}.slider-value[data-v-721d5f23]{display:inline-block;margin-left:10px;color:#6b7280;font-size:14px}.small-button[data-v-721d5f23]{padding:.5rem .75rem;font-size:.875rem}.active-tab[data-v-dd0910af]{font-weight:700}.folder-button[data-v-09d1f933]{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;border-radius:.5rem;border-width:2px;border-style:dashed;padding:1rem;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-property:all;min-height:100px}.folder-button[data-v-09d1f933]:hover{border-style:solid;--tw-bg-opacity: .5;--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)}.folder-button span[data-v-09d1f933]{line-height:1.2}.border-blue-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.border-blue-500[data-v-09d1f933]:hover:is(.dark *){background-color:#23387633}.border-green-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(243 250 247 / var(--tw-bg-opacity))}.border-green-500[data-v-09d1f933]:hover:is(.dark *){background-color:#01473733}.border-yellow-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(253 253 234 / var(--tw-bg-opacity))}.border-yellow-500[data-v-09d1f933]:hover:is(.dark *){background-color:#63311233}.border-purple-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(246 245 255 / var(--tw-bg-opacity))}.border-purple-500[data-v-09d1f933]:hover:is(.dark *){background-color:#4a1d9633}.border-red-500[data-v-09d1f933]:hover{--tw-bg-opacity: 1;background-color:rgb(253 242 242 / var(--tw-bg-opacity))}.border-red-500[data-v-09d1f933]:hover:is(.dark *){background-color:#771d1d33}.transition-all[data-v-09d1f933]{transition-property:all}.duration-300[data-v-09d1f933]{transition-duration:.3s}.input-field[data-v-29a3f94a]{display:block;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(249 250 251 / 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)}.input-field[data-v-29a3f94a]:focus{border-color:var(--color-primary);outline:2px solid transparent;outline-offset:2px;--tw-ring-color: var(--color-primary) }.input-field[data-v-29a3f94a]:disabled{cursor:not-allowed;opacity:.5}.input-field[data-v-29a3f94a]: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))}@media (min-width: 640px){.input-field[data-v-29a3f94a]{font-size:.875rem;line-height:1.25rem}}.setting-item[data-v-3760efd0]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-3760efd0]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-3760efd0]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-3760efd0]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-3760efd0]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-3760efd0]{width:25%}}.input[data-v-3760efd0]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem}.input[data-v-3760efd0]::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]{--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)}.input[data-v-3760efd0]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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 }.input[data-v-3760efd0]:disabled{opacity:.5}.input[data-v-3760efd0]: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(243 244 246 / var(--tw-text-opacity))}.input[data-v-3760efd0]:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.input[data-v-3760efd0]:focus:is(.dark *){--tw-ring-offset-color: #111827 }@media (min-width: 640px){.input[data-v-3760efd0]{font-size:.875rem;line-height:1.25rem}}.panels-color[data-v-3760efd0]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.panels-color[data-v-3760efd0]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.toggle-item[data-v-3760efd0]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.toggle-item[data-v-3760efd0]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-3760efd0]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-3760efd0]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-3760efd0]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-3760efd0]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.btn[data-v-3760efd0]{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.btn[data-v-3760efd0]: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-offset-width: 2px }.btn[data-v-3760efd0]:disabled{opacity:.5}.btn[data-v-3760efd0]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.btn-sm[data-v-3760efd0]{padding:.375rem .75rem;font-size:.75rem;line-height:1rem}.btn-primary[data-v-3760efd0]{--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[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-primary[data-v-3760efd0]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.btn-secondary[data-v-3760efd0]{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.btn-secondary[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.btn-secondary[data-v-3760efd0]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.btn-secondary[data-v-3760efd0]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.btn-secondary[data-v-3760efd0]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.btn-positive[data-v-3760efd0]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.btn-positive[data-v-3760efd0]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.btn-positive[data-v-3760efd0]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity)) }.form-select[data-v-3760efd0]{display:block;width:100%;border-radius:.375rem;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5rem}.form-select[data-v-3760efd0]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px;--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.form-select[data-v-3760efd0]: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(209 213 219 / var(--tw-text-opacity))}@media (min-width: 640px){.form-select[data-v-3760efd0]{font-size:.875rem;line-height:1.25rem}}.panels-color>.grid[data-v-3760efd0]{border-style:none;padding:0;--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)}.setting-item[data-v-52537129]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-52537129]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-52537129]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-52537129]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-52537129]{width:25%}}.setting-label-inline[data-v-52537129]{margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.setting-label-inline[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.input-field[data-v-52537129]{display:block;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(249 250 251 / 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)}.input-field[data-v-52537129]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field[data-v-52537129]:disabled{opacity:.5}.input-field[data-v-52537129]: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))}.input-field[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}@media (min-width: 640px){.input-field[data-v-52537129]{font-size:.875rem;line-height:1.25rem}}.input-field-sm[data-v-52537129]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field-sm[data-v-52537129]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field-sm[data-v-52537129]:disabled{opacity:.5}.input-field-sm[data-v-52537129]: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))}.input-field-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.range-input[data-v-52537129]{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));accent-color:#1C64F2}.range-input[data-v-52537129]:disabled{opacity:.5}.range-input[data-v-52537129]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.toggle-item[data-v-52537129]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-52537129]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-52537129]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-52537129]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-52537129]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.button-base[data-v-52537129]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-base[data-v-52537129]: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-offset-width: 2px}.button-base[data-v-52537129]:disabled{opacity:.5}.button-base[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-base-sm[data-v-52537129]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-52537129]: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-offset-width: 2px}.button-base-sm[data-v-52537129]:disabled{opacity:.5}.button-base-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-52537129]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-primary[data-v-52537129]: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-offset-width: 2px}.button-primary[data-v-52537129]:disabled{opacity:.5}.button-primary[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-secondary[data-v-52537129]: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-offset-width: 2px}.button-secondary[data-v-52537129]:disabled{opacity:.5}.button-secondary[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary[data-v-52537129]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary[data-v-52537129]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-success[data-v-52537129]: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-offset-width: 2px}.button-success[data-v-52537129]:disabled{opacity:.5}.button-success[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.button-danger[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-danger[data-v-52537129]: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-offset-width: 2px}.button-danger[data-v-52537129]:disabled{opacity:.5}.button-danger[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-danger[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.button-primary-sm[data-v-52537129]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-52537129]: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-offset-width: 2px}.button-primary-sm[data-v-52537129]:disabled{opacity:.5}.button-primary-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-secondary-sm[data-v-52537129]: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-offset-width: 2px}.button-secondary-sm[data-v-52537129]:disabled{opacity:.5}.button-secondary-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary-sm[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary-sm[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-52537129]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary-sm[data-v-52537129]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success-sm[data-v-52537129]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-52537129]: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-offset-width: 2px}.button-success-sm[data-v-52537129]:disabled{opacity:.5}.button-success-sm[data-v-52537129]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success-sm[data-v-52537129]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-52537129]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}[data-v-4777608e]:root{--color-primary: #3b82f6;--color-primary-rgb: 59, 130, 246}.dark[data-v-4777608e]:root{--color-primary: #60a5fa;--color-primary-rgb: 96, 165, 250}.setting-item[data-v-4777608e]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-4777608e]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-4777608e]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-4777608e]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-4777608e]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-4777608e]{width:25%}}.input-field-sm[data-v-4777608e]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field-sm[data-v-4777608e]:focus{border-color:var(--color-primary);outline:2px solid transparent;outline-offset:2px;--tw-ring-color: var(--color-primary)}.input-field-sm[data-v-4777608e]:disabled{opacity:.5}.input-field-sm[data-v-4777608e]: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))}.range-input[data-v-4777608e]{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled{opacity:.5}.range-input[data-v-4777608e]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]{accent-color:var(--color-primary)}.range-input[data-v-4777608e]::-webkit-slider-thumb{height:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--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);-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;background-color:var(--color-primary)}.range-input[data-v-4777608e]::-moz-range-thumb{height:1rem;width:1rem;cursor:pointer;border-radius:9999px;border-style:none;--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);-moz-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;background-color:var(--color-primary)}.range-input[data-v-4777608e]:disabled::-webkit-slider-thumb{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled::-moz-range-thumb{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:disabled:is(.dark *)::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.range-input[data-v-4777608e]:focus{outline:2px solid transparent;outline-offset:2px}.range-input[data-v-4777608e]:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.dark .range-input[data-v-4777608e]:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px #1f2937,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.range-input[data-v-4777608e]:focus::-moz-range-thumb{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.dark .range-input[data-v-4777608e]:focus::-moz-range-thumb{box-shadow:0 0 0 2px #1f2937,0 0 0 4px rgba(var(--color-primary-rgb),.5)}.toggle-item[data-v-4777608e]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-4777608e]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-4777608e]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-4777608e]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-4777608e]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-4777608e]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-4777608e]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.setting-item-grid[data-v-7b97b998]{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));align-items:center;-moz-column-gap:1rem;column-gap:1rem;row-gap:.25rem;padding-top:.25rem;padding-bottom:.25rem}@media (min-width: 768px){.setting-item-grid[data-v-7b97b998]{grid-template-columns:minmax(150px,25%) 1fr}}.setting-label[data-v-7b97b998]{padding-right:.5rem;text-align:left;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-7b97b998]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-7b97b998]{text-align:right}}.setting-input-group[data-v-7b97b998]{display:flex;align-items:center;gap:.5rem}.input-field[data-v-7b97b998]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field[data-v-7b97b998]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field[data-v-7b97b998]:disabled{opacity:.5}.input-field[data-v-7b97b998]: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))}.input-field[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.input-field-sm[data-v-7b97b998]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.75rem;line-height:1rem;--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)}.input-field-sm[data-v-7b97b998]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field-sm[data-v-7b97b998]:disabled{opacity:.5}.input-field-sm[data-v-7b97b998]: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))}.input-field-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.toggle-item[data-v-7b97b998]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-7b97b998]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-7b97b998]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-7b97b998]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-7b97b998]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-7b97b998]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.button-base[data-v-7b97b998]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-base[data-v-7b97b998]: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-offset-width: 2px}.button-base[data-v-7b97b998]:disabled{opacity:.5}.button-base[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-base-sm[data-v-7b97b998]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-7b97b998]: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-offset-width: 2px}.button-base-sm[data-v-7b97b998]:disabled{opacity:.5}.button-base-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-7b97b998]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-primary[data-v-7b97b998]: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-offset-width: 2px}.button-primary[data-v-7b97b998]:disabled{opacity:.5}.button-primary[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-secondary[data-v-7b97b998]: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-offset-width: 2px}.button-secondary[data-v-7b97b998]:disabled{opacity:.5}.button-secondary[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary[data-v-7b97b998]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary[data-v-7b97b998]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-success[data-v-7b97b998]: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-offset-width: 2px}.button-success[data-v-7b97b998]:disabled{opacity:.5}.button-success[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.button-danger[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.button-danger[data-v-7b97b998]: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-offset-width: 2px}.button-danger[data-v-7b97b998]:disabled{opacity:.5}.button-danger[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-danger[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.button-primary-sm[data-v-7b97b998]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-7b97b998]: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-offset-width: 2px}.button-primary-sm[data-v-7b97b998]:disabled{opacity:.5}.button-primary-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-secondary-sm[data-v-7b97b998]: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-offset-width: 2px}.button-secondary-sm[data-v-7b97b998]:disabled{opacity:.5}.button-secondary-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-secondary-sm[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary-sm[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity))}.button-secondary-sm[data-v-7b97b998]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary-sm[data-v-7b97b998]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.button-success-sm[data-v-7b97b998]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-7b97b998]: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-offset-width: 2px}.button-success-sm[data-v-7b97b998]:disabled{opacity:.5}.button-success-sm[data-v-7b97b998]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success-sm[data-v-7b97b998]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-7b97b998]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}[data-feather][data-v-720de39c]{vertical-align:middle;width:1em;height:1em;stroke-width:2}@keyframes spin-720de39c{to{transform:rotate(360deg)}}.animate-spin[data-v-720de39c]{animation:spin-720de39c 1s linear infinite}@keyframes pulse-720de39c{50%{opacity:.5}}.animate-pulse[data-v-720de39c]{animation:pulse-720de39c 2s cubic-bezier(.4,0,.6,1) infinite}.line-clamp-3[data-v-720de39c]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.input-field[data-v-62a84717]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field[data-v-62a84717]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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(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);--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.input-field[data-v-62a84717]:disabled{opacity:.5}.input-field[data-v-62a84717]: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(229 231 235 / var(--tw-text-opacity))}.input-field[data-v-62a84717]:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.input-field[data-v-62a84717]:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.binding-entry-processing[data-v-62a84717]{opacity:.7;pointer-events:none}.bg-primary-light[data-v-62a84717]{background-color:#e0f2fe}.dark .bg-primary-dark\/20[data-v-62a84717]{background-color:#3b82f633}.border-primary-dark\/30[data-v-62a84717]{border-color:#2563eb4d}.focus\:ring-primary-dark\/50[data-v-62a84717]:focus{--tw-ring-color: rgba(37, 99, 235, .5)}.dark .fill-primary[data-v-62a84717]{fill:#3b82f6}.fill-primary[data-v-62a84717]{fill:#2563eb}.interactive-menu-container[data-v-e42afcb4]{position:relative;display:inline-block;text-align:left;--menu-trigger-bg: #F3F4F6;--menu-trigger-text: #4B5563;--menu-trigger-hover-bg: #E5E7EB;--menu-trigger-hover-text: #1F2937;--menu-trigger-focus-ring: #6875F5;--menu-dropdown-bg: #ffffff;--menu-dropdown-border: rgb(0 0 0 / 5%);--menu-dropdown-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--menu-item-text: #374151;--menu-item-hover-bg: #E5EDFF;--menu-item-hover-text: #111827;--menu-item-icon-color: #6B7280;--menu-item-icon-hover-color: #374151;--menu-item-checkmark-color: #5850EC}.dark .interactive-menu-container[data-v-e42afcb4]{--menu-trigger-bg: #374151;--menu-trigger-text: #9CA3AF;--menu-trigger-hover-bg: #4B5563;--menu-trigger-hover-text: #E5E7EB;--menu-dropdown-bg: #1F2937;--menu-dropdown-border: rgb(255 255 255 / 10%);--menu-item-text: #E5E7EB;--menu-item-hover-bg: #362F78;--menu-item-hover-text: #F3F4F6;--menu-item-icon-color: #9CA3AF;--menu-item-icon-hover-color: #E5E7EB;--menu-item-checkmark-color: #8DA2FB}.interactive-menu-trigger[data-v-e42afcb4]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.25rem;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-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:var(--menu-trigger-bg);color:var(--menu-trigger-text);line-height:0;border:none;cursor:pointer}.interactive-menu-trigger[data-v-e42afcb4]:hover{background-color:var(--menu-trigger-hover-bg);color:var(--menu-trigger-hover-text)}.interactive-menu-trigger[data-v-e42afcb4]: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-offset-width: 2px;ring-color:var(--menu-trigger-focus-ring)}.interactive-menu-trigger-icon[data-v-e42afcb4]{height:1.25rem;width:1.25rem}.interactive-menu-trigger-text[data-v-e42afcb4]{padding-left:.25rem;padding-right:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.interactive-menu-dropdown[data-v-e42afcb4]{position:absolute;z-index:50;margin-top:.5rem;width:14rem;border-radius:.375rem;--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);--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)}.interactive-menu-dropdown[data-v-e42afcb4]:focus{outline:2px solid transparent;outline-offset:2px}.interactive-menu-dropdown[data-v-e42afcb4]{background-color:var(--menu-dropdown-bg);ring-color:var(--menu-dropdown-border);box-shadow:var(--menu-dropdown-shadow);min-width:14rem;max-height:75vh;overflow-y:auto}.interactive-menu-list[data-v-e42afcb4]{margin:0;list-style-type:none;padding:0;padding-top:.25rem;padding-bottom:.25rem}.interactive-menu-item[data-v-e42afcb4]{display:flex;cursor:pointer;align-items:center;white-space:nowrap;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:var(--menu-item-text);min-height:2.25rem}.interactive-menu-item[data-v-e42afcb4]:hover,.interactive-menu-item[data-v-e42afcb4]:focus{background-color:var(--menu-item-hover-bg);color:var(--menu-item-hover-text);outline:none}.interactive-menu-item:hover .interactive-menu-item-icon-container[data-v-e42afcb4],.interactive-menu-item:focus .interactive-menu-item-icon-container[data-v-e42afcb4]{color:var(--menu-item-icon-hover-color)}.interactive-menu-item-checkmark-placeholder[data-v-e42afcb4]{margin-right:.5rem;display:flex;width:1rem;flex-shrink:0;align-items:center;justify-content:center}.interactive-menu-item-checkmark-icon[data-v-e42afcb4]{height:1rem;width:1rem;color:var(--menu-item-checkmark-color)}.interactive-menu-item-icon-container[data-v-e42afcb4]{margin-right:.5rem;display:flex;width:1rem;flex-shrink:0;align-items:center;justify-content:center;color:var(--menu-item-icon-color);transition:color .15s ease-in-out}.interactive-menu-item-icon[data-v-e42afcb4]{height:1rem;width:1rem}.interactive-menu-item-icon-text[data-v-e42afcb4]{font-size:.75rem;line-height:1rem;font-weight:700}.interactive-menu-item-icon-placeholder[data-v-e42afcb4]{display:inline-block;height:1rem;width:1rem}.interactive-menu-item-name[data-v-e42afcb4]{flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interactive-menu-transition-enter-active[data-v-e42afcb4]{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:.1s;transition-timing-function:cubic-bezier(0,0,.2,1)}.interactive-menu-transition-enter-from[data-v-e42afcb4]{--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));opacity:0}.interactive-menu-transition-enter-to[data-v-e42afcb4]{--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));opacity:1}.interactive-menu-transition-leave-active[data-v-e42afcb4]{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:75ms;transition-timing-function:cubic-bezier(.4,0,1,1)}.interactive-menu-transition-leave-from[data-v-e42afcb4]{--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));opacity:1}.interactive-menu-transition-leave-to[data-v-e42afcb4]{--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));opacity:0}.interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar{width:6px}.interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar-track{background:transparent}.interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar-thumb{background-color:#9ca3af66;border-radius:3px}.dark .interactive-menu-dropdown[data-v-e42afcb4]::-webkit-scrollbar-thumb{background-color:#4b556380}.interactive-menu-dropdown[data-v-e42afcb4]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) transparent}.dark .interactive-menu-dropdown[data-v-e42afcb4]{scrollbar-color:rgba(75,85,99,.5) transparent}[aria-disabled=true][data-v-9a7ef5e9]{cursor:not-allowed}.button-base-sm[data-v-9a7ef5e9]{display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-base-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-base-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-primary-sm[data-v-9a7ef5e9]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-primary-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-primary-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-primary-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)) }.button-success-sm[data-v-9a7ef5e9]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-success-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-success-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-success-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity)) }.button-danger-sm[data-v-9a7ef5e9]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-danger-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-danger-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-danger-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-danger-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity)) }.button-secondary-sm[data-v-9a7ef5e9]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;border-color:transparent;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-secondary-sm[data-v-9a7ef5e9]: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-offset-width: 2px }.button-secondary-sm[data-v-9a7ef5e9]:disabled{opacity:.5}.button-secondary-sm[data-v-9a7ef5e9]:focus:is(.dark *){--tw-ring-offset-color: #111827 }.button-secondary-sm[data-v-9a7ef5e9]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.button-secondary-sm[data-v-9a7ef5e9]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)) }.button-secondary-sm[data-v-9a7ef5e9]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.button-secondary-sm[data-v-9a7ef5e9]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}[data-feather][data-v-9a7ef5e9]{display:inline-block;height:1rem;width:1rem;vertical-align:middle}.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-afc35f9f]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field[data-v-afc35f9f]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field[data-v-afc35f9f]:disabled{opacity:.5}.input-field[data-v-afc35f9f]: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))}.input-field[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.input-field-sm[data-v-afc35f9f]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.75rem;line-height:1rem;--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)}.input-field-sm[data-v-afc35f9f]:focus{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity));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}.input-field-sm[data-v-afc35f9f]:disabled{opacity:.5}.input-field-sm[data-v-afc35f9f]: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))}.input-field-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.setting-label-inline[data-v-afc35f9f]{margin-bottom:.25rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label-inline[data-v-afc35f9f]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.button-base-sm[data-v-afc35f9f]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-base-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-base-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-base-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-afc35f9f]{--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));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-primary-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-primary-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-primary-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-primary-sm[data-v-afc35f9f]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.button-primary-sm[data-v-afc35f9f]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.button-success-sm[data-v-afc35f9f]{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-success-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-success-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-success-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-success-sm[data-v-afc35f9f]:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.button-success-sm[data-v-afc35f9f]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity))}.button-danger-sm[data-v-afc35f9f]{--tw-bg-opacity: 1;background-color:rgb(224 36 36 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.375rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--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:.15s}.button-danger-sm[data-v-afc35f9f]: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-offset-width: 2px}.button-danger-sm[data-v-afc35f9f]:disabled{opacity:.5}.button-danger-sm[data-v-afc35f9f]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.button-danger-sm[data-v-afc35f9f]:hover{--tw-bg-opacity: 1;background-color:rgb(200 30 30 / var(--tw-bg-opacity))}.button-danger-sm[data-v-afc35f9f]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity))}.model-grid-enter-active[data-v-afc35f9f],.model-grid-leave-active[data-v-afc35f9f]{transition:all .5s ease}.model-grid-enter-from[data-v-afc35f9f],.model-grid-leave-to[data-v-afc35f9f]{opacity:0;transform:translateY(15px)}.bg-primary-light[data-v-afc35f9f]{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.dark .bg-primary-dark\/20[data-v-afc35f9f]:is(.dark *){background-color:#3f83f833}.border-primary-dark\/30[data-v-afc35f9f]{border-color:#3f83f84d}[data-feather].w-4[data-v-afc35f9f]{display:inline-block;vertical-align:middle}[data-feather].animate-spin[data-v-afc35f9f]{animation:spin-afc35f9f 1s linear infinite}@keyframes spin-afc35f9f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.input[data-v-8ff7e3ea]{display:block;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(243 244 246 / var(--tw-bg-opacity));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--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)}.input[data-v-8ff7e3ea]:focus{border-color:transparent;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[data-v-8ff7e3ea]:disabled{opacity:.5}.input[data-v-8ff7e3ea]: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(243 244 246 / var(--tw-text-opacity))}.btn[data-v-8ff7e3ea]{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--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:.15s}.btn[data-v-8ff7e3ea]: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-offset-width: 2px}.btn[data-v-8ff7e3ea]:disabled{opacity:.5}.btn[data-v-8ff7e3ea]:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.btn-sm[data-v-8ff7e3ea]{padding:.375rem .625rem;font-size:.75rem;line-height:1rem}.scrollbar-thin[data-v-8ff7e3ea]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.scrollbar-thin[data-v-8ff7e3ea]::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin[data-v-8ff7e3ea]::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:4px}.scrollbar-thin[data-v-8ff7e3ea]::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:4px;border:2px solid var(--scrollbar-track)}[data-v-8ff7e3ea]:root{--scrollbar-thumb: #cbd5e1;--scrollbar-track: #f1f5f9}.dark[data-v-8ff7e3ea]:root{--scrollbar-thumb: #4b5563;--scrollbar-track: #1f2937}.scrollbar-thumb-blue-300[data-v-8ff7e3ea]{--scrollbar-thumb: #93c5fd}.scrollbar-track-blue-100[data-v-8ff7e3ea]{--scrollbar-track: #dbeafe}.dark .dark\:scrollbar-thumb-blue-700[data-v-8ff7e3ea]{--scrollbar-thumb: #1d4ed8}.dark .dark\:scrollbar-track-blue-900[data-v-8ff7e3ea]{--scrollbar-track: #1e3a8a}.setting-item[data-v-99271729]{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item[data-v-99271729]{flex-direction:row;align-items:center;gap:1rem}}.setting-label[data-v-99271729]{display:block;width:100%;flex-shrink:0;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.setting-label[data-v-99271729]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label[data-v-99271729]{width:33.333333%}}@media (min-width: 1024px){.setting-label[data-v-99271729]{width:25%}}.input-field-sm[data-v-99271729]{display:block;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(249 250 251 / var(--tw-bg-opacity));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--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)}.input-field-sm[data-v-99271729]:focus{border-color:var(--color-primary);outline:2px solid transparent;outline-offset:2px;--tw-ring-color: var(--color-primary) }.input-field-sm[data-v-99271729]:disabled{opacity:.5}.input-field-sm[data-v-99271729]: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))}.range-input[data-v-99271729]{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));accent-color:var(--color-primary)}.range-input[data-v-99271729]:disabled{opacity:.5}.range-input[data-v-99271729]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.toggle-item[data-v-99271729]{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toggle-item[data-v-99271729]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.toggle-item[data-v-99271729]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.toggle-label[data-v-99271729]{margin-right:1rem;flex:1 1 0%;cursor:pointer;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-label[data-v-99271729]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.toggle-description[data-v-99271729]{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.toggle-description[data-v-99271729]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.icon-button[data-v-9889ee74]{border-radius:9999px;padding:.375rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity));transition-duration:.15s}.icon-button[data-v-9889ee74]: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))}.icon-button[data-v-9889ee74]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.icon-button[data-v-9889ee74]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.icon-button[data-v-9889ee74]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.panels-color[data-v-9889ee74]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.panels-color[data-v-9889ee74]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.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[data-v-0535817b]{font-family:monospace;font-size:14px;line-height:1.5;margin-left:20px}.tree-node[data-v-0535817b]{position:relative}.node-label[data-v-0535817b]{cursor:pointer;padding:2px 0}.node-label[data-v-0535817b]:hover{background-color:#f0f0f0}.toggle-icon[data-v-0535817b]{display:inline-block;width:20px;color:#666}.node-content[data-v-0535817b]{border-left:1px dotted #ccc;margin-left:7px;padding-left:13px}.key[data-v-0535817b]{color:#881391;margin-right:5px}.value[data-v-0535817b]{padding:2px 4px}.value.string[data-v-0535817b]{color:#22863a}.value.number[data-v-0535817b]{color:#005cc5}.value.boolean[data-v-0535817b]{color:#d73a49}.value.null[data-v-0535817b]{color:#6a737d}.bracket[data-v-0535817b]{color:#444;margin-left:5px}.bracket-close[data-v-0535817b]{color:#444;margin-left:7px}.json-viewer[data-v-6fbe5047]{border:1px solid #ddd;border-radius:4px;margin:10px;background:#fff}.viewer-header[data-v-6fbe5047]{padding:8px 12px;background:#f5f5f5;cursor:pointer;border-bottom:1px solid #ddd}.viewer-header[data-v-6fbe5047]:hover{background:#eee}.toggle-icon[data-v-6fbe5047]{display:inline-block;width:20px;color:#666}.title[data-v-6fbe5047]{font-weight:700;color:#333}.viewer-content[data-v-6fbe5047]{padding:10px}.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}@keyframes fadeIn-8fd68363{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn[data-v-8fd68363]{animation:fadeIn-8fd68363 .5s ease-out forwards}.htmljs[data-v-8fd68363]{background:none}.svg-button i[data-feather][data-v-8fd68363]{height:1rem;width:1rem}.animate-spin[data-v-8fd68363]{animation:spin-8fd68363 1s linear infinite}@keyframes spin-8fd68363{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-pulse[data-v-8fd68363]{animation:pulse-8fd68363 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-8fd68363{0%,to{opacity:1}50%{opacity:.5}}.footer-item[data-v-8fd68363]{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.footer-item[data-v-8fd68363]:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.footer-value[data-v-8fd68363]{margin-left:.25rem;font-weight:400;--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.footer-value[data-v-8fd68363]:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}textarea[data-v-8fd68363]{overflow-y:hidden;resize:none;min-height:5em}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar{width:.5rem}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar-track{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]:is(.dark *)::-webkit-scrollbar-track{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.custom-scrollbar[data-v-41cc1849]:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}@keyframes spin-slow-95d5df8b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow[data-v-95d5df8b]{animation:spin-slow-95d5df8b 3s linear infinite}.personalities-hover-area[data-v-95d5df8b]{position:relative;padding-top:10px}.custom-scrollbar[data-v-95d5df8b]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-95d5df8b]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-95d5df8b]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-95d5df8b]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}.list-move[data-v-95d5df8b],.list-enter-active[data-v-95d5df8b],.list-leave-active[data-v-95d5df8b]{transition:all .5s ease}.list-enter-from[data-v-95d5df8b]{transform:translatey(-30px)}.list-leave-to[data-v-95d5df8b]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-95d5df8b]{position:absolute}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .svg-button{padding:.375rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .svg-button svg,[data-v-95d5df8b] .personalities-commands-container[data-size=small] .svg-button i{height:1rem;width:1rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .context-menu{font-size:.75rem;line-height:1rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .context-menu-item{padding:.375rem .75rem}[data-v-95d5df8b] .personalities-commands-container[data-size=small] .context-menu-item-icon{margin-right:.375rem;height:.875rem;width:.875rem}@keyframes rolling-ball-861ce6fc{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-861ce6fc{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fade-in-up-861ce6fc{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-rolling-ball[data-v-861ce6fc]{animation:rolling-ball-861ce6fc 4s infinite ease-in-out,bounce-861ce6fc 1s infinite ease-in-out}.animate-fade-in-up[data-v-861ce6fc]{animation:fade-in-up-861ce6fc 1.5s ease-out}.floating-button-container[data-v-861ce6fc]{position:fixed;bottom:30px;right:30px;z-index:9999}.floating-button[data-v-861ce6fc]{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-861ce6fc 1.5s infinite,glow-861ce6fc 2s infinite,wobble-861ce6fc 3s infinite;overflow:hidden;z-index:9999;transition:all .3s ease}.floating-button[data-v-861ce6fc]:hover{transform:scale(1.2) rotate(5deg);background-color:#ff4500}.tooltip[data-v-861ce6fc]{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-861ce6fc]{opacity:1;transform:translate(-50%) scale(1)}@keyframes pulse-861ce6fc{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes glow-861ce6fc{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-861ce6fc{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.hidden[data-v-861ce6fc]{display:none}.fish-animation-container[data-v-a6ab94aa]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:2147483640;pointer-events:none;overflow:hidden}.swimming-fish[data-v-a6ab94aa]{position:absolute;top:0;left:0;height:100px;width:auto;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:auto;animation:wobble-a6ab94aa 2.2s ease-in-out infinite;will-change:transform}@keyframes wobble-a6ab94aa{0%{transform-origin:center center;transform:translateY(0) rotate(0)}25%{transform-origin:center center;transform:translateY(-200px) rotate(-3deg)}50%{transform-origin:center center;transform:translateY(50px) rotate(0)}75%{transform-origin:center center;transform:translateY(-200px) rotate(3deg)}to{transform-origin:center center;transform:translateY(0) rotate(0)}}.caught-message[data-v-a6ab94aa]{pointer-events:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:opacity,transform}.popup-container[data-v-425d1bc4]{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-425d1bc4]{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-425d1bc4]:hover{background-color:#2779bd}.iframe-content[data-v-425d1bc4]{width:100%;height:80%;border:none;margin-bottom:16px}.checkbox-container[data-v-425d1bc4]{display:flex;align-items:center;justify-content:center}.styled-checkbox[data-v-425d1bc4]{width:24px;height:24px;accent-color:#3490dc;cursor:pointer}.checkbox-label[data-v-425d1bc4]{margin-left:8px;font-size:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fade-enter-active[data-v-425d1bc4],.fade-leave-active[data-v-425d1bc4]{transition:opacity .5s}.fade-enter[data-v-425d1bc4],.fade-leave-to[data-v-425d1bc4]{opacity:0}.glow-effect[data-v-70cef6eb]{box-shadow:0 0 5px 2px #00ffffb3;animation:glow-70cef6eb 1.5s ease-in-out infinite alternate}@keyframes glow-70cef6eb{0%{box-shadow:0 0 5px 2px #00ffffb3}to{box-shadow:0 0 20px 2px #00ffffb3}}.fixed.inset-0[data-v-6f262cbb]{background-color:#0006}.bg-white[data-v-6f262cbb]{max-width:56rem;box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.changelog-header[data-v-6f262cbb]{display:flex;align-items:center;justify-content:space-between;border-bottom-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));padding:1rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.header-title[data-v-6f262cbb]{font-size:1.25rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.close-btn[data-v-6f262cbb]{border-radius:9999px;padding:.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.close-btn[data-v-6f262cbb]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb]{flex:1 1 0%;overflow-y:auto;padding:1.5rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.changelog-content[data-v-6f262cbb] h1,.changelog-content[data-v-6f262cbb] h2,.changelog-content[data-v-6f262cbb] h3,.changelog-content[data-v-6f262cbb] h4,.changelog-content[data-v-6f262cbb] h5,.changelog-content[data-v-6f262cbb] h6{margin-bottom:.75rem;margin-top:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb] h1:first-child,.changelog-content[data-v-6f262cbb] h2:first-child,.changelog-content[data-v-6f262cbb] h3:first-child,.changelog-content[data-v-6f262cbb] h4:first-child,.changelog-content[data-v-6f262cbb] h5:first-child,.changelog-content[data-v-6f262cbb] h6:first-child{margin-top:0}.changelog-content[data-v-6f262cbb] h1{margin-bottom:1rem;border-bottom-width:1px;padding-bottom:.5rem;font-size:1.5rem;line-height:2rem}.changelog-content[data-v-6f262cbb] h2{margin-bottom:.75rem;border-bottom-width:1px;padding-bottom:.25rem;font-size:1.25rem;line-height:1.75rem}.changelog-content[data-v-6f262cbb] h3{font-size:1.125rem;line-height:1.75rem}.changelog-content[data-v-6f262cbb] h4{font-size:1rem;line-height:1.5rem}.changelog-content[data-v-6f262cbb] p{margin-bottom:1rem}.changelog-content[data-v-6f262cbb] ul,.changelog-content[data-v-6f262cbb] ol{margin-bottom:1rem;padding-left:1.5rem}.changelog-content[data-v-6f262cbb] li{margin-bottom:.25rem}.changelog-content[data-v-6f262cbb] ul{list-style-type:disc}.changelog-content[data-v-6f262cbb] ol{list-style-type:decimal}.changelog-content[data-v-6f262cbb] code{border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));padding:.125rem .25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity));font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.changelog-content[data-v-6f262cbb] pre{margin-bottom:1rem;overflow-x:auto;border-radius:.25rem;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));padding:1rem;font-size:.875rem;line-height:1.25rem;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.changelog-content[data-v-6f262cbb] pre code{border-style:none;background-color:transparent;padding:0;font-size:.875rem;line-height:1.25rem}.changelog-content[data-v-6f262cbb] 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));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-style:italic;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb] a{--tw-text-opacity: 1;color:rgb(28 100 242 / var(--tw-text-opacity))}.changelog-content[data-v-6f262cbb] a:hover{--tw-text-opacity: 1;color:rgb(30 66 159 / var(--tw-text-opacity));text-decoration-line:underline}.changelog-footer[data-v-6f262cbb]{display:flex;justify-content:flex-end;border-top-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));padding:1rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.action-btn[data-v-6f262cbb]{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(28 100 242 / var(--tw-bg-opacity));padding:.5rem 1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.action-btn[data-v-6f262cbb]:hover{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.action-btn[data-v-6f262cbb]: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}.action-btn[data-v-6f262cbb]:active{--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.personalities-container[data-v-9b0751f8]{position:relative}.skills-lib-icon[data-v-9b0751f8]{position:absolute;top:-2px;right:-2px;z-index:10;font-size:5px;width:2px;height:2px}.skills-lib-icon i[data-v-9b0751f8]{width:2px;height:2px}@keyframes giggle-9b0751f8{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-9b0751f8]{animation:giggle-9b0751f8 1.5s infinite ease-in-out}.custom-scrollbar[data-v-9b0751f8]{scrollbar-width:thin;scrollbar-color:rgba(155,155,155,.5) transparent}.custom-scrollbar[data-v-9b0751f8]::-webkit-scrollbar{width:8px}.custom-scrollbar[data-v-9b0751f8]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-9b0751f8]::-webkit-scrollbar-thumb{background-color:#9b9b9b80;border-radius:20px;border:transparent}@keyframes custom-pulse-9b0751f8{0%,to{box-shadow:0 0 #3b82f680}50%{box-shadow:0 0 0 15px #3b82f600}}.animate-pulse[data-v-9b0751f8]{animation:custom-pulse-9b0751f8 2s infinite}.slide-right-enter-active[data-v-9b0751f8],.slide-right-leave-active[data-v-9b0751f8]{transition:transform .3s ease}.slide-right-enter[data-v-9b0751f8],.slide-right-leave-to[data-v-9b0751f8]{transform:translate(-100%)}.slide-left-enter-active[data-v-9b0751f8],.slide-left-leave-active[data-v-9b0751f8]{transition:transform .3s ease}.slide-left-enter[data-v-9b0751f8],.slide-left-leave-to[data-v-9b0751f8]{transform:translate(100%)}.fade-and-fly-enter-active[data-v-9b0751f8]{animation:fade-and-fly-enter-9b0751f8 .5s ease}.fade-and-fly-leave-active[data-v-9b0751f8]{animation:fade-and-fly-leave-9b0751f8 .5s ease}@keyframes fade-and-fly-enter-9b0751f8{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-and-fly-leave-9b0751f8{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(1.2)}}.list-move[data-v-9b0751f8],.list-enter-active[data-v-9b0751f8],.list-leave-active[data-v-9b0751f8]{transition:all .5s ease}.list-enter-from[data-v-9b0751f8]{transform:translatey(-30px)}.list-leave-to[data-v-9b0751f8]{opacity:0;transform:translatey(30px)}.list-leave-active[data-v-9b0751f8]{position:absolute}@keyframes float-9b0751f8{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float[data-v-9b0751f8]{animation:float-9b0751f8 linear infinite}@keyframes star-move-9b0751f8{0%{transform:translate(0) rotate(0)}50%{transform:translate(20px,20px) rotate(180deg)}to{transform:translate(0) rotate(360deg)}}.animate-star[data-v-9b0751f8]{animation:star-move-9b0751f8 linear infinite}@keyframes fall-9b0751f8{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(calc(100vh + 20px)) rotate(360deg);opacity:0}}.animate-fall[data-v-9b0751f8]{animation:fall-9b0751f8 linear infinite}@keyframes glow-9b0751f8{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-9b0751f8]{animation:glow-9b0751f8 2s ease-in-out infinite}@media (prefers-color-scheme: dark){@keyframes glow-9b0751f8{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-9b0751f8{0%{transform:translate(-50%) rotate(0)}to{transform:translate(50%) rotate(360deg)}}.animate-roll[data-v-9b0751f8]{animation:roll-9b0751f8 4s linear infinite}.toolbar[data-v-9b0751f8]{position:relative;width:100%}.toolbar-container[data-v-9b0751f8]{display:flex;height:2.5rem;align-items:center}.toolbar-button[data-v-9b0751f8]{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-9b0751f8]:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.menu-container[data-v-9b0751f8]{position:relative}.expandable-menu[data-v-9b0751f8]{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-9b0751f8],.menu-visible[data-v-9b0751f8]{display:flex}.menu-item[data-v-9b0751f8]{background:none;border:none;cursor:pointer;padding:8px;color:#333;transition:background-color .3s}.menu-item[data-v-9b0751f8]:hover{background-color:#f0f0f0}.dot[data-v-9b0751f8]{width:10px;height:10px;border-radius:50%}.dot-green[data-v-9b0751f8]{background-color:green}.dot-red[data-v-9b0751f8]{background-color:red}.animate-pulse[data-v-9b0751f8]{animation:pulse-9b0751f8 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-9b0751f8{0%,to{opacity:1}50%{opacity:.7}}.logo-container[data-v-9b0751f8]{position:relative;width:48px;height:48px}.logo-image[data-v-9b0751f8]{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}@keyframes bounce-9b0751f8{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-9b0751f8]{animation:bounce-9b0751f8 1s infinite}@keyframes roll-and-bounce-9b0751f8{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-9b0751f8{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-a7f0fe49]{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%!important;margin-right:auto!important;margin-left:auto!important;padding-right:2rem!important;padding-left:2rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.context-menu{position:absolute;z-index:1000;min-width:150px;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity));background-color:rgb(1 71 55 / var(--tw-bg-opacity));--tw-bg-opacity: .9;padding-top:.5rem;padding-bottom:.5rem;font-family:JetBrains Mono,Consolas,monospace;--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);--tw-shadow-color: rgb(14 159 110 / .5);--tw-shadow: var(--tw-shadow-colored)}.context-menu:is(.dark *){--tw-border-opacity: 1;border-color:rgb(49 196 141 / var(--tw-border-opacity));background-color:rgb(5 46 22 / var(--tw-bg-opacity));--tw-bg-opacity: .9;--tw-shadow-color: rgb(49 196 141 / .5);--tw-shadow: var(--tw-shadow-colored)}.context-menu:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-10;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: rgb(14 159 110 / .1) var(--tw-gradient-from-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(14 159 110 / .05) var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: transparent var(--tw-gradient-to-position);background-size:100% 1000px;opacity:.3;--tw-content: "";content:var(--tw-content)}.context-menu-item{cursor:pointer;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity));--tw-shadow-color: rgb(14 159 110 / .7);--tw-shadow: var(--tw-shadow-colored);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.context-menu-item: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));background-color:#0e9f6e33}.context-menu-item:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.context-menu-item:hover:is(.dark *){background-color:#31c48d33}.context-menu-item-icon{margin-right:.5rem;--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.context-menu-item-icon:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.context-menu-item:after{position:absolute;left:0;bottom:0;height:1px;width:100%;transform-origin:center;--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));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0E9F6E var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: transparent var(--tw-gradient-to-position);transition-property:transform;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);--tw-content: "";content:var(--tw-content)}.context-menu-item:is(.dark *):after{--tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #31C48D var(--tw-gradient-via-position), var(--tw-gradient-to)}.context-menu-item:hover:after{--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))}.setting-item{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 768px){.setting-item{flex-direction:row;align-items:center;gap:1rem}}.setting-label{flex-shrink:0;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))}.setting-label:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}@media (min-width: 768px){.setting-label{width:12rem}}.toggle-item{margin-top:.5rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.5rem;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(195 221 253 / var(--tw-border-opacity));padding-bottom:.5rem;padding-top:.75rem}.toggle-item:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 86 219 / var(--tw-border-opacity))}@media (min-width: 640px){.toggle-item{flex-direction:row;align-items:center}}.toggle-label{margin-bottom:0!important;margin-right:1rem;flex-grow:1;cursor:pointer;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))}.toggle-label:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.toggle-description{margin-top:.25rem;display:block;font-size:.75rem;line-height:1rem;font-weight:400;--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.toggle-description:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}input[type=range]::-webkit-slider-thumb{height:1.25rem;width:1.25rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / 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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}input[type=range]:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}input[type=range]::-webkit-slider-thumb{margin-top:-6px}input[type=range]::-moz-range-thumb{height:1.25rem;width:1.25rem;cursor:pointer;border-radius:9999px;border-style:none;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity));-moz-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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}input[type=range]:is(.dark *)::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}input[type=range]::-webkit-slider-runnable-track{height:.5rem;width:100%;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}input[type=range]:is(.dark *)::-webkit-slider-runnable-track{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}input[type=range]::-moz-range-track{height:.5rem;width:100%;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}input[type=range]:is(.dark *)::-moz-range-track{--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.btn-success{--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));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-success:hover{--tw-bg-opacity: 1;background-color:rgb(4 108 78 / var(--tw-bg-opacity))}.btn-success: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(132 225 188 / var(--tw-ring-opacity))}.btn-success:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 159 110 / var(--tw-bg-opacity))}.btn-success:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 122 85 / var(--tw-bg-opacity))}.btn-success:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity))}.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.25rem}.input-sm{font-size:.875rem;line-height:1.25rem;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-sm: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-sm: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-sm:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.range-input{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.range-input:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.range-input::-webkit-slider-thumb{height:1.25rem;width:1.25rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / 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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.range-input:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.range-input::-webkit-slider-thumb{margin-top:-6px}.range-input::-moz-range-thumb{height:1.25rem;width:1.25rem;cursor:pointer;border-radius:9999px;border-style:none;--tw-bg-opacity: 1;background-color:rgb(63 131 248 / var(--tw-bg-opacity));-moz-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-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.range-input:is(.dark *)::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(118 169 250 / var(--tw-bg-opacity))}.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{top:-.25rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-1\.5{bottom:.375rem}.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-0\.5{left:.125rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-20{left:5rem}.left-3{left:.75rem}.left-4{left:1rem}.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-0\.5{top:.125rem}.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}.z-\[1001\]{z-index:1001}.z-\[100\]{z-index:100}.z-\[51\]{z-index:51}.z-\[52\]{z-index:52}.z-\[60\]{z-index:60}.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-px{margin:-1px}.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-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.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-0{margin-bottom:0!important}.\!mb-1{margin-bottom:.25rem!important}.\!mt-0{margin-top:0!important}.-mb-px{margin-bottom:-1px}.-mr-1{margin-right:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-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-72{margin-left:18rem}.ml-\[calc\(0\.75rem\+0\.5rem\)\]{margin-left:1.25rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.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-40{height:10rem}.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-\[150px\]{height:150px}.h-\[200px\]{height:200px}.h-\[400px\]{height:400px}.h-\[70vh\]{height:70vh}.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-28{max-height:7rem}.max-h-32{max-height:8rem}.max-h-48{max-height:12rem}.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-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[100px\]{min-height:100px}.min-h-\[150px\]{min-height:150px}.min-h-\[2\.75rem\]{min-height:2.75rem}.min-h-\[200px\]{min-height:200px}.min-h-\[44px\]{min-height:44px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[calc\(100vh-5rem\)\]{min-height:calc(100vh - 5rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.\!w-auto{width:auto!important}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.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-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-44{width:11rem}.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-72{width:18rem}.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-\[95\%\]{width:95%}.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-\[100px\]{min-width:100px}.min-w-\[150px\]{min-width:150px}.min-w-\[24rem\]{min-width:24rem}.min-w-\[300px\]{min-width:300px}.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-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.\!flex-none{flex:none!important}.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,.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-2{--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))}.-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-0{--tw-translate-y: 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-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-14{--tw-translate-y: 3.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))}.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-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))}.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))}.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}.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))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.\!flex-col{flex-direction:column!important}.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!important}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.\!items-center{align-items:center!important}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.\!justify-start{justify-content:flex-start!important}.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-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.gap-y-5{row-gap:1.25rem}.gap-y-6{row-gap:1.5rem}.-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-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-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.375rem * var(--tw-space-x-reverse));margin-left:calc(.375rem * 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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.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-blue-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(195 221 253 / var(--tw-divide-opacity))}.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-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.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-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.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-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.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-\[3px\]{border-width:3px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.\!border-t-0{border-top-width:0px!important}.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-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-current{border-color:currentColor}.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-200\/30{border-color:#e5e7eb4d}.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-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 140 / 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-300{--tw-border-opacity: 1;border-color:rgb(248 180 180 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(249 128 128 / 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-l-red-500{--tw-border-opacity: 1;border-left-color:rgb(240 82 82 / 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\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.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-100\/50{background-color:#e1effe80}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.bg-blue-200\/70{background-color:#c3ddfdb3}.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-50\/50{background-color:#ebf5ff80}.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-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-50{--tw-bg-opacity: 1;background-color:rgb(246 245 255 / 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\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.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-50{--tw-bg-opacity: 1;background-color:rgb(253 253 234 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(194 120 3 / var(--tw-bg-opacity))}.bg-opacity-5{--tw-bg-opacity: .05}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-60{--tw-bg-opacity: .6}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-90{--tw-bg-opacity: .9}.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-blue-100{--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)}.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-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)}.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)}.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-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-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)}.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-500{fill:#3f83f8}.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-primary{fill:var(--color-primary)}.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}.stroke-current{stroke:currentColor}.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-1{padding:.25rem!important}.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}.\!py-0{padding-top:0!important;padding-bottom:0!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.\!pt-0{padding-top:0!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.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}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.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-extrabold{font-weight:800}.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-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.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-blue-100{--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}.text-blue-200{--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(118 169 250 / 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-blue-900{--tw-text-opacity: 1;color:rgb(35 56 118 / 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-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-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))}.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-blue-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(118 169 250 / var(--tw-placeholder-opacity))}.placeholder-blue-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(118 169 250 / var(--tw-placeholder-opacity))}.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-600{accent-color:#1C64F2}.accent-primary{accent-color:var(--color-primary)}.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-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.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-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-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-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity))}.ring-blue-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.ring-blue-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / 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-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 159 110 / 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-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.ring-yellow-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(194 120 3 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.ring-opacity-50{--tw-ring-opacity: .5}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-gray-800{--tw-ring-offset-color: #1F2937}.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)}.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-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.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-blue-900{--scrollbar-track: #233876 !important}.scrollbar-track-gray-200{--scrollbar-track: #E5E7EB !important}.scrollbar-track-transparent{--scrollbar-track: transparent !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-300{--scrollbar-thumb: #A4CAFE !important}.scrollbar-thumb-blue-700{--scrollbar-thumb: #1A56DB !important}.scrollbar-thumb-gray-300{--scrollbar-thumb: #D1D5DB !important}.scrollbar-thumb-gray-400{--scrollbar-thumb: #9CA3AF !important}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.bg-status-unknown{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-status-unknown:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}:root{--lollms-title: L🐠llMS;--falling-object: "";--activate-dropping-animation: 0;--lollms-welcome-short-message: Welcome to LoLLMS;--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.}.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}}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))}.chatbox-color{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.chatbox-color:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / 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-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}.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{border-radius:.75rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));padding:1.5rem;--tw-text-opacity: 1;color:rgb(30 66 159 / 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);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.app-card: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)}.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}.animated-progressbar-bg{position:relative;height:1.25rem;width:100%;overflow:hidden;border-radius:9999px;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: #DCD7FE var(--tw-gradient-to-position);--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)}.animated-progressbar-bg: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: #5521B5 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: #9061F9 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: #1C64F2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(28 100 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #7E3AF2 var(--tw-gradient-to-position)}.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(225 239 254 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(26 86 219 / 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(202 191 253 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(164 202 254 / 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))}.user-settings-panel>: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))}.user-settings-panel{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity));padding:1rem;--tw-text-opacity: 1;color:rgb(35 56 118 / 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)}.user-settings-panel:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(225 239 254 / var(--tw-text-opacity))}@media (min-width: 768px){.user-settings-panel{padding:1.5rem}}.folder-item-base{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;border-radius:.5rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.folder-item-base: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)}.folder-item-base{--tw-bg-opacity: 1;background-color:rgb(225 239 254 / var(--tw-bg-opacity))}.folder-item-base:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.folder-item-base:hover{--tw-bg-opacity: 1;background-color:rgb(195 221 253 / var(--tw-bg-opacity))}.folder-item-base:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 86 219 / var(--tw-bg-opacity))}.folder-item-base{border-width:1px}.folder-item-icon{margin-bottom:.5rem;height:2.5rem;width:2.5rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.group:hover .folder-item-icon{--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))}.folder-item-label{margin-top:.5rem;text-align:center;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(26 86 219 / var(--tw-text-opacity))}.folder-item-label:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.folder-item-personalities{--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.folder-item-personalities:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.folder-item-icon-personalities{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.folder-item-icon-personalities:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.folder-item-functions{--tw-border-opacity: 1;border-color:rgb(14 159 110 / var(--tw-border-opacity))}.folder-item-functions:is(.dark *){--tw-border-opacity: 1;border-color:rgb(49 196 141 / var(--tw-border-opacity))}.folder-item-icon-functions{--tw-text-opacity: 1;color:rgb(14 159 110 / var(--tw-text-opacity))}.folder-item-icon-functions:is(.dark *){--tw-text-opacity: 1;color:rgb(49 196 141 / var(--tw-text-opacity))}.folder-item-configs{--tw-border-opacity: 1;border-color:rgb(194 120 3 / var(--tw-border-opacity))}.folder-item-configs:is(.dark *){--tw-border-opacity: 1;border-color:rgb(227 160 8 / var(--tw-border-opacity))}.folder-item-icon-configs{--tw-text-opacity: 1;color:rgb(194 120 3 / var(--tw-text-opacity))}.folder-item-icon-configs:is(.dark *){--tw-text-opacity: 1;color:rgb(227 160 8 / var(--tw-text-opacity))}.folder-item-outputs{--tw-border-opacity: 1;border-color:rgb(144 97 249 / var(--tw-border-opacity))}.folder-item-outputs:is(.dark *){--tw-border-opacity: 1;border-color:rgb(172 148 250 / var(--tw-border-opacity))}.folder-item-icon-outputs{--tw-text-opacity: 1;color:rgb(144 97 249 / var(--tw-text-opacity))}.folder-item-icon-outputs:is(.dark *){--tw-text-opacity: 1;color:rgb(172 148 250 / var(--tw-text-opacity))}.folder-item-discussions{--tw-border-opacity: 1;border-color:rgb(240 82 82 / var(--tw-border-opacity))}.folder-item-discussions:is(.dark *){--tw-border-opacity: 1;border-color:rgb(249 128 128 / var(--tw-border-opacity))}.folder-item-icon-discussions{--tw-text-opacity: 1;color:rgb(240 82 82 / var(--tw-text-opacity))}.folder-item-icon-discussions:is(.dark *){--tw-text-opacity: 1;color:rgb(249 128 128 / var(--tw-text-opacity))}@keyframes matrix-rain{0%{background-position:0 0}to{background-position:0 1000px}}@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}}}.placeholder\:text-blue-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.placeholder\:text-blue-400::placeholder{--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.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}.group:hover .group-hover\:visible{visibility:visible}.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))}@keyframes pulse{50%{opacity:.5}}.group:hover .group-hover\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.group:hover .group-hover\:border-blue-500{--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-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\: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-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)}.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\:-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\: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-\[1\.03\]:hover{--tw-scale-x: 1.03;--tw-scale-y: 1.03;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) 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-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(164 202 254 / var(--tw-border-opacity))}.hover\:border-blue-400:hover{--tw-border-opacity: 1;border-color:rgb(118 169 250 / 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\:bg-bg-light-tone:hover{background-color:var(--color-bg-light-tone)}.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-200\/70:hover{background-color:#c3ddfdb3}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(235 245 255 / var(--tw-bg-opacity))}.hover\:bg-blue-50\/50:hover{background-color:#ebf5ff80}.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-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / 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-100:hover{--tw-bg-opacity: 1;background-color:rgb(222 247 236 / 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-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-transparent:hover{background-color:transparent}.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-opacity-80:hover{--tw-bg-opacity: .8}.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\: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-lime-200:hover{--tw-gradient-to: #d9f99d var(--tw-gradient-to-position)}.hover\:font-bold:hover{font-weight:700}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.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-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:rgb(5 122 85 / var(--tw-text-opacity))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(4 108 78 / 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-500:hover{--tw-text-opacity: 1;color:rgb(194 120 3 / 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\:opacity-80:hover{opacity:.8}.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-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\:ring-blue-500:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.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-primary:focus{border-color:var(--color-primary)}.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-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-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-1:focus{--tw-ring-offset-width: 1px}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-blue-100:focus{--tw-ring-offset-color: #E1EFFE}.focus\:hover\:text-center:hover:focus{text-align:center}.hover\:focus\:text-center:focus:hover{text-align:center}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.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}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-gray-600:hover:disabled{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.dark\:inline:is(.dark *){display:inline}.dark\:hidden:is(.dark *){display:none}.dark\:divide-blue-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 86 219 / var(--tw-divide-opacity))}.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-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.dark\:border-blue-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-opacity))}.dark\:border-blue-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 100 242 / 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-orange-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(208 56 1 / 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-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(224 36 36 / var(--tw-border-opacity))}.dark\:border-red-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(200 30 30 / 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-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(118 169 250 / 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-700\/50:is(.dark *){background-color:#1a56db80}.dark\:bg-blue-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / var(--tw-bg-opacity))}.dark\:bg-blue-800\/50:is(.dark *){background-color:#1e429f80}.dark\:bg-blue-800\/60:is(.dark *){background-color:#1e429f99}.dark\:bg-blue-800\/70:is(.dark *){background-color:#1e429fb3}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 56 118 / var(--tw-bg-opacity))}.dark\:bg-blue-900\/30:is(.dark *){background-color:#2338764d}.dark\:bg-blue-900\/50:is(.dark *){background-color:#23387680}.dark\:bg-blue-900\/70:is(.dark *){background-color:#233876b3}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.dark\:bg-gray-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(156 163 175 / 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-800\/70:is(.dark *){background-color:#1f2937b3}.dark\:bg-gray-800\/80:is(.dark *){background-color:#1f2937cc}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.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-orange-900\/30:is(.dark *){background-color:#771d1d4d}.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-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(200 30 30 / 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:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(119 29 29 / var(--tw-bg-opacity))}.dark\:bg-red-900\/20:is(.dark *){background-color:#771d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#771d1d4d}.dark\:bg-yellow-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(252 233 106 / var(--tw-bg-opacity))}.dark\:bg-opacity-50:is(.dark *){--tw-bg-opacity: .5}.dark\:bg-opacity-70:is(.dark *){--tw-bg-opacity: .7}.dark\:bg-opacity-80:is(.dark *){--tw-bg-opacity: .8}.dark\:from-blue-900:is(.dark *){--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)}.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\:to-purple-400:is(.dark *){--tw-gradient-to: #AC94FA var(--tw-gradient-to-position)}.dark\:fill-blue-300:is(.dark *){fill:#a4cafe}.dark\:fill-blue-400:is(.dark *){fill:#76a9fa}.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-100:is(.dark *){--tw-text-opacity: 1;color:rgb(225 239 254 / 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-300:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / 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-600:is(.dark *){--tw-text-opacity: 1;color:rgb(28 100 242 / 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-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-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(255 138 76 / 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-300:is(.dark *){--tw-text-opacity: 1;color:rgb(248 180 180 / 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-500\/90:is(.dark *){color:#f05252e6}.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-400:is(.dark *){--tw-text-opacity: 1;color:rgb(227 160 8 / 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-blue-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(63 131 248 / var(--tw-placeholder-opacity))}.dark\:placeholder-blue-500:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(63 131 248 / var(--tw-placeholder-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-blue-600:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity))}.dark\:ring-gray-500:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark\:ring-gray-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / 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-blue-900:is(.dark *){--tw-ring-offset-color: #233876}.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-blue-900:is(.dark *){--scrollbar-track: #233876 !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-blue-700:is(.dark *){--scrollbar-thumb: #1A56DB !important}.dark\:scrollbar-thumb-gray-500:is(.dark *){--scrollbar-thumb: #6B7280 !important}.dark\:scrollbar-thumb-gray-600:is(.dark *){--scrollbar-thumb: #4B5563 !important}.dark\:placeholder\:text-blue-500:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.dark\:placeholder\:text-blue-500:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(63 131 248 / var(--tw-text-opacity))}.group:hover .dark\:group-hover\:border-blue-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.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-400:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.dark\:hover\:border-blue-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 131 248 / var(--tw-border-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\: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-600\/50:hover:is(.dark *){background-color:#1c64f280}.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-700\/50:hover:is(.dark *){background-color:#1a56db80}.dark\:hover\:bg-blue-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 66 159 / 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-blue-900\/20:hover:is(.dark *){background-color:#23387633}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#2338764d}.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-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.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-green-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(1 71 55 / 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-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(155 28 28 / 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-red-900\/50:hover:is(.dark *){background-color:#771d1d80}.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)}.dark\:hover\:bg-opacity-80:hover:is(.dark *){--tw-bg-opacity: .8}.dark\:hover\:text-blue-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(195 221 253 / var(--tw-text-opacity))}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(164 202 254 / var(--tw-text-opacity))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(118 169 250 / var(--tw-text-opacity))}.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-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-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(188 240 218 / var(--tw-text-opacity))}.dark\:hover\:text-red-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(251 213 213 / 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-red-500:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(240 82 82 / 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\:text-yellow-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(227 160 8 / var(--tw-text-opacity))}.dark\:hover\:ring-blue-400:hover:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity))}.dark\:hover\:scrollbar-thumb-primary:is(.dark *){--scrollbar-thumb-hover: var(--color-primary) !important}.dark\:focus\:border-blue-400:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(118 169 250 / var(--tw-border-opacity))}.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-400:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(118 169 250 / var(--tw-ring-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-600:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(224 36 36 / 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-blue-800:focus:is(.dark *){--tw-ring-offset-color: #1E429F}.dark\:focus\:ring-offset-gray-700:focus:is(.dark *){--tw-ring-offset-color: #374151}.dark\:focus\:ring-offset-gray-800:focus:is(.dark *){--tw-ring-offset-color: #1F2937}.dark\:focus\:ring-offset-gray-900:focus:is(.dark *){--tw-ring-offset-color: #111827}.dark\:focus-visible\:ring-offset-gray-700\/50:focus-visible:is(.dark *){--tw-ring-offset-color: rgb(55 65 81 / .5)}.dark\:focus-visible\:ring-offset-gray-800:focus-visible:is(.dark *){--tw-ring-offset-color: #1F2937}@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\/3{width:33.333333%!important}.sm\:w-1\/4{width:25%}.sm\:w-10{width:2.5rem}.sm\:w-36{width:9rem}.sm\:w-6{width:1.5rem}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:.5rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:p-10{padding:2.5rem}.sm\:p-6{padding:1.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-sm{font-size:.875rem;line-height:1.25rem}.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\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:ml-80{margin-left:20rem}.md\:mr-6{margin-right:1.5rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:\!w-1\/3{width:33.333333%!important}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-32{width:8rem}.md\:w-48{width:12rem}.md\:w-80{width:20rem}.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-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[minmax\(150px\,25\%\)_1fr\]{grid-template-columns:minmax(150px,25%) 1fr}.md\:\!flex-row{flex-direction:row!important}.md\:flex-row{flex-direction:row}.md\:\!items-center{align-items:center!important}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:1rem}.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-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\: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\:p-8{padding:2rem}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.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\:w-1\/4{width:25%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.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-DBWmPIc8.js b/web/dist/assets/index-n0MHHb8e.js similarity index 95% rename from web/dist/assets/index-DBWmPIc8.js rename to web/dist/assets/index-n0MHHb8e.js index 2a32ab94..5ce45782 100644 --- a/web/dist/assets/index-DBWmPIc8.js +++ b/web/dist/assets/index-n0MHHb8e.js @@ -23,7 +23,7 @@ var UH=Object.defineProperty;var qH=(t,e,n)=>e in t?UH(t,e,{enumerable:!0,config `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const o=new this(e);return n.forEach(r=>o.set(r)),o}static accessor(e){const o=(this[Um]=this[Um]={accessors:{}}).accessors,r=this.prototype;function i(s){const a=Xl(s);o[a]||(uF(r,s),o[a]=!0)}return ge.isArray(e)?e.forEach(i):i(e),this}};Ur.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ge.reduceDescriptors(Ur.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(o){this[n]=o}}});ge.freezeMethods(Ur);function V5(t,e){const n=this||Uc,o=e||n,r=Ur.from(o.headers);let i=o.data;return ge.forEach(t,function(a){i=a.call(n,i,r.normalize(),e?e.status:void 0)}),r.normalize(),i}function nN(t){return!!(t&&t.__CANCEL__)}function Hl(t,e,n){mt.call(this,t??"canceled",mt.ERR_CANCELED,e,n),this.name="CanceledError"}ge.inherits(Hl,mt,{__CANCEL__:!0});function rN(t,e,n){const o=n.config.validateStatus;!n.status||!o||o(n.status)?t(n):e(new mt("Request failed with status code "+n.status,[mt.ERR_BAD_REQUEST,mt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function dF(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function TF(t,e){t=t||10;const n=new Array(t),o=new Array(t);let r=0,i=0,s;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),u=o[i];s||(s=c),n[r]=l,o[r]=c;let d=i,f=0;for(;d!==r;)f+=n[d++],d=d%t;if(r=(r+1)%t,r===i&&(i=(i+1)%t),c-s{n=u,r=null,i&&(clearTimeout(i),i=null),t.apply(null,c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=o?s(c,u):(r=c,i||(i=setTimeout(()=>{i=null,s(r)},o-d)))},()=>r&&s(r)]}const g0=(t,e,n=3)=>{let o=0;const r=TF(50,250);return fF(i=>{const s=i.loaded,a=i.lengthComputable?i.total:void 0,l=s-o,c=r(l),u=s<=a;o=s;const d={loaded:s,total:a,progress:a?s/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-s)/c:void 0,event:i,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},qm=(t,e)=>{const n=t!=null;return[o=>e[0]({lengthComputable:n,total:t,loaded:o}),e[1]]},Gm=t=>(...e)=>ge.asap(()=>t(...e)),pF=ur.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,ur.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(ur.origin),ur.navigator&&/(msie|trident)/i.test(ur.navigator.userAgent)):()=>!0,hF=ur.hasStandardBrowserEnv?{write(t,e,n,o,r,i){const s=[t+"="+encodeURIComponent(e)];ge.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),ge.isString(o)&&s.push("path="+o),ge.isString(r)&&s.push("domain="+r),i===!0&&s.push("secure"),document.cookie=s.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function mF(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function gF(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function iN(t,e,n){let o=!mF(e);return t&&o||n==!1?gF(t,e):e}const jm=t=>t instanceof Ur?{...t}:t;function M2(t,e){e=e||{};const n={};function o(c,u,d,f){return ge.isPlainObject(c)&&ge.isPlainObject(u)?ge.merge.call({caseless:f},c,u):ge.isPlainObject(u)?ge.merge({},u):ge.isArray(u)?u.slice():u}function r(c,u,d,f){if(ge.isUndefined(u)){if(!ge.isUndefined(c))return o(void 0,c,d,f)}else return o(c,u,d,f)}function i(c,u){if(!ge.isUndefined(u))return o(void 0,u)}function s(c,u){if(ge.isUndefined(u)){if(!ge.isUndefined(c))return o(void 0,c)}else return o(void 0,u)}function a(c,u,d){if(d in e)return o(c,u);if(d in t)return o(void 0,c)}const l={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(c,u,d)=>r(jm(c),jm(u),d,!0)};return ge.forEach(Object.keys(Object.assign({},t,e)),function(u){const d=l[u]||r,f=d(t[u],e[u],u);ge.isUndefined(f)&&d!==a||(n[u]=f)}),n}const oN=t=>{const e=M2({},t);let{data:n,withXSRFToken:o,xsrfHeaderName:r,xsrfCookieName:i,headers:s,auth:a}=e;e.headers=s=Ur.from(s),e.url=JR(iN(e.baseURL,e.url),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):"")));let l;if(ge.isFormData(n)){if(ur.hasStandardBrowserEnv||ur.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((l=s.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];s.setContentType([c||"multipart/form-data",...u].join("; "))}}if(ur.hasStandardBrowserEnv&&(o&&ge.isFunction(o)&&(o=o(e)),o||o!==!1&&pF(e.url))){const c=r&&i&&hF.read(i);c&&s.set(r,c)}return e},_F=typeof XMLHttpRequest<"u",QF=_F&&function(t){return new Promise(function(n,o){const r=oN(t);let i=r.data;const s=Ur.from(r.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=r,u,d,f,T,h;function g(){T&&T(),h&&h(),r.cancelToken&&r.cancelToken.unsubscribe(u),r.signal&&r.signal.removeEventListener("abort",u)}let _=new XMLHttpRequest;_.open(r.method.toUpperCase(),r.url,!0),_.timeout=r.timeout;function m(){if(!_)return;const v=Ur.from("getAllResponseHeaders"in _&&_.getAllResponseHeaders()),y={data:!a||a==="text"||a==="json"?_.responseText:_.response,status:_.status,statusText:_.statusText,headers:v,config:t,request:_};rN(function(x){n(x),g()},function(x){o(x),g()},y),_=null}"onloadend"in _?_.onloadend=m:_.onreadystatechange=function(){!_||_.readyState!==4||_.status===0&&!(_.responseURL&&_.responseURL.indexOf("file:")===0)||setTimeout(m)},_.onabort=function(){_&&(o(new mt("Request aborted",mt.ECONNABORTED,t,_)),_=null)},_.onerror=function(){o(new mt("Network Error",mt.ERR_NETWORK,t,_)),_=null},_.ontimeout=function(){let b=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const y=r.transitional||eN;r.timeoutErrorMessage&&(b=r.timeoutErrorMessage),o(new mt(b,y.clarifyTimeoutError?mt.ETIMEDOUT:mt.ECONNABORTED,t,_)),_=null},i===void 0&&s.setContentType(null),"setRequestHeader"in _&&ge.forEach(s.toJSON(),function(b,y){_.setRequestHeader(y,b)}),ge.isUndefined(r.withCredentials)||(_.withCredentials=!!r.withCredentials),a&&a!=="json"&&(_.responseType=r.responseType),c&&([f,h]=g0(c,!0),_.addEventListener("progress",f)),l&&_.upload&&([d,T]=g0(l),_.upload.addEventListener("progress",d),_.upload.addEventListener("loadend",T)),(r.cancelToken||r.signal)&&(u=v=>{_&&(o(!v||v.type?new Hl(null,t,_):v),_.abort(),_=null)},r.cancelToken&&r.cancelToken.subscribe(u),r.signal&&(r.signal.aborted?u():r.signal.addEventListener("abort",u)));const Q=dF(r.url);if(Q&&ur.protocols.indexOf(Q)===-1){o(new mt("Unsupported protocol "+Q+":",mt.ERR_BAD_REQUEST,t));return}_.send(i||null)})},vF=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let o=new AbortController,r;const i=function(c){if(!r){r=!0,a();const u=c instanceof Error?c:this.reason;o.abort(u instanceof mt?u:new Hl(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,i(new mt(`timeout ${e} of ms exceeded`,mt.ETIMEDOUT))},e);const a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),t=null)};t.forEach(c=>c.addEventListener("abort",i));const{signal:l}=o;return l.unsubscribe=()=>ge.asap(a),l}},yF=function*(t,e){let n=t.byteLength;if(n{const r=bF(t,e);let i=0,s,a=l=>{s||(s=!0,o&&o(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await r.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let f=i+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),r.return()}},{highWaterMark:2})},s5=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",sN=s5&&typeof ReadableStream=="function",SF=s5&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),aN=(t,...e)=>{try{return!!t(...e)}catch{return!1}},xF=sN&&aN(()=>{let t=!1;const e=new Request(ur.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Ym=64*1024,mf=sN&&aN(()=>ge.isReadableStream(new Response("").body)),_0={stream:mf&&(t=>t.body)};s5&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!_0[e]&&(_0[e]=ge.isFunction(t[e])?n=>n[e]():(n,o)=>{throw new mt(`Response type '${e}' is not supported`,mt.ERR_NOT_SUPPORT,o)})})})(new Response);const LF=async t=>{if(t==null)return 0;if(ge.isBlob(t))return t.size;if(ge.isSpecCompliantForm(t))return(await new Request(ur.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(ge.isArrayBufferView(t)||ge.isArrayBuffer(t))return t.byteLength;if(ge.isURLSearchParams(t)&&(t=t+""),ge.isString(t))return(await SF(t)).byteLength},CF=async(t,e)=>{const n=ge.toFiniteNumber(t.getContentLength());return n??LF(e)},AF=s5&&(async t=>{let{url:e,method:n,data:o,signal:r,cancelToken:i,timeout:s,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=oN(t);c=c?(c+"").toLowerCase():"text";let T=vF([r,i&&i.toAbortSignal()],s),h;const g=T&&T.unsubscribe&&(()=>{T.unsubscribe()});let _;try{if(l&&xF&&n!=="get"&&n!=="head"&&(_=await CF(u,o))!==0){let y=new Request(e,{method:"POST",body:o,duplex:"half"}),E;if(ge.isFormData(o)&&(E=y.headers.get("content-type"))&&u.setContentType(E),y.body){const[x,L]=qm(_,g0(Gm(l)));o=zm(y.body,Ym,x,L)}}ge.isString(d)||(d=d?"include":"omit");const m="credentials"in Request.prototype;h=new Request(e,{...f,signal:T,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:o,duplex:"half",credentials:m?d:void 0});let Q=await fetch(h);const v=mf&&(c==="stream"||c==="response");if(mf&&(a||v&&g)){const y={};["status","statusText","headers"].forEach(C=>{y[C]=Q[C]});const E=ge.toFiniteNumber(Q.headers.get("content-length")),[x,L]=a&&qm(E,g0(Gm(a),!0))||[];Q=new Response(zm(Q.body,Ym,x,()=>{L&&L(),g&&g()}),y)}c=c||"text";let b=await _0[ge.findKey(_0,c)||"text"](Q,t);return!v&&g&&g(),await new Promise((y,E)=>{rN(y,E,{data:b,headers:Ur.from(Q.headers),status:Q.status,statusText:Q.statusText,config:t,request:h})})}catch(m){throw g&&g(),m&&m.name==="TypeError"&&/fetch/i.test(m.message)?Object.assign(new mt("Network Error",mt.ERR_NETWORK,t,h),{cause:m.cause||m}):mt.from(m,m&&m.code,t,h)}}),gf={http:UB,xhr:QF,fetch:AF};ge.forEach(gf,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const Wm=t=>`- ${t}`,wF=t=>ge.isFunction(t)||t===null||t===!1,lN={getAdapter:t=>{t=ge.isArray(t)?t:[t];const{length:e}=t;let n,o;const r={};for(let i=0;i`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let s=e?i.length>1?`since : `+i.map(Wm).join(` `):" "+Wm(i[0]):"as no adapter specified";throw new mt("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return o},adapters:gf};function B5(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Hl(null,t)}function Km(t){return B5(t),t.headers=Ur.from(t.headers),t.data=V5.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),lN.getAdapter(t.adapter||Uc.adapter)(t).then(function(o){return B5(t),o.data=V5.call(t,t.transformResponse,o),o.headers=Ur.from(o.headers),o},function(o){return nN(o)||(B5(t),o&&o.response&&(o.response.data=V5.call(t,t.transformResponse,o.response),o.response.headers=Ur.from(o.response.headers))),Promise.reject(o)})}const cN="1.8.2",a5={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{a5[t]=function(o){return typeof o===t||"a"+(e<1?"n ":" ")+t}});const Zm={};a5.transitional=function(e,n,o){function r(i,s){return"[Axios v"+cN+"] Transitional option '"+i+"'"+s+(o?". "+o:"")}return(i,s,a)=>{if(e===!1)throw new mt(r(s," has been removed"+(n?" in "+n:"")),mt.ERR_DEPRECATED);return n&&!Zm[s]&&(Zm[s]=!0,console.warn(r(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(i,s,a):!0}};a5.spelling=function(e){return(n,o)=>(console.warn(`${o} is likely a misspelling of ${e}`),!0)};function OF(t,e,n){if(typeof t!="object")throw new mt("options must be an object",mt.ERR_BAD_OPTION_VALUE);const o=Object.keys(t);let r=o.length;for(;r-- >0;){const i=o[r],s=e[i];if(s){const a=t[i],l=a===void 0||s(a,i,t);if(l!==!0)throw new mt("option "+i+" must be "+l,mt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new mt("Unknown option "+i,mt.ERR_BAD_OPTION)}}const j6={assertOptions:OF,validators:a5},jo=j6.validators;let L2=class{constructor(e){this.defaults=e,this.interceptors={request:new Fm,response:new Fm}}async request(e,n){try{return await this._request(e,n)}catch(o){if(o instanceof Error){let r={};Error.captureStackTrace?Error.captureStackTrace(r):r=new Error;const i=r.stack?r.stack.replace(/^.+\n/,""):"";try{o.stack?i&&!String(o.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(o.stack+=` -`+i):o.stack=i}catch{}}throw o}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=M2(this.defaults,n);const{transitional:o,paramsSerializer:r,headers:i}=n;o!==void 0&&j6.assertOptions(o,{silentJSONParsing:jo.transitional(jo.boolean),forcedJSONParsing:jo.transitional(jo.boolean),clarifyTimeoutError:jo.transitional(jo.boolean)},!1),r!=null&&(ge.isFunction(r)?n.paramsSerializer={serialize:r}:j6.assertOptions(r,{encode:jo.function,serialize:jo.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),j6.assertOptions(n,{baseUrl:jo.spelling("baseURL"),withXsrfToken:jo.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=i&&ge.merge(i.common,i[n.method]);i&&ge.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=Ur.concat(s,i);const a=[];let l=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(l=l&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});const c=[];this.interceptors.response.forEach(function(g){c.push(g.fulfilled,g.rejected)});let u,d=0,f;if(!l){const h=[Km.bind(this),void 0];for(h.unshift.apply(h,a),h.push.apply(h,c),f=h.length,u=Promise.resolve(n);d{if(!o._listeners)return;let i=o._listeners.length;for(;i-- >0;)o._listeners[i](r);o._listeners=null}),this.promise.then=r=>{let i;const s=new Promise(a=>{o.subscribe(a),i=a}).then(r);return s.cancel=function(){o.unsubscribe(i)},s},e(function(i,s,a){o.reason||(o.reason=new Hl(i,s,a),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=o=>{e.abort(o)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new uN(function(r){e=r}),cancel:e}}};function RF(t){return function(n){return t.apply(null,n)}}function NF(t){return ge.isObject(t)&&t.isAxiosError===!0}const _f={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_f).forEach(([t,e])=>{_f[e]=t});function dN(t){const e=new L2(t),n=FR(L2.prototype.request,e);return ge.extend(n,L2.prototype,e,{allOwnKeys:!0}),ge.extend(n,e,null,{allOwnKeys:!0}),n.create=function(r){return dN(M2(t,r))},n}const fe=dN(Uc);fe.Axios=L2;fe.CanceledError=Hl;fe.CancelToken=MF;fe.isCancel=nN;fe.VERSION=cN;fe.toFormData=o5;fe.AxiosError=mt;fe.Cancel=fe.CanceledError;fe.all=function(e){return Promise.all(e)};fe.spread=RF;fe.isAxiosError=NF;fe.mergeConfig=M2;fe.AxiosHeaders=Ur;fe.formToJSON=t=>tN(ge.isHTMLForm(t)?new FormData(t):t);fe.getAdapter=lN.getAdapter;fe.HttpStatusCode=_f;fe.default=fe;const{Axios:eZn,AxiosError:tZn,CanceledError:nZn,isCancel:rZn,CancelToken:iZn,VERSION:oZn,all:sZn,Cancel:aZn,isAxiosError:lZn,spread:cZn,toFormData:uZn,AxiosHeaders:dZn,HttpStatusCode:TZn,formToJSON:fZn,getAdapter:pZn,mergeConfig:hZn}=fe;/*! +`+i):o.stack=i}catch{}}throw o}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=M2(this.defaults,n);const{transitional:o,paramsSerializer:r,headers:i}=n;o!==void 0&&j6.assertOptions(o,{silentJSONParsing:jo.transitional(jo.boolean),forcedJSONParsing:jo.transitional(jo.boolean),clarifyTimeoutError:jo.transitional(jo.boolean)},!1),r!=null&&(ge.isFunction(r)?n.paramsSerializer={serialize:r}:j6.assertOptions(r,{encode:jo.function,serialize:jo.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),j6.assertOptions(n,{baseUrl:jo.spelling("baseURL"),withXsrfToken:jo.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=i&&ge.merge(i.common,i[n.method]);i&&ge.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=Ur.concat(s,i);const a=[];let l=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(l=l&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});const c=[];this.interceptors.response.forEach(function(g){c.push(g.fulfilled,g.rejected)});let u,d=0,f;if(!l){const h=[Km.bind(this),void 0];for(h.unshift.apply(h,a),h.push.apply(h,c),f=h.length,u=Promise.resolve(n);d{if(!o._listeners)return;let i=o._listeners.length;for(;i-- >0;)o._listeners[i](r);o._listeners=null}),this.promise.then=r=>{let i;const s=new Promise(a=>{o.subscribe(a),i=a}).then(r);return s.cancel=function(){o.unsubscribe(i)},s},e(function(i,s,a){o.reason||(o.reason=new Hl(i,s,a),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=o=>{e.abort(o)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new uN(function(r){e=r}),cancel:e}}};function RF(t){return function(n){return t.apply(null,n)}}function NF(t){return ge.isObject(t)&&t.isAxiosError===!0}const _f={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_f).forEach(([t,e])=>{_f[e]=t});function dN(t){const e=new L2(t),n=FR(L2.prototype.request,e);return ge.extend(n,L2.prototype,e,{allOwnKeys:!0}),ge.extend(n,e,null,{allOwnKeys:!0}),n.create=function(r){return dN(M2(t,r))},n}const fe=dN(Uc);fe.Axios=L2;fe.CanceledError=Hl;fe.CancelToken=MF;fe.isCancel=nN;fe.VERSION=cN;fe.toFormData=o5;fe.AxiosError=mt;fe.Cancel=fe.CanceledError;fe.all=function(e){return Promise.all(e)};fe.spread=RF;fe.isAxiosError=NF;fe.mergeConfig=M2;fe.AxiosHeaders=Ur;fe.formToJSON=t=>tN(ge.isHTMLForm(t)?new FormData(t):t);fe.getAdapter=lN.getAdapter;fe.HttpStatusCode=_f;fe.default=fe;const{Axios:tZn,AxiosError:nZn,CanceledError:rZn,isCancel:iZn,CancelToken:oZn,VERSION:sZn,all:aZn,Cancel:lZn,isAxiosError:cZn,spread:uZn,toFormData:dZn,AxiosHeaders:TZn,HttpStatusCode:fZn,formToJSON:pZn,getAdapter:hZn,mergeConfig:mZn}=fe;/*! * vue-router v4.4.5 * (c) 2024 Eduardo San Martin Morote * @license MIT @@ -212,7 +212,7 @@ Please report this to https://github.com/markedjs/marked.`,e){const r="

An err `);return Q}return o},jT}var zT,cO;function pyn(){if(cO)return zT;cO=1;var t=dyn(),e=fyn(),n=e(function(r,i){return t(r,{xmlMode:i&&i.xmlMode},o,[i])}),o=function(r,i){return n.juiceDocument(r,i)};return n.inlineContent=function(r,i,s){return t(r,{xmlMode:s&&s.xmlMode},n.inlineDocument,[i,s])},zT=n,zT}var rc,uO;function hyn(){if(uO)return rc;uO=1;var t=rc&&rc.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};const e=Pp(),n=B1t(),o=HD(),r=z2t(),i=llt(),s=s3t(),a=u3t(),l=t(pyn());function c(h,g,_){const m=(0,r.liteAdaptor)(),Q=(0,i.RegisterHTMLHandler)(m);(0,a.AssistiveMmlHandler)(Q);const v=e.mathjax.document(h,g),b=m.outerHTML(v.convert(h,_)),y=m.outerHTML(g.OutputJax.styleSheet(v));return(0,l.default)(b+y)}function u(h,g){let _=h.posMax,m=!0,Q=!0;const v=g>0?h.src.charCodeAt(g-1):-1,b=g+1<=_?h.src.charCodeAt(g+1):-1;return(v===32||v===9||b>=48&&b<=57)&&(Q=!1),(b===32||b===9)&&(m=!1),{can_open:m,can_close:Q}}function d(h,g){if(h.src[h.pos]!=="$")return!1;let _=u(h,h.pos);if(!_.can_open)return g||(h.pending+="$"),h.pos+=1,!0;const m=h.pos+1;let Q=m;for(;(Q=h.src.indexOf("$",Q))!==-1;){let v=Q-1;for(;h.src[v]==="\\";)v-=1;if((Q-v)%2==1)break;Q+=1}if(Q===-1)return g||(h.pending+="$"),h.pos=m,!0;if(Q-m===0)return g||(h.pending+="$$"),h.pos=m+1,!0;if(_=u(h,Q),!_.can_close)return g||(h.pending+="$"),h.pos=m,!0;if(!g){const v=h.push("math_inline","math",0);v.markup="$",v.content=h.src.slice(m,Q)}return h.pos=Q+1,!0}function f(h,g,_,m){let Q,v,b=!1,y=h.bMarks[g]+h.tShift[g],E=h.eMarks[g],x="";if(y+2>E||h.src.slice(y,y+2)!=="$$")return!1;y+=2;let L=h.src.slice(y,E);if(m)return!0;for(L.trim().slice(-2)==="$$"&&(L=L.trim().slice(0,-2),b=!0),Q=g;!b&&(Q++,!(Q>=_||(y=h.bMarks[Q]+h.tShift[Q],E=h.eMarks[Q],y/g,">").replace(/"/g,""").replace(/'/g,"'")}const gyn={name:"MarkdownRenderer",props:{host:{type:String,required:!1,default:"http://localhost:9600"},client_id:{type:String,required:!0},markdownText:{type:String,required:!0},discussion_id:{type:[String,Number],default:"0",required:!1},message_id:{value:"0",type:[String,Number],required:!1}},components:{CodeBlock:$st,ThinkingBlock:R1t},setup(t){function e(a,l){for(let c=l;c"||u===""||u===""||u==="")return{line:c,tag:u}}return null}const n=(a,l,c,u)=>{let d=a.bMarks[l]+a.tShift[l],f=a.eMarks[l],T=a.src.slice(d,f).trim();if(T===""||T===""){let h=T,g=h.replace("<",""||h.tag==="")){let g=h.tag,_=g===""?"":"",m=[];for(let v=l;v{const c=l&&G1.getLanguage(l)?l:"plaintext";return G1.highlight(c,a).value}}).use(Oit).use(rl).use(kit,{figcaption:!0}).use(Bit);o.renderer.rules.thinking_open=()=>'

',o.renderer.rules.thinking_content=(a,l)=>`
${o.utils.escapeHtml(a[l].content)}
`,o.renderer.rules.thinking_close=()=>"
",o.block.ruler.before("fence","thinking",n);const r=ke([]),i=()=>{if(t.markdownText){let a=o.parse(t.markdownText,{}),l=[];r.value=[];for(let c=0;c0&&(r.value.push({type:"html",html:o.renderer.render(l,o.options,{})}),l=[]);const d=a[c+1];d&&d.type==="thinking_content"&&r.value.push({type:"thinking",content:d.content,is_done:d.is_done}),c+=2}else u.type==="fence"?(l.length>0&&(r.value.push({type:"html",html:o.renderer.render(l,o.options,{})}),l=[]),r.value.push({type:"code",language:myn(u.info),code:u.content})):l.push(u)}l.length>0&&r.value.push({type:"html",html:o.renderer.render(l,o.options,{})}),be(()=>{Le.replace(),window.MathJax&&window.MathJax.typesetPromise()})}else r.value=[]},s=(a,l)=>{r.value[a].code=l};return vn(()=>t.markdownText,i),hr(()=>{i()}),{markdownItems:r,updateCode:s}}},_yn={class:"break-all container w-full"},Qyn={ref:"mdRender",class:"markdown-content"},vyn=["innerHTML"];function yyn(t,e,n,o,r,i){const s=We("code-block"),a=We("thinking-block");return N(),H("div",_yn,[S("div",Qyn,[(N(!0),H(Ae,null,Ue(o.markdownItems,(l,c)=>(N(),H("div",{key:c},[l.type==="code"?(N(),it(s,{key:0,host:n.host,language:l.language,code:l.code,discussion_id:n.discussion_id,message_id:n.message_id,client_id:n.client_id,onUpdateCode:u=>o.updateCode(c,u)},null,8,["host","language","code","discussion_id","message_id","client_id","onUpdateCode"])):Z("",!0),l.type==="thinking"?(N(),it(a,{key:1,content:l.content,"is-done":l.is_done},null,8,["content","is-done"])):(N(),H("div",{key:2,innerHTML:l.html},null,8,vyn))]))),128))],512)])}const Q5=ze(gyn,[["render",yyn],["__scopeId","data-v-3ade7b33"]]),byn={data(){return{show:!1,has_button:!0,message:""}},components:{MarkdownRenderer:Q5},methods:{hide(){this.show=!1,this.$emit("ok")},showMessage(t){this.message=t,this.has_button=!0,this.show=!0},showBlockingMessage(t){this.message=t,this.has_button=!1,this.show=!0},updateMessage(t){this.message=t,this.show=!0},hideMessage(){this.show=!1}}},Eyn={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50 z-50"},Syn={class:"pl-10 pr-10 bg-bg-light dark:bg-bg-dark p-8 rounded-lg shadow-lg"},xyn={class:"container max-h-500 overflow-y-auto"},Lyn={class:"text-lg font-medium"},Cyn={class:"mt-4 flex justify-center"},Ayn={key:1,"aria-hidden":"true",class:"w-6 h-6 animate-spin fill-secondary",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function wyn(t,e,n,o,r,i){const s=We("MarkdownRenderer");return r.show?(N(),H("div",Eyn,[S("div",Syn,[S("div",xyn,[S("div",Lyn,[ne(s,{ref:"mdRender",host:"","markdown-text":r.message,message_id:0,discussion_id:0},null,8,["markdown-text"])])]),S("div",Cyn,[r.has_button?(N(),H("button",{key:0,onClick:e[0]||(e[0]=(...a)=>i.hide&&i.hide(...a)),class:"bg-primary hover:bg-primary-light active:scale-95 duration-150 text-white px-4 py-2 rounded-lg shadow-lg hover:bg-secondary-dark"}," OK ")):Z("",!0),r.has_button?Z("",!0):(N(),H("svg",Ayn,e[1]||(e[1]=[S("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"},null,-1),S("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"},null,-1)])))])])])):Z("",!0)}const Oyn=ze(byn,[["render",wyn]]),Myn={props:{progress:{type:Number,required:!0}}},Ryn={class:"progress-bar-container"};function Nyn(t,e,n,o,r,i){return N(),H("div",Ryn,[S("div",{class:"progress-bar",style:Jt({width:`${n.progress}%`})},null,4)])}const sh=ze(Myn,[["render",Nyn],["__scopeId","data-v-ae2d8fdf"]]),Dyn={data(){return{show:!1,prompt:"",inputText:""}},methods:{showPanel(){this.show=!0},ok(){this.show=!1,this.$emit("ok",this.inputText)},cancel(){this.show=!1,this.inputText=""}},props:{promptText:{type:String,required:!0}},watch:{promptText(t){this.prompt=t}}},Iyn={key:0,class:"fixed top-0 left-0 w-full h-full flex justify-center items-center bg-black bg-opacity-50"},kyn={class:"bg-white p-8 rounded"},Hyn={class:"text-xl font-bold mb-4"};function Pyn(t,e,n,o,r,i){return N(),H("div",null,[r.show?(N(),H("div",Iyn,[S("div",kyn,[S("h2",Hyn,J(n.promptText),1),Ce(S("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=s=>r.inputText=s),class:"border border-gray-300 px-4 py-2 rounded mb-4"},null,512),[[Je,r.inputText]]),S("button",{onClick:e[1]||(e[1]=(...s)=>i.ok&&i.ok(...s)),class:"bg-blue-500 text-white px-4 py-2 rounded mr-2"},"OK"),S("button",{onClick:e[2]||(e[2]=(...s)=>i.cancel&&i.cancel(...s)),class:"bg-gray-500 text-white px-4 py-2 rounded"},"Cancel")])])):Z("",!0)])}const $yn=ze(Dyn,[["render",Pyn]]),Vyn={name:"UniversalForm",data(){return{show:!1,resolve:null,controls_array:[],title:"Universal Form",ConfirmButtonText:"Submit",DenyButtonText:"Cancel"}},mounted(){Le.replace()},methods:{btn_clicked(t){t.callback?t.callback(t):console.log("Button clicked:",t)},hide(t){this.show=!1,this.resolve&&t&&(this.resolve(this.controls_array),this.resolve=null)},showForm(t,e,n,o){return typeof t=="object"&&!Array.isArray(t)?this._newShowForm(t):(this.ConfirmButtonText=n||this.ConfirmButtonText,this.DenyButtonText=o||this.DenyButtonText,this.controls_array=t.map(r=>({...r,isHelp:!1,placeholder:r.placeholder||"",required:r.required||!1,spanFull:r.spanFull||["btn","text","list","file","folder"].includes(r.type)})),new Promise(r=>{console.log("Resolve"),console.log(r),this.title=e||this.title,this.show=!0,this.resolve=r,this.$nextTick(()=>Le.replace())}))},_newShowForm(t){return this.title=t.title||this.title,this.ConfirmButtonText=t.confirmText||this.ConfirmButtonText,this.DenyButtonText=t.denyText||this.DenyButtonText,this.controls_array=t.fields.map(e=>({...e,isHelp:!1,placeholder:e.placeholder||"",required:e.required||!1,spanFull:e.spanFull||["btn","text","list","file","folder"].includes(e.type)})),this.show=!0,new Promise(e=>{this.resolve=e,this.$nextTick(()=>Le.replace())})},parseValue(t){switch(t.type){case"int":return parseInt(t.value)||0;case"float":return parseFloat(t.value)||0;case"bool":return!!t.value;case"list":return t.value.split(",").map(e=>e.trim());default:return t.value}},openFileDialog(t){const e=document.createElement("input");e.type=t.type==="folder"?"file":t.type,t.type==="folder"&&(e.webkitdirectory=!0),t.accept&&(e.accept=t.accept),e.onchange=n=>{const o=Array.from(n.target.files);t.value=o.map(r=>r.path).join(", ")},e.click()}},watch:{controls_array:{deep:!0,handler(t){t.forEach(e=>{e.type==="int"&&(e.value=parseInt(e.value)||0),e.type==="float"&&(e.value=parseFloat(e.value)||0)})}}}},Byn={key:0,class:"fixed inset-0 flex items-center justify-center bg-black/50 backdrop-blur-sm transition-opacity duration-300",style:{"z-index":"1000"}},Fyn={class:"flex flex-col rounded-xl panels-color shadow-2xl max-h-[90vh]"},Uyn={class:"flex items-center justify-between p-5 border-b border-blue-200 dark:border-blue-700"},qyn={class:"flex items-center gap-3"},Gyn={class:"text-xl font-semibold text-blue-800 dark:text-blue-100"},jyn={class:"overflow-y-auto px-6 py-5 scrollbar"},zyn={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-5"},Yyn={class:"flex items-center justify-between mb-2"},Wyn=["for"],Kyn=["onClick"],Zyn={key:0,class:"text-xs text-red-500 dark:text-red-400 font-medium"},Xyn={key:0,class:"text-sm text-blue-600 dark:text-blue-400 mb-3 p bg-blue-100 dark:bg-blue-800 p-2 rounded-md border border-blue-200 dark:border-blue-700"},Jyn={class:"mt-1"},ebn={key:0},tbn=["id","onUpdate:modelValue","placeholder"],nbn=["onUpdate:modelValue","id"],rbn=["value"],ibn={key:1},obn=["onClick"],sbn=["data-feather"],abn={key:2},lbn=["onUpdate:modelValue","id"],cbn={key:3,class:"space-y-3"},ubn=["id","onUpdate:modelValue","step"],dbn=["onUpdate:modelValue","min","max","step"],Tbn={key:4,class:"flex items-center gap-3"},fbn=["for"],pbn=["id","onUpdate:modelValue"],hbn={class:"text-sm text-blue-700 dark:text-blue-300"},mbn={key:5,class:"flex items-center gap-3"},gbn=["onUpdate:modelValue"],_bn=["id","onUpdate:modelValue"],Qbn={key:6,class:"flex gap-2"},vbn=["id","onUpdate:modelValue"],ybn=["onClick"],bbn={class:"flex justify-end gap-3 p-5 border-t border-blue-200 dark:border-blue-700"};function Ebn(t,e,n,o,r,i){return r.show?(N(),H("div",Byn,[S("div",{class:Ee(["relative w-full mx-4 max-w-2xl transform transition-all duration-300 ease-out scale-95 opacity-0",{"scale-100 opacity-100":r.show}])},[S("div",Fyn,[S("div",Uyn,[S("div",qyn,[e[3]||(e[3]=S("i",{"data-feather":"sliders",class:"w-6 h-6 text-blue-600 dark:text-blue-400"},null,-1)),S("h3",Gyn,J(r.title),1)]),S("button",{onClick:e[0]||(e[0]=oe(s=>i.hide(!1),["stop"])),class:"svg-button"},e[4]||(e[4]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)]))]),S("div",jyn,[S("div",zyn,[(N(!0),H(Ae,null,Ue(r.controls_array,(s,a)=>(N(),H("div",{key:a,class:Ee(["flex flex-col",{"md:col-span-2":s.spanFull||["btn","text","list","file","folder"].includes(s.type)}])},[S("div",Yyn,[S("label",{for:`control-${a}`,class:"flex items-center gap-1.5 label"},[S("span",null,J(s.name),1),s.help?(N(),H("button",{key:0,onClick:l=>s.isHelp=!s.isHelp,class:"text-blue-500 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"},e[5]||(e[5]=[S("i",{"data-feather":"help-circle",class:"w-4 h-4"},null,-1)]),8,Kyn)):Z("",!0)],8,Wyn),s.required?(N(),H("span",Zyn,"* Required")):Z("",!0)]),s.isHelp?(N(),H("p",Xyn,J(s.help),1)):Z("",!0),S("div",Jyn,[["str","string"].includes(s.type)?(N(),H("div",ebn,[s.options?Ce((N(),H("select",{key:1,"onUpdate:modelValue":l=>s.value=l,id:`control-${a}`,class:"input w-full appearance-none"},[(N(!0),H(Ae,null,Ue(s.options,(l,c)=>(N(),H("option",{key:c,value:l},J(l),9,rbn))),128))],8,nbn)),[[Ir,s.value]]):Ce((N(),H("input",{key:0,id:`control-${a}`,type:"text","onUpdate:modelValue":l=>s.value=l,placeholder:s.placeholder||"Enter text",class:"input w-full"},null,8,tbn)),[[Je,s.value]])])):Z("",!0),s.type==="btn"?(N(),H("div",ibn,[S("button",{onClick:l=>i.btn_clicked(s),class:"btn btn-secondary w-full justify-center"},[s.icon?(N(),H("i",{key:0,"data-feather":s.icon,class:"w-4 h-4 mr-2"},null,8,sbn)):Z("",!0),Oe(" "+J(s.name),1)],8,obn)])):Z("",!0),s.type==="text"?(N(),H("div",abn,[Ce(S("textarea",{"onUpdate:modelValue":l=>s.value=l,id:`control-${a}`,rows:"4",class:"input w-full resize-y min-h-[80px]"},null,8,lbn),[[Je,s.value]])])):Z("",!0),["int","float"].includes(s.type)?(N(),H("div",cbn,[Ce(S("input",{type:"number",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,step:s.type==="int"?1:s.step||.1,class:"input w-full"},null,8,ubn),[[Je,s.value]]),s.min!==void 0&&s.max!==void 0?Ce((N(),H("input",{key:0,type:"range","onUpdate:modelValue":l=>s.value=l,min:s.min,max:s.max,step:s.step||(s.type==="int"?1:.1),class:"range-input w-full"},null,8,dbn)),[[Je,s.value]]):Z("",!0)])):Z("",!0),s.type==="bool"?(N(),H("div",Tbn,[S("label",{for:`control-${a}`,class:"relative inline-flex items-center cursor-pointer"},[Ce(S("input",{type:"checkbox",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,class:"sr-only peer"},null,8,pbn),[[Ql,s.value]]),e[6]||(e[6]=S("div",{class:"w-11 h-6 bg-blue-200 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-blue-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600"},null,-1))],8,fbn),S("span",hbn,J(s.value?"Enabled":"Disabled"),1)])):Z("",!0),s.type==="color"?(N(),H("div",mbn,[Ce(S("input",{type:"color","onUpdate:modelValue":l=>s.value=l,class:"w-10 h-10 p-0 border-0 rounded-md cursor-pointer bg-transparent appearance-none",style:Jt({backgroundColor:s.value})},null,12,gbn),[[Je,s.value]]),Ce(S("input",{type:"text",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,class:"input flex-1"},null,8,_bn),[[Je,s.value]])])):Z("",!0),["file","folder"].includes(s.type)?(N(),H("div",Qbn,[Ce(S("input",{type:"text",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,readonly:"",class:"input flex-1 bg-blue-50 dark:bg-blue-800 cursor-not-allowed"},null,8,vbn),[[Je,s.value]]),S("button",{onClick:l=>i.openFileDialog(s),class:"btn btn-secondary flex-shrink-0"},e[7]||(e[7]=[S("i",{"data-feather":"folder",class:"w-4 h-4 mr-1"},null,-1),S("span",null,"Browse",-1)]),8,ybn)])):Z("",!0)])],2))),128))])]),S("div",bbn,[S("button",{onClick:e[1]||(e[1]=oe(s=>i.hide(!1),["stop"])),class:"btn btn-secondary"},J(r.DenyButtonText),1),S("button",{onClick:e[2]||(e[2]=oe(s=>i.hide(!0),["stop"])),class:"btn btn-primary"},[e[8]||(e[8]=S("i",{"data-feather":"check",class:"w-4 h-4 mr-1"},null,-1)),Oe(" "+J(r.ConfirmButtonText),1)])])])],2)])):Z("",!0)}const ZI=ze(Vyn,[["render",Ebn],["__scopeId","data-v-78eaa4f5"]]),Sbn={data(){return{show:!1,message:"",resolve:null,ConfirmButtonText:"Yes, I'm sure",DenyButtonText:"No, cancel"}},methods:{hide(t){this.show=!1,this.resolve&&(this.resolve(t),this.resolve=null)},askQuestion(t,e,n){return this.ConfirmButtonText=e||this.ConfirmButtonText,this.DenyButtonText=n||this.DenyButtonText,new Promise(o=>{this.message=t,this.show=!0,this.resolve=o})}}},xbn={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50"},Lbn={class:"relative w-full max-w-md max-h-full"},Cbn={class:"relative bg-white rounded-lg shadow dark:bg-gray-700"},Abn={class:"p-4 text-center"},wbn={class:"mb-5 text-lg font-normal text-gray-500 dark:text-gray-400 select-none break-all"};function Obn(t,e,n,o,r,i){return r.show?(N(),H("div",xbn,[S("div",Lbn,[S("div",Cbn,[S("button",{type:"button",onClick:e[0]||(e[0]=s=>i.hide(!1)),class:"absolute top-3 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[3]||(e[3]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[S("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),S("span",{class:"sr-only"},"Close modal",-1)])),S("div",Abn,[e[4]||(e[4]=S("svg",{"aria-hidden":"true",class:"mx-auto mb-4 text-gray-400 w-14 h-14 dark:text-gray-200",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),S("h3",wbn,J(r.message),1),S("button",{onClick:e[1]||(e[1]=s=>i.hide(!0)),type:"button",class:"text-white bg-red-600 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:focus:ring-red-800 font-medium rounded-lg text-sm inline-flex items-center px-5 py-2.5 text-center mr-2"},J(r.ConfirmButtonText),1),S("button",{onClick:e[2]||(e[2]=s=>i.hide(!1)),type:"button",class:"text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 rounded-lg border border-gray-200 text-sm font-medium px-5 py-2.5 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-600"},J(r.DenyButtonText),1)])])])])):Z("",!0)}const Mbn=ze(Sbn,[["render",Obn]]),Rbn={name:"TopBar",components:{Navigation:wz,ActionButton:xN,SocialIcon:LN,Toast:bp,MessageBox:Oyn,ProgressBar:sh,InputBox:$yn,UniversalForm:ZI,YesNoDialog:Mbn},setup(t,{emit:e}){const n=OR(),o=ke(null),r=ke(null),i=ke(null),s=ke(null),a=ke(null),l=ke(null),c=ke(null),u=ke(null),d=ke(!1),f=ke(JSON.parse(localStorage.getItem("isPinned")||"false")),T=ke(null),h=ke(!1),g=ke(!1),_=ke(!1),m=ke(!1),Q=ke(null),v=ke(localStorage.getItem("preferred-theme")||"default"),b=ke([]),y=ke(""),E="https://github.com/ParisNeo/lollms-webui",x=$e(()=>n.state.progress_visibility),L=$e(()=>n.state.progress_value),C=$e(()=>n.state.loading_infos),A=$e(()=>n.state.isModelOk),O=$e(()=>n.state.isGenerating),R=$e(()=>n.state.isConnected),D=$e(()=>n.state.languages||["English"]),M=$e(()=>n.state.language||"English"),$=$e(()=>document.documentElement.classList.contains("dark")),U=$e(()=>f.value||d.value),G=$e(()=>{if(Q.value===null||Q.value==="N/A")return"?";const le=Number(Q.value);return le>=1e3?`${(le/1e3).toFixed(1)}k`:le.toString()}),P=$e(()=>{const le=M.value;return(le==null?void 0:le.length)===2?le.toUpperCase():le!=null&&le.toLowerCase().startsWith("en")?"EN":le!=null&&le.toLowerCase().startsWith("fr")?"FR":le!=null&&le.toLowerCase().startsWith("de")?"DE":le!=null&&le.toLowerCase().startsWith("es")?"ES":le?le.slice(0,2).toUpperCase():"??"}),F=()=>{clearTimeout(T.value),d.value=!0},B=()=>{f.value||(T.value=setTimeout(()=>{var le;(le=l.value)!=null&&le.matches(":hover")||(d.value=!1)},150))},q=()=>{T.value=setTimeout(()=>{d.value=!1},300)},ee=()=>{clearTimeout(T.value),!d.value&&!f.value&&(d.value=!0)},K=()=>{const le=!f.value;f.value=le,localStorage.setItem("isPinned",JSON.stringify(le)),d.value=!0,n.commit("setTopBarPinned",le),e("update:pinned",le),be(Le.replace)},j=async()=>{try{const le=await fe.get("/get_themes");b.value=le.data.sort(),v.value==="default"&&!b.value.includes("default")&&b.value.unshift("default"),b.value.includes(v.value)||ue("default")}catch(le){console.error("Error fetching themes:",le),b.value=["default"],v.value!=="default"&&ue("default")}},ue=le=>{pe(le),h.value=!1},pe=async le=>{var we;console.log(`Attempting to load theme: ${le}`);try{const De=new Date().getTime(),Ze=await fe.get(`/themes/${le}.css?v=${De}`),tt=document.getElementById("theme-styles");tt&&tt.remove();const gt=document.createElement("style");gt.id="theme-styles",gt.textContent=Ze.data,document.head.appendChild(gt),localStorage.setItem("preferred-theme",le),v.value=le,await be(),z();const St=getComputedStyle(document.documentElement),ln={lollms_title:St.getPropertyValue("--lollms-title").trim()||"LoLLMS",activate_dropping_animation:St.getPropertyValue("--activate-dropping-animation").trim()==="1",falling_object:St.getPropertyValue("--falling-object").trim(),lollms_welcome_short_message:St.getPropertyValue("--lollms-welcome-short-message").trim()||"Welcome",lollms_welcome_message:St.getPropertyValue("--lollms-welcome-message").trim()||"Welcome to LoLLMS"};n.commit("setThemeVars",ln),be(Le.replace)}catch(De){console.error(`Failed to load theme: ${le}`,De),(we=o.value)==null||we.showToast(`Error loading theme: ${le}`,5,!1),v.value!=="default"&&await pe("default")}},z=()=>{const le=$.value,we=document.documentElement.classList.contains("dark");le!==we&&(console.log("Dark mode status changed, isDark:",we),te(we)),be(Le.replace)},te=le=>{const we="highlight-js-style",De=document.getElementById(we);De&&De.remove();const Ze=document.createElement("link");Ze.id=we,Ze.rel="stylesheet",le?Ze.href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/tokyo-night-dark.min.css":Ze.href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/stackoverflow-light.min.css",document.head.appendChild(Ze),console.log(`Loaded highlight.js style: ${le?"Dark":"Light"}`)},ae=()=>{document.documentElement.classList.contains("dark")?(document.documentElement.classList.remove("dark"),localStorage.setItem("theme-mode","light")):(document.documentElement.classList.add("dark"),localStorage.setItem("theme-mode","dark")),z()},he=async le=>{await n.dispatch("changeLanguage",le),g.value=!1,be(Le.replace)},ve=async le=>{var we;(we=s.value)==null||we.show(`Are you sure you want to delete the language "${le}"?`,async()=>{var De;try{await n.dispatch("deleteLanguage",le)}catch(Ze){console.error("Error deleting language:",Ze),(De=o.value)==null||De.showToast(`Failed to delete language: ${Ze.message||Ze}`,4,!1)}})},Y=()=>{var we;const le=y.value.trim();le&&(D.value.map(De=>De.toLowerCase()).includes(le.toLowerCase())?(we=o.value)==null||we.showToast(`Language "${le}" already exists.`,4,!1):(he(le),y.value=""))},W=()=>{h.value=!h.value,g.value=!1,_.value=!1},X=()=>{g.value=!g.value,h.value=!1,_.value=!1},se=()=>{m.value=!0,_.value||(_.value=!0,h.value=!1,g.value=!1,be(Le.replace))},ce=()=>{m.value=!1,setTimeout(()=>{m.value||(_.value=!1)},150)},de=()=>{var le;(le=n.state.news)==null||le.show()},Te=()=>{window.location.reload()},Qe=()=>{var le;(le=n.state.yesNoDialog)==null||le.show("Are you sure you want to restart LoLLMs?",()=>{fe.get("/restart_program").then(()=>{var we;(we=n.state.toast)==null||we.showToast("Restarting server...",4,!0)}).catch(we=>{var De,Ze,tt;console.error("Error restarting server:",we),(tt=n.state.toast)==null||tt.showToast(`Failed to send restart command: ${((Ze=(De=we.response)==null?void 0:De.data)==null?void 0:Ze.error)||we.message}`,5,!1)})})},_e=async()=>{try{const le=await fetch(E.replace("github.com","api.github.com/repos"),{headers:{Accept:"application/vnd.github.v3+json"}});if(!le.ok){const De=le.headers.get("X-RateLimit-Remaining"),Ze=le.headers.get("X-RateLimit-Reset");let tt=`HTTP error! status: ${le.status}`;if(De==="0"){const gt=new Date(parseInt(Ze)*1e3);tt+=` (GitHub API rate limit exceeded. Resets at ${gt.toLocaleTimeString()})`}throw new Error(tt)}const we=await le.json();Q.value=we.stargazers_count}catch(le){console.error("Error fetching GitHub stars:",le),Q.value="N/A"}},ye=le=>{console.log("Web URL submitted:",le),n.dispatch("processWebUrl",le)},Be=le=>{const we=le.target.closest('button[title="Select Theme"]');c.value&&!c.value.contains(le.target)&&!we&&(h.value=!1);const De=le.target.closest('button[title="Select Language"]');u.value&&!u.value.contains(le.target)&&!De&&(g.value=!1)},xe=()=>{const le=localStorage.getItem("theme-mode"),we=window.matchMedia("(prefers-color-scheme: dark)").matches;le==="dark"||!le&&we?document.documentElement.classList.contains("dark")||document.documentElement.classList.add("dark"):document.documentElement.classList.contains("dark")&&document.documentElement.classList.remove("dark"),z()};return hr(async()=>{n.commit("setToastRef",o.value),n.commit("setMessageBoxRef",r.value),n.commit("setUniversalFormRef",i.value),n.commit("setYesNoDialogRef",s.value),n.commit("setWebUrlInputBoxRef",a.value),document.addEventListener("click",Be,!0),await j(),await pe(v.value),xe(),_e();const le=JSON.parse(localStorage.getItem("isPinned")||"false");n.state.isTopBarPinned===null&&n.commit("setTopBarPinned",le),f.value=n.state.isTopBarPinned,d.value=f.value,be(Le.replace);const we=window.matchMedia("(prefers-color-scheme: dark)"),De=Ze=>{localStorage.getItem("theme-mode")||(Ze.matches?document.documentElement.classList.contains("dark")||(document.documentElement.classList.add("dark"),z()):document.documentElement.classList.contains("dark")&&(document.documentElement.classList.remove("dark"),z()))};we.addEventListener("change",De),X1(()=>{document.removeEventListener("click",Be,!0),we.removeEventListener("change",De),clearTimeout(T.value)}),e("update:occupyingSpace",U.value)}),vn(U,le=>{e("update:occupyingSpace",le),be(Le.replace)}),vn(()=>n.state.isTopBarPinned,le=>{f.value!==le&&(f.value=le,localStorage.setItem("isPinned",JSON.stringify(le)),d.value=!0)}),vn(()=>n.state.config,()=>{be(()=>Le.replace())},{deep:!0}),{toast:o,messageBox:r,universalForm:i,yesNoDialog:s,web_url_input_box:a,topbarContainer:l,themeMenu:c,languageMenu:u,isVisible:d,isPinned:f,themeDropdownOpen:h,isLanguageMenuVisible:g,isInfosMenuVisible:_,starCount:Q,currentTheme:v,availableThemes:b,customLanguage:y,githubRepoUrl:E,progress_visibility:x,progress_value:L,loading_infos:C,isModelOK:A,isGenerating:O,isConnected:R,languages:D,language:M,isDarkMode:$,isEffectivelyVisible:U,formattedStarCount:G,currentLanguageDisplay:P,show:F,hide:B,hideUnlessEnteringTopbar:q,clearHideTimeout:ee,togglePin:K,fetchThemes:j,selectTheme:ue,loadTheme:pe,themeSwitch:ae,checkAndUpdateDarkMode:z,selectLanguage:he,deleteLanguage:ve,addCustomLanguage:Y,toggleThemeDropDown:W,toggleLanguageMenu:X,showInfosMenu:se,hideInfosMenu:ce,showNews:de,refreshPage:Te,restartProgram:Qe,fetchGitHubStars:_e,handleWebUrlOk:ye}}},Nbn={class:"flex justify-center h-full"},Dbn={class:"flex justify-between items-center w-full max-w-7xl px-2 sm:px-4 py-1 h-full"},Ibn={class:"flex-shrink-0"},kbn={class:"flex items-center gap-1 sm:gap-2"},Hbn=["href","title"],Pbn={class:"font-medium text-xs"},$bn={class:"relative"},Vbn={class:"flex items-center justify-between w-full"},Bbn={class:"flex items-center space-x-1.5 overflow-hidden"},Fbn={class:"font-medium truncate text-xs"},Ubn={key:0,ref:"themeMenu",class:"context-menu theme-dropdown",role:"menu"},qbn={class:"max-h-60 overflow-y-auto scrollbar"},Gbn=["onClick"],jbn={class:"truncate"},zbn={class:"relative"},Ybn=["aria-expanded"],Wbn={class:"font-medium text-xs"},Kbn={key:0,ref:"languageMenu",class:"context-menu language-dropdown",role:"menu"},Zbn={class:"max-h-72 overflow-y-auto scrollbar py-1"},Xbn=["onClick","aria-label"],Jbn=["onClick"],eEn={class:"px-3 pt-2 pb-1 border-t border-blue-200 dark:border-blue-700 mt-1"},tEn=["title"],nEn=["data-feather"],rEn=["title"],iEn={class:"p-3 space-y-3"},oEn={class:"flex justify-between items-center gap-2 border-b border-blue-200 dark:border-blue-700 pb-2"},sEn={class:"flex gap-2 items-center"},aEn=["title"],lEn=["data-feather"],cEn=["title"],uEn=["data-feather"],dEn=["title"],TEn=["data-feather"],fEn={class:"flex flex-wrap gap-2 justify-center"},pEn={class:"flex justify-center items-center gap-3 pt-2 border-t border-blue-200 dark:border-blue-700"},hEn={role:"status",class:"fixed m-0 p-2 left-2 bottom-2 min-w-[24rem] max-w-[24rem] h-auto flex flex-col justify-center items-center rounded-lg shadow-lg z-[60] panels-color"},mEn={class:"text-sm text-blue-800 dark:text-blue-100 animate-pulse mt-1"};function gEn(t,e,n,o,r,i){const s=We("Navigation"),a=We("ActionButton"),l=We("SocialIcon"),c=We("InputBox"),u=We("Toast"),d=We("MessageBox"),f=We("YesNoDialog"),T=We("UniversalForm"),h=We("ProgressBar");return N(),H(Ae,null,[o.isPinned?Z("",!0):(N(),H("div",{key:0,class:"fixed top-0 left-0 w-full h-3 z-[51] cursor-pointer",onMouseenter:e[0]||(e[0]=(...g)=>o.show&&o.show(...g)),onMouseleave:e[1]||(e[1]=(...g)=>o.hideUnlessEnteringTopbar&&o.hideUnlessEnteringTopbar(...g))},null,32)),S("div",{ref:"topbarContainer",class:Ee(["fixed top-0 left-0 right-0 z-50 h-14","toolbar-color","shadow-lg","transition-transform duration-300 ease-in-out",{"-translate-y-full":!o.isEffectivelyVisible,"translate-y-0":o.isEffectivelyVisible}]),onMouseenter:e[13]||(e[13]=(...g)=>o.clearHideTimeout&&o.clearHideTimeout(...g)),onMouseleave:e[14]||(e[14]=(...g)=>o.hide&&o.hide(...g))},[S("div",Nbn,[S("div",Dbn,[S("div",Ibn,[_n(t.$slots,"navigation",{},()=>[ne(s)],!0)]),e[23]||(e[23]=S("div",{class:"flex-grow"},null,-1)),S("div",kbn,[o.starCount!==null?(N(),H("a",{key:0,href:o.githubRepoUrl,target:"_blank",rel:"noopener noreferrer",class:"btn btn-secondary btn-sm hidden md:inline-flex items-center gap-1.5",title:`Star us on GitHub! (${o.starCount} stars)`},[e[15]||(e[15]=S("i",{"data-feather":"github",class:"w-4 h-4"},null,-1)),S("span",Pbn,J(o.formattedStarCount),1)],8,Hbn)):Z("",!0),S("div",$bn,[S("button",{onClick:e[2]||(e[2]=oe((...g)=>o.toggleThemeDropDown&&o.toggleThemeDropDown(...g),["stop"])),class:"btn btn-secondary btn-sm w-28 sm:w-36",title:"Select Theme"},[S("div",Vbn,[S("div",Bbn,[e[16]||(e[16]=S("i",{"data-feather":"layout",class:"w-4 h-4 flex-shrink-0"},null,-1)),S("span",Fbn,J(o.currentTheme),1)]),S("i",{"data-feather":"chevron-down",class:Ee(["w-4 h-4 flex-shrink-0 transition-transform duration-300",{"rotate-180":o.themeDropdownOpen}])},null,2)])]),ne(Tr,{name:"context-menu-transition"},{default:je(()=>[o.themeDropdownOpen?(N(),H("div",Ubn,[S("div",qbn,[(N(!0),H(Ae,null,Ue(o.availableThemes,g=>(N(),H("a",{key:g,onClick:_=>o.selectTheme(g),class:"context-menu-item group",role:"menuitem"},[e[17]||(e[17]=S("i",{"data-feather":"droplet",class:"w-3.5 h-3.5 context-menu-item-icon group-hover:animate-pulse"},null,-1)),S("span",jbn,J(g),1)],8,Gbn))),128))])],512)):Z("",!0)]),_:1})]),S("div",zbn,[S("button",{onClick:e[3]||(e[3]=oe((...g)=>o.toggleLanguageMenu&&o.toggleLanguageMenu(...g),["stop"])),class:"btn btn-secondary btn-sm inline-flex items-center",title:"Select Language","aria-haspopup":"true","aria-expanded":o.isLanguageMenuVisible},[S("span",Wbn,J(o.currentLanguageDisplay),1),S("i",{"data-feather":"chevron-down",class:Ee(["w-4 h-4 ml-1 transition-transform duration-300",{"rotate-180":o.isLanguageMenuVisible}])},null,2)],8,Ybn),ne(Tr,{name:"context-menu-transition"},{default:je(()=>[o.isLanguageMenuVisible?(N(),H("div",Kbn,[S("ul",Zbn,[(N(!0),H(Ae,null,Ue(o.languages,g=>(N(),H("li",{key:g,class:"context-menu-item flex items-center group pr-2"},[g!=="English"?(N(),H("button",{key:0,onClick:oe(_=>o.deleteLanguage(g),["stop"]),class:"svg-button p-0.5 rounded-full opacity-0 group-hover:opacity-100 transition-opacity text-red-500 hover:bg-red-100 dark:hover:bg-red-900/50 mr-2","aria-label":`Delete ${g}`,title:"Delete Language"},e[18]||(e[18]=[S("i",{"data-feather":"x",class:"w-3 h-3"},null,-1)]),8,Xbn)):Z("",!0),S("div",{onClick:_=>o.selectLanguage(g),class:Ee(["flex-grow pl-2 pr-1 py-0.5 cursor-pointer rounded text-xs transition-colors",g===o.language?"bg-blue-100 dark:bg-blue-700 text-blue-700 dark:text-blue-100 font-semibold":"hover:bg-blue-50 dark:hover:bg-blue-800",{"ml-[calc(0.75rem+0.5rem)]":g==="English"}]),role:"menuitem"},J(g),11,Jbn)]))),128)),S("li",eEn,[Ce(S("input",{type:"text","onUpdate:modelValue":e[4]||(e[4]=g=>o.customLanguage=g),onKeyup:e[5]||(e[5]=Qn(oe((...g)=>o.addCustomLanguage&&o.addCustomLanguage(...g),["prevent"]),["enter"])),placeholder:"Add new language...",class:"input input-sm w-full"},null,544),[[Je,o.customLanguage]])])])],512)):Z("",!0)]),_:1})]),S("button",{onClick:e[6]||(e[6]=g=>o.themeSwitch()),title:o.isDarkMode?"Switch to Light theme":"Switch to Dark theme",class:"svg-button text-xl p-1.5"},[S("i",{"data-feather":o.isDarkMode?"sun":"moon",class:"w-4 h-4"},null,8,nEn)],8,tEn),S("button",{class:"svg-button p-1.5 transition-transform hover:scale-110 focus:outline-none",onClick:e[7]||(e[7]=(...g)=>o.togglePin&&o.togglePin(...g)),title:o.isPinned?"Unpin Top Bar":"Pin Top Bar"},[(N(),H("svg",{class:Ee(["w-4 h-4",o.isPinned?"text-red-500 dark:text-red-400":"text-blue-600 dark:text-blue-400"]),viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},e[19]||(e[19]=[S("path",{d:"M16 12V4H17V2H7V4H8V12L6 14V16H11.5V22H12.5V16H18V14L16 12Z M8.8 14L10 12.8V4H14V12.8L15.2 14H8.8Z"},null,-1)]),2))],8,rEn),S("div",{class:"relative",onMouseleave:e[12]||(e[12]=(...g)=>o.hideInfosMenu&&o.hideInfosMenu(...g))},[S("button",{onMouseenter:e[8]||(e[8]=(...g)=>o.showInfosMenu&&o.showInfosMenu(...g)),class:"svg-button p-1.5",title:"Status & Info"},e[20]||(e[20]=[S("i",{"data-feather":"info",class:"w-5 h-5"},null,-1)]),32),ne(Tr,{name:"context-menu-transition"},{default:je(()=>[o.isInfosMenuVisible?(N(),H("div",{key:0,onMouseenter:e[10]||(e[10]=(...g)=>o.showInfosMenu&&o.showInfosMenu(...g)),onMouseleave:e[11]||(e[11]=(...g)=>o.hideInfosMenu&&o.hideInfosMenu(...g)),class:"context-menu info-dropdown",role:"menu"},[S("div",iEn,[S("div",oEn,[e[21]||(e[21]=S("h4",{class:"text-sm font-semibold text-blue-700 dark:text-blue-300"},"System Status",-1)),S("div",sEn,[S("div",{title:o.isModelOK?"Model OK":"Model Error",class:Ee(["p-1 rounded-full transition-transform hover:scale-110",o.isModelOK?"text-green-500 dark:text-green-400":"text-red-500 dark:text-red-400"])},[S("i",{"data-feather":o.isModelOK?"check-circle":"x-octagon",class:"w-5 h-5"},null,8,lEn)],10,aEn),S("div",{title:o.isGenerating?"Generating...":"Ready",class:Ee(["p-1 rounded-full transition-transform hover:scale-110",[o.isGenerating?"text-yellow-500 dark:text-yellow-400":"text-green-500 dark:text-green-400"]])},[S("i",{"data-feather":o.isGenerating?"loader":"zap",class:Ee(["w-5 h-5",{"animate-spin":o.isGenerating}])},null,10,uEn)],10,cEn),S("div",{title:o.isConnected?"Connected":"Disconnected",class:Ee(["p-1 rounded-full transition-transform hover:scale-110",[o.isConnected?"text-green-500 dark:text-green-400":"text-red-500 dark:text-red-400"]])},[S("i",{"data-feather":o.isConnected?"wifi":"wifi-off",class:"w-5 h-5"},null,8,TEn)],10,dEn)])]),S("div",fEn,[ne(a,{onClick:o.restartProgram,icon:"power",title:"Restart LoLLMs",class:"btn-secondary btn-sm flex-1 min-w-[100px] justify-center"},null,8,["onClick"]),ne(a,{onClick:o.refreshPage,icon:"refresh-ccw",title:"Refresh Page",class:"btn-secondary btn-sm flex-1 min-w-[100px] justify-center"},null,8,["onClick"]),ne(a,{href:"/docs",icon:"file-text",title:"API Docs",class:"btn-secondary btn-sm flex-1 min-w-[100px] justify-center",target:"_blank"}),S("button",{onClick:e[9]||(e[9]=g=>o.showNews()),class:"btn btn-secondary btn-sm flex-1 min-w-[100px] justify-center"},e[22]||(e[22]=[S("i",{"data-feather":"bell",class:"w-4 h-4 mr-1.5"},null,-1),Oe(" News ")]))]),S("div",pEn,[ne(l,{href:o.githubRepoUrl,icon:"github",title:"GitHub",class:"w-5 h-5"},null,8,["href"]),ne(l,{href:"https://www.youtube.com/channel/UCJzrg0cyQV2Z30SQ1v2FdSQ",icon:"youtube",title:"YouTube",class:"w-5 h-5"}),ne(l,{href:"https://x.com/ParisNeo_AI",icon:"x",title:"Twitter/X",class:"w-5 h-5"}),ne(l,{href:"https://discord.com/channels/1092918764925882418",icon:"discord",title:"Discord",class:"w-5 h-5"})])])],32)):Z("",!0)]),_:1})],32)])])])],34),ne(c,{"prompt-text":"Enter the URL to the page to use as discussion support",onOk:o.handleWebUrlOk,ref:"web_url_input_box"},null,8,["onOk"]),ne(u,{ref:"toast"},null,512),ne(d,{ref:"messageBox"},null,512),ne(f,{ref:"yesNoDialog",class:"z-[60]"},null,512),ne(T,{ref:"universalForm",class:"z-[60]"},null,512),Ce(S("div",hEn,[ne(h,{ref:"progress",progress:o.progress_value,class:"w-full h-3"},null,8,["progress"]),S("p",mEn,J(o.loading_infos)+" ...",1)],512),[[wn,o.progress_visibility]])],64)}const _En=ze(Rbn,[["render",gEn],["__scopeId","data-v-b2b50ce7"]]),QEn={__name:"App",setup(t){const e=OR(),n=ke(!1),o=i=>{n.value=i},r=$e(()=>localStorage.getItem("preferred-theme")||"default");return hr(()=>{n.value=e.state.isTopBarPinned??!1,(!e.state.languages||e.state.languages.length<=1)&&e.dispatch("initializeLanguages")}),(i,s)=>(N(),H("div",{class:Ee(["flex flex-col h-screen font-sans background-color text-slate-950 dark:bg-bg-dark dark:text-slate-50 w-full overflow-hidden",r.value])},[ne(_En,{"onUpdate:occupyingSpace":o}),S("div",{class:Ee(["flex overflow-hidden flex-grow w-full","transition-transform duration-300 ease-in-out",n.value?"translate-y-14":"translate-y-0"])},[S("div",{class:Ee(["flex-1 overflow-y-auto",[(n.value,"pt-0")]])},[ne(vt(SN),null,{default:je(({Component:a})=>[(N(),it(XP,null,[(N(),it(Vc(a)))],1024))]),_:1})],2)],2)],2))}},ss=Object.create(null);ss.open="0";ss.close="1";ss.ping="2";ss.pong="3";ss.message="4";ss.upgrade="5";ss.noop="6";const W6=Object.create(null);Object.keys(ss).forEach(t=>{W6[ss[t]]=t});const Of={type:"error",data:"parser error"},XI=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",JI=typeof ArrayBuffer=="function",ek=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,ah=({type:t,data:e},n,o)=>XI&&e instanceof Blob?n?o(e):dO(e,o):JI&&(e instanceof ArrayBuffer||ek(e))?n?o(e):dO(new Blob([e]),o):o(ss[t]+(e||"")),dO=(t,e)=>{const n=new FileReader;return n.onload=function(){const o=n.result.split(",")[1];e("b"+(o||""))},n.readAsDataURL(t)};function TO(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let YT;function vEn(t,e){if(XI&&t.data instanceof Blob)return t.data.arrayBuffer().then(TO).then(e);if(JI&&(t.data instanceof ArrayBuffer||ek(t.data)))return e(TO(t.data));ah(t,!1,n=>{YT||(YT=new TextEncoder),e(YT.encode(n))})}const fO="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lc=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let t=0;t{let e=t.length*.75,n=t.length,o,r=0,i,s,a,l;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);const c=new ArrayBuffer(e),u=new Uint8Array(c);for(o=0;o>4,u[r++]=(s&15)<<4|a>>2,u[r++]=(a&3)<<6|l&63;return c},bEn=typeof ArrayBuffer=="function",lh=(t,e)=>{if(typeof t!="string")return{type:"message",data:tk(t,e)};const n=t.charAt(0);return n==="b"?{type:"message",data:EEn(t.substring(1),e)}:W6[n]?t.length>1?{type:W6[n],data:t.substring(1)}:{type:W6[n]}:Of},EEn=(t,e)=>{if(bEn){const n=yEn(t);return tk(n,e)}else return{base64:!0,data:t}},tk=(t,e)=>{switch(e){case"blob":return t instanceof Blob?t:new Blob([t]);case"arraybuffer":default:return t instanceof ArrayBuffer?t:t.buffer}},nk="",SEn=(t,e)=>{const n=t.length,o=new Array(n);let r=0;t.forEach((i,s)=>{ah(i,!1,a=>{o[s]=a,++r===n&&e(o.join(nk))})})},xEn=(t,e)=>{const n=t.split(nk),o=[];for(let r=0;r{const o=n.length;let r;if(o<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,o);else if(o<65536){r=new Uint8Array(3);const i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,o)}else{r=new Uint8Array(9);const i=new DataView(r.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(o))}t.data&&typeof t.data!="string"&&(r[0]|=128),e.enqueue(r),e.enqueue(n)})}})}let WT;function w6(t){return t.reduce((e,n)=>e+n.length,0)}function O6(t,e){if(t[0].length===e)return t.shift();const n=new Uint8Array(e);let o=0;for(let r=0;rMath.pow(2,21)-1){a.enqueue(Of);break}r=u*Math.pow(2,32)+c.getUint32(4),o=3}else{if(w6(n)t){a.enqueue(Of);break}}}})}const rk=4;function On(t){if(t)return AEn(t)}function AEn(t){for(var e in On.prototype)t[e]=On.prototype[e];return t}On.prototype.on=On.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this};On.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this};On.prototype.off=On.prototype.removeListener=On.prototype.removeAllListeners=On.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+t];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+t],this;for(var o,r=0;rPromise.resolve().then(e):(e,n)=>n(e,0),$i=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),wEn="arraybuffer";function ik(t,...e){return e.reduce((n,o)=>(t.hasOwnProperty(o)&&(n[o]=t[o]),n),{})}const OEn=$i.setTimeout,MEn=$i.clearTimeout;function y5(t,e){e.useNativeTimers?(t.setTimeoutFn=OEn.bind($i),t.clearTimeoutFn=MEn.bind($i)):(t.setTimeoutFn=$i.setTimeout.bind($i),t.clearTimeoutFn=$i.clearTimeout.bind($i))}const REn=1.33;function NEn(t){return typeof t=="string"?DEn(t):Math.ceil((t.byteLength||t.size)*REn)}function DEn(t){let e=0,n=0;for(let o=0,r=t.length;o=57344?n+=3:(o++,n+=4);return n}function ok(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function IEn(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function kEn(t){let e={},n=t.split("&");for(let o=0,r=n.length;o{this.readyState="paused",e()};if(this._polling||!this.writable){let o=0;this._polling&&(o++,this.once("pollComplete",function(){--o||n()})),this.writable||(o++,this.once("drain",function(){--o||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const n=o=>{if(this.readyState==="opening"&&o.type==="open"&&this.onOpen(),o.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(o)};xEn(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,SEn(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=ok()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}let sk=!1;try{sk=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const $En=sk;function VEn(){}class BEn extends PEn{constructor(e){if(super(e),typeof location<"u"){const n=location.protocol==="https:";let o=location.port;o||(o=n?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||o!==e.port}}doWrite(e,n){const o=this.request({method:"POST",data:e});o.on("success",n),o.on("error",(r,i)=>{this.onError("xhr post error",r,i)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,o)=>{this.onError("xhr poll error",n,o)}),this.pollXhr=e}}let pl=class K6 extends On{constructor(e,n,o){super(),this.createRequest=e,y5(this,o),this._opts=o,this._method=o.method||"GET",this._uri=n,this._data=o.data!==void 0?o.data:null,this._create()}_create(){var e;const n=ik(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const o=this._xhr=this.createRequest(n);try{o.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){o.setDisableHeaderCheck&&o.setDisableHeaderCheck(!0);for(let r in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(r)&&o.setRequestHeader(r,this._opts.extraHeaders[r])}}catch{}if(this._method==="POST")try{o.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{o.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(o),"withCredentials"in o&&(o.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(o.timeout=this._opts.requestTimeout),o.onreadystatechange=()=>{var r;o.readyState===3&&((r=this._opts.cookieJar)===null||r===void 0||r.parseCookies(o.getResponseHeader("set-cookie"))),o.readyState===4&&(o.status===200||o.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof o.status=="number"?o.status:0)},0))},o.send(this._data)}catch(r){this.setTimeoutFn(()=>{this._onError(r)},0);return}typeof document<"u"&&(this._index=K6.requestsCount++,K6.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=VEn,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete K6.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};pl.requestsCount=0;pl.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",pO);else if(typeof addEventListener=="function"){const t="onpagehide"in $i?"pagehide":"unload";addEventListener(t,pO,!1)}}function pO(){for(let t in pl.requests)pl.requests.hasOwnProperty(t)&&pl.requests[t].abort()}const FEn=function(){const t=ak({xdomain:!1});return t&&t.responseType!==null}();class UEn extends BEn{constructor(e){super(e);const n=e&&e.forceBase64;this.supportsBinary=FEn&&!n}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new pl(ak,this.uri(),e)}}function ak(t){const e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||$En))return new XMLHttpRequest}catch{}if(!e)try{return new $i[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const lk=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class qEn extends ch{get name(){return"websocket"}doOpen(){const e=this.uri(),n=this.opts.protocols,o=lk?{}:ik(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(o.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,n,o)}catch(r){return this.emitReserved("error",r)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n{try{this.doWrite(o,i)}catch{}r&&v5(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=ok()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}}const KT=$i.WebSocket||$i.MozWebSocket;class GEn extends qEn{createSocket(e,n,o){return lk?new KT(e,n,o):n?new KT(e,n):new KT(e)}doWrite(e,n){this.ws.send(n)}}class jEn extends ch{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const n=CEn(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=e.readable.pipeThrough(n).getReader(),r=LEn();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();const i=()=>{o.read().then(({done:a,value:l})=>{a||(this.onPacket(l),i())}).catch(a=>{})};i();const s={type:"open"};this.query.sid&&(s.data=`{"sid":"${this.query.sid}"}`),this._writer.write(s).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let n=0;n{r&&v5(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const zEn={websocket:GEn,webtransport:jEn,polling:UEn},YEn=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,WEn=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Mf(t){if(t.length>8e3)throw"URI too long";const e=t,n=t.indexOf("["),o=t.indexOf("]");n!=-1&&o!=-1&&(t=t.substring(0,n)+t.substring(n,o).replace(/:/g,";")+t.substring(o,t.length));let r=YEn.exec(t||""),i={},s=14;for(;s--;)i[WEn[s]]=r[s]||"";return n!=-1&&o!=-1&&(i.source=e,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=KEn(i,i.path),i.queryKey=ZEn(i,i.query),i}function KEn(t,e){const n=/\/{2,9}/g,o=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&o.splice(0,1),e.slice(-1)=="/"&&o.splice(o.length-1,1),o}function ZEn(t,e){const n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,r,i){r&&(n[r]=i)}),n}const Rf=typeof addEventListener=="function"&&typeof removeEventListener=="function",Z6=[];Rf&&addEventListener("offline",()=>{Z6.forEach(t=>t())},!1);class j1 extends On{constructor(e,n){if(super(),this.binaryType=wEn,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(n=e,e=null),e){const o=Mf(e);n.hostname=o.host,n.secure=o.protocol==="https"||o.protocol==="wss",n.port=o.port,o.query&&(n.query=o.query)}else n.host&&(n.hostname=Mf(n.host).host);y5(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(o=>{const r=o.prototype.name;this.transports.push(r),this._transportsByName[r]=o}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=kEn(this.opts.query)),Rf&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Z6.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const n=Object.assign({},this.opts.query);n.EIO=rk,n.transport=e,this.id&&(n.sid=this.id);const o=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](o)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&j1.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(e);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",j1.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=e.data,this._onError(n);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let o=0;o0&&n>this._maxPayload)return this.writeBuffer.slice(0,o);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,v5(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,n,o){return this._sendPacket("message",e,n,o),this}send(e,n,o){return this._sendPacket("message",e,n,o),this}_sendPacket(e,n,o,r){if(typeof n=="function"&&(r=n,n=void 0),typeof o=="function"&&(r=o,o=null),this.readyState==="closing"||this.readyState==="closed")return;o=o||{},o.compress=o.compress!==!1;const i={type:e,data:n,options:o};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},o=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?o():e()}):this.upgrading?o():e()),this}_onError(e){if(j1.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Rf&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const o=Z6.indexOf(this._offlineEventListener);o!==-1&&Z6.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}}j1.protocol=rk;class XEn extends j1{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e{o||(n.send([{type:"ping",data:"probe"}]),n.once("packet",d=>{if(!o)if(d.type==="pong"&&d.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;j1.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{o||this.readyState!=="closed"&&(u(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=n.name,this.emitReserved("upgradeError",f)}}))};function i(){o||(o=!0,u(),n.close(),n=null)}const s=d=>{const f=new Error("probe error: "+d);f.transport=n.name,i(),this.emitReserved("upgradeError",f)};function a(){s("transport closed")}function l(){s("socket closed")}function c(d){n&&d.name!==n.name&&i()}const u=()=>{n.removeListener("open",r),n.removeListener("error",s),n.removeListener("close",a),this.off("close",l),this.off("upgrading",c)};n.once("open",r),n.once("error",s),n.once("close",a),this.once("close",l),this.once("upgrading",c),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{o||n.open()},200):n.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const n=[];for(let o=0;ozEn[r]).filter(r=>!!r)),super(e,o)}};function eSn(t,e="",n){let o=t;n=n||typeof location<"u"&&location,t==null&&(t=n.protocol+"//"+n.host),typeof t=="string"&&(t.charAt(0)==="/"&&(t.charAt(1)==="/"?t=n.protocol+t:t=n.host+t),/^(https?|wss?):\/\//.test(t)||(typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),o=Mf(t)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";const i=o.host.indexOf(":")!==-1?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+i+":"+o.port+e,o.href=o.protocol+"://"+i+(n&&n.port===o.port?"":":"+o.port),o}const tSn=typeof ArrayBuffer=="function",nSn=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,ck=Object.prototype.toString,rSn=typeof Blob=="function"||typeof Blob<"u"&&ck.call(Blob)==="[object BlobConstructor]",iSn=typeof File=="function"||typeof File<"u"&&ck.call(File)==="[object FileConstructor]";function uh(t){return tSn&&(t instanceof ArrayBuffer||nSn(t))||rSn&&t instanceof Blob||iSn&&t instanceof File}function X6(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,o=t.length;n=0&&t.num{delete this.acks[e];for(let a=0;a{this.io.clearTimeoutFn(i),n.apply(this,a)};s.withError=!0,this.acks[e]=s}emitWithAck(e,...n){return new Promise((o,r)=>{const i=(s,a)=>s?r(s):o(a);i.withError=!0,n.push(i),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());const o={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((r,...i)=>o!==this._queue[0]?void 0:(r!==null?o.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(r)):(this._queue.shift(),n&&n(null,...i)),o.pending=!1,this._drainQueue())),this._queue.push(o),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!e||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:Mt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(o=>String(o.id)===e)){const o=this.acks[e];delete this.acks[e],o.withError&&o.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case Mt.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Mt.EVENT:case Mt.BINARY_EVENT:this.onevent(e);break;case Mt.ACK:case Mt.BINARY_ACK:this.onack(e);break;case Mt.DISCONNECT:this.ondisconnect();break;case Mt.CONNECT_ERROR:this.destroy();const o=new Error(e.data.message);o.data=e.data.data,this.emitReserved("connect_error",o);break}}onevent(e){const n=e.data||[];e.id!=null&&n.push(this.ack(e.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const o of n)o.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const n=this;let o=!1;return function(...r){o||(o=!0,n.packet({type:Mt.ACK,id:e,data:r}))}}onack(e){const n=this.acks[e.id];typeof n=="function"&&(delete this.acks[e.id],n.withError&&e.data.unshift(null),n.apply(this,e.data))}onconnect(e,n){this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Mt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const n=this._anyListeners;for(let o=0;o0&&t.jitter<=1?t.jitter:0,this.attempts=0}ql.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=(Math.floor(e*10)&1)==0?t-n:t+n}return Math.min(t,this.max)|0};ql.prototype.reset=function(){this.attempts=0};ql.prototype.setMin=function(t){this.ms=t};ql.prototype.setMax=function(t){this.max=t};ql.prototype.setJitter=function(t){this.jitter=t};class If extends On{constructor(e,n){var o;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,y5(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((o=n.randomizationFactor)!==null&&o!==void 0?o:.5),this.backoff=new ql({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;const r=n.parser||dSn;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new JEn(this.uri,this.opts);const n=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;const r=Ho(n,"open",function(){o.onopen(),e&&e()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),e?e(a):this.maybeReconnectOnOpen()},s=Ho(n,"error",i);if(this._timeout!==!1){const a=this._timeout,l=this.setTimeoutFn(()=>{r(),i(new Error("timeout")),n.close()},a);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(r),this.subs.push(s),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(Ho(e,"ping",this.onping.bind(this)),Ho(e,"data",this.ondata.bind(this)),Ho(e,"error",this.onerror.bind(this)),Ho(e,"close",this.onclose.bind(this)),Ho(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){v5(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,n){let o=this.nsps[e];return o?this._autoConnect&&!o.active&&o.connect():(o=new uk(this,e,n),this.nsps[e]=o),o}_destroy(e){const n=Object.keys(this.nsps);for(const o of n)if(this.nsps[o].active)return;this._close()}_packet(e){const n=this.encoder.encode(e);for(let o=0;oe()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,n){var o;this.cleanup(),(o=this.engine)===null||o===void 0||o.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const o=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(r=>{r?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",r)):e.onreconnect()}))},n);this.opts.autoUnref&&o.unref(),this.subs.push(()=>{this.clearTimeoutFn(o)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const ic={};function J6(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};const n=eSn(t,e.path||"/socket.io"),o=n.source,r=n.id,i=n.path,s=ic[r]&&i in ic[r].nsps,a=e.forceNew||e["force new connection"]||e.multiplex===!1||s;let l;return a?l=new If(o,e):(ic[r]||(ic[r]=new If(o,e)),l=ic[r]),n.query&&!e.query&&(e.query=n.queryKey),l.socket(n.path,e)}Object.assign(J6,{Manager:If,Socket:uk,io:J6,connect:J6});const dk="/";console.log(dk);const Ye=new J6(dk,{reconnection:!0,reconnectionAttempts:10,reconnectionDelay:1e3}),fSn={props:{value:String,inputType:{type:String,default:"text",validator:t=>["text","email","password","file","path","integer","float"].includes(t)},fileAccept:String},data(){return{inputValue:this.value,placeholderText:this.getPlaceholderText()}},watch:{value(t){console.log("Changing value to ",t),this.inputValue=t}},mounted(){be(()=>{Le.replace()}),console.log("Changing value to ",this.value),this.inputValue=this.value},methods:{handleSliderInput(t){this.inputValue=t.target.value,this.$emit("input",t.target.value)},getPlaceholderText(){switch(this.inputType){case"text":return"Enter text here";case"email":return"Enter your email";case"password":return"Enter your password";case"file":case"path":return"Choose a file";case"integer":return"Enter an integer";case"float":return"Enter a float";default:return"Enter value here"}},handleInput(t){if(this.inputType==="integer"){const e=t.target.value.replace(/[^0-9]/g,"");this.inputValue=e}console.log("handling input : ",t.target.value),this.$emit("input",t.target.value)},async pasteFromClipboard(){try{const t=await navigator.clipboard.readText();this.handleClipboardData(t)}catch(t){console.error("Failed to read from clipboard:",t)}},handlePaste(t){const e=t.clipboardData.getData("text");this.handleClipboardData(e)},handleClipboardData(t){switch(this.inputType){case"email":this.inputValue=this.isValidEmail(t)?t:"";break;case"password":this.inputValue=t;break;case"file":case"path":this.inputValue="";break;case"integer":this.inputValue=this.parseInteger(t);break;case"float":this.inputValue=this.parseFloat(t);break;default:this.inputValue=t;break}},isValidEmail(t){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)},parseInteger(t){const e=parseInt(t);return isNaN(e)?"":e},parseFloat(t){const e=parseFloat(t);return isNaN(e)?"":e},openFileInput(){this.$refs.fileInput.click()},handleFileInputChange(t){const e=t.target.files[0];e&&(this.inputValue=e.name)}}},pSn={class:"flex items-center space-x-2"},hSn=["value","type","placeholder"],mSn=["value","min","max"],gSn=["accept"];function _Sn(t,e,n,o,r,i){return N(),H("div",pSn,[t.useSlider?(N(),H("input",{key:1,type:"range",value:parseInt(r.inputValue),min:t.minSliderValue,max:t.maxSliderValue,onInput:e[2]||(e[2]=(...s)=>i.handleSliderInput&&i.handleSliderInput(...s)),class:"flex-1 px-4 py-2 text-lg border dark:bg-gray-600 border-gray-300 rounded-md focus:outline-none focus:ring focus:border-blue-500"},null,40,mSn)):(N(),H("input",{key:0,value:r.inputValue,type:n.inputType,placeholder:r.placeholderText,onInput:e[0]||(e[0]=(...s)=>i.handleInput&&i.handleInput(...s)),onPaste:e[1]||(e[1]=(...s)=>i.handlePaste&&i.handlePaste(...s)),class:"flex-1 px-4 py-2 text-lg dark:bg-gray-600 border border-gray-300 rounded-md focus:outline-none focus:ring focus:border-blue-500"},null,40,hSn)),S("button",{onClick:e[3]||(e[3]=(...s)=>i.pasteFromClipboard&&i.pasteFromClipboard(...s)),class:"p-2 bg-blue-500 dark:bg-gray-600 text-white rounded-md hover:bg-blue-600 focus:outline-none focus:ring focus:border-blue-300"},e[6]||(e[6]=[S("i",{"data-feather":"clipboard"},null,-1)])),n.inputType==="file"?(N(),H("button",{key:2,onClick:e[4]||(e[4]=(...s)=>i.openFileInput&&i.openFileInput(...s)),class:"p-2 bg-blue-500 text-white rounded-md hover:bg-blue-600 focus:outline-none focus:ring focus:border-blue-300"},e[7]||(e[7]=[S("i",{"data-feather":"upload"},null,-1)]))):Z("",!0),n.inputType==="file"?(N(),H("input",{key:3,ref:"fileInput",type:"file",style:{display:"none"},accept:n.fileAccept,onChange:e[5]||(e[5]=(...s)=>i.handleFileInputChange&&i.handleFileInputChange(...s))},null,40,gSn)):Z("",!0)])}const Th=ze(fSn,[["render",_Sn],["__scopeId","data-v-81c70e8d"]]),QSn={name:"TokensHighlighter",props:{namedTokens:{type:Object,required:!0}},data(){return{colors:["#FF6633","#FFB399","#FF33FF","#FFFF99","#00B3E6","#E6B333","#3366E6","#999966","#99FF99","#B34D4D","#80B300","#809900","#E6B3B3","#6680B3","#66991A","#FF99E6","#CCFF1A","#FF1A66","#E6331A","#33FFCC","#66994D","#B366CC","#4D8000","#B33300","#CC80CC","#66664D","#991AFF","#E666FF","#4DB3FF","#1AB399","#E666B3","#33991A","#CC9999","#B3B31A","#00E680","#4D8066","#809980","#E6FF80","#1AFF33","#999933","#FF3380","#CCCC00","#66E64D","#4D80CC","#9900B3","#E64D66","#4DB380","#FF4D4D","#99E6E6","#6666FF"]}}},vSn={class:"w-full"},ySn={class:"break-words"},bSn={class:"break-words mt-2"},ESn={class:"mt-4"};function SSn(t,e,n,o,r,i){return N(),H("div",vSn,[S("div",ySn,[(N(!0),H(Ae,null,Ue(n.namedTokens,(s,a)=>(N(),H("span",{key:a},[S("span",{class:"inline-block whitespace-pre-wrap",style:Jt({backgroundColor:r.colors[a%r.colors.length]})},J(s[0]),5)]))),128))]),S("div",bSn,[(N(!0),H(Ae,null,Ue(n.namedTokens,(s,a)=>(N(),H("span",{key:a},[S("span",{class:"inline-block px-1 whitespace-pre-wrap",style:Jt({backgroundColor:r.colors[a%r.colors.length]})},J(s[1]),5)]))),128))]),S("div",ESn,[S("strong",null,"Total Tokens: "+J(n.namedTokens.length),1)])])}const xSn=ze(QSn,[["render",SSn]]),LSn={name:"ChatBarButton",emits:["click"]};function CSn(t,e,n,o,r,i){return N(),H("button",hR({class:"svg-button"},t.$attrs,{onClick:e[0]||(e[0]=s=>t.$emit("click",s))}),[_n(t.$slots,"icon"),_n(t.$slots,"default")],16)}const fh=ze(LSn,[["render",CSn]]),ASn={name:"EnhancedCard",props:{isSubcard:{type:Boolean,default:!1},initiallyShrunk:{type:Boolean,default:!1},canShrink:{type:Boolean,default:!0},title:{type:String,default:""},isHorizontal:{type:Boolean,default:!1},cardWidth:{type:String,default:"w-full"},marginClass:{type:String,default:"m-2"},disableHoverAnimation:{type:Boolean,default:!1},disableFocus:{type:Boolean,default:!1}},emits:["shrunk","expanded","focused","blurred"],setup(t,{emit:e}){const n=ke(t.initiallyShrunk),o=ke(!1),r=$e(()=>`card-content-${Math.random().toString(36).substring(2,9)}`),i=()=>{t.canShrink&&!n.value&&(n.value=!0,e("shrunk"),o.value&&c())},s=()=>{t.canShrink&&n.value&&(n.value=!1,e("expanded"))},a=()=>{t.canShrink&&(n.value?s():i())},l=()=>{!t.disableFocus&&!o.value&&(o.value=!0,e("focused"),document.body.style.overflow="hidden")},c=()=>{o.value&&(o.value=!1,e("blurred"),document.body.style.overflow="")},u=d=>{d.key==="Escape"&&o.value&&c()};return hr(()=>{document.addEventListener("keydown",u)}),X1(()=>{document.removeEventListener("keydown",u),o.value&&(document.body.style.overflow="")}),{isShrunkInternal:n,isActive:o,contentId:r,shrinkCard:i,expandCard:s,toggleShrink:a,focusCard:l,blurCard:c}}},wSn=["id"],OSn=["aria-expanded","aria-controls","tabindex"],MSn={key:0,class:"ml-2 text-sm"},RSn=["aria-label"];function NSn(t,e,n,o,r,i){return N(),H("div",{class:Ee(n.marginClass)},[o.isActive?(N(),H("div",{key:0,class:"overlay",onClick:e[0]||(e[0]=(...s)=>o.blurCard&&o.blurCard(...s))})):Z("",!0),Ce(S("div",{id:o.contentId,class:Ee(["card-container relative border rounded-lg shadow-lg p-4 transition-all duration-300 ease-in-out",n.cardWidth,"bg-clip-padding backdrop-filter backdrop-blur-xl bg-opacity-60","border border-gray-200/30",{"bg-gray-100 dark:bg-gray-800":n.isSubcard},{"bg-white dark:bg-gray-900":!n.isSubcard},{"scale-110 z-[1001]":o.isActive},{"cursor-pointer":!n.disableFocus}]),onClick:e[4]||(e[4]=oe((...s)=>o.focusCard&&o.focusCard(...s),["self"]))},[o.isActive?(N(),H("button",{key:0,onClick:e[1]||(e[1]=(...s)=>o.blurCard&&o.blurCard(...s)),class:"absolute top-2 right-2 text-gray-700 hover:text-black dark:text-gray-300 dark:hover:text-white text-2xl leading-none z-10 transition-colors","aria-label":"Close"}," × ")):Z("",!0),n.title?(N(),H("div",{key:1,class:Ee(["flex justify-between items-center rounded-t-lg pl-3 pr-3 pt-2 pb-2 mb-3 font-bold","text-gray-800 dark:text-gray-100",{"cursor-pointer":n.canShrink}]),onClick:e[2]||(e[2]=(...s)=>o.toggleShrink&&o.toggleShrink(...s)),role:"button","aria-expanded":!o.isShrunkInternal,"aria-controls":o.contentId,tabindex:n.canShrink?0:-1,onKeydown:e[3]||(e[3]=Qn((...s)=>o.toggleShrink&&o.toggleShrink(...s),["enter","space"]))},[S("span",null,J(n.title),1),n.canShrink?(N(),H("span",MSn,J(o.isShrunkInternal?"▼":"▲"),1)):Z("",!0)],42,OSn)):Z("",!0),S("div",{class:Ee(["text-gray-700 dark:text-gray-200",{"flex flex-wrap":n.isHorizontal,"mb-2":!n.isHorizontal}])},[_n(t.$slots,"default",{},void 0,!0)],2)],10,wSn),[[wn,!o.isShrunkInternal]]),n.canShrink?Ce((N(),H("div",{key:1,onClick:e[5]||(e[5]=(...s)=>o.expandCard&&o.expandCard(...s)),class:Ee(["shrunk-card border rounded-lg shadow-lg p-2 text-center cursor-pointer transition-all duration-300 ease-in-out",n.cardWidth,"bg-clip-padding backdrop-filter backdrop-blur-md bg-opacity-70","border border-gray-200/30",{"bg-gray-100 dark:bg-gray-800":n.isSubcard},{"bg-white dark:bg-gray-900":!n.isSubcard},"hover:bg-opacity-80 dark:hover:bg-opacity-80",{"text-lg font-semibold text-gray-800 dark:text-gray-200":n.isSubcard},{"text-xl font-bold text-gray-800 dark:text-gray-200":!n.isSubcard}]),role:"button","aria-label":`Expand ${n.title||"Card"}`,tabindex:"0",onKeydown:e[6]||(e[6]=Qn((...s)=>o.expandCard&&o.expandCard(...s),["enter","space"]))},[Oe(J(n.title||"Show Card")+" ",1),e[7]||(e[7]=S("span",{class:"text-sm"},"▼",-1))],42,RSn)),[[wn,o.isShrunkInternal]]):Z("",!0)],2)}const ph=ze(ASn,[["render",NSn],["__scopeId","data-v-c3cec55e"]]),Tk="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%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%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20%203H4c-1.103%200-2%20.897-2%202v14c0%201.103.897%202%202%202h16c1.103%200%202-.897%202-2V5c0-1.103-.897-2-2-2zM4%2019V7h16l.002%2012H4z'/%3e%3cpath%20d='M9.293%209.293%205.586%2013l3.707%203.707%201.414-1.414L8.414%2013l2.293-2.293zm5.414%200-1.414%201.414L15.586%2013l-2.293%202.293%201.414%201.414L18.414%2013z'/%3e%3c/svg%3e",fk="/assets/python_block-Bt12VGEE.png",pk="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.3.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20630%20630'%20style='enable-background:new%200%200%20630%20630;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23EDBF4A;}%20.st1{fill:%230C0C0C;}%20%3c/style%3e%3crect%20class='st0'%20width='630'%20height='630'/%3e%3cpath%20class='st1'%20d='M423.2,492.2c12.7,20.7,29.2,36,58.4,36c24.5,0,40.2-12.3,40.2-29.2c0-20.3-16.1-27.5-43.1-39.3l-14.8-6.4%20c-42.7-18.2-71.1-41-71.1-89.2c0-44.4,33.8-78.2,86.7-78.2c37.6,0,64.7,13.1,84.2,47.4l-46.1,29.6c-10.1-18.2-21.1-25.4-38.1-25.4%20c-17.3,0-28.3,11-28.3,25.4c0,17.8,11,25,36.4,36l14.8,6.3c50.3,21.6,78.7,43.6,78.7,93c0,53.3-41.9,82.5-98.1,82.5%20c-55,0-90.5-26.2-107.9-60.5L423.2,492.2z%20M214.1,497.3c9.3,16.5,17.8,30.5,38.1,30.5c19.5,0,31.7-7.6,31.7-37.2V289.3h59.2v202.1%20c0,61.3-35.9,89.2-88.4,89.2c-47.4,0-74.9-24.5-88.8-54.1L214.1,497.3z'/%3e%3c/svg%3e",hk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOeSURBVGhD7ZhNaBNBGIZHW/EPbSioRSpi0FRpVdRSjQfxkFilB5UciuChIL0JLaKIhR5KIYKIiBSF0mLVS7AIavUgPQjiT4+KB0EP3gwS8VDBgj8d33d2ZrNJt2lCppKWfeBh5pvdncyXmZ3sZokQQsIFz1JdLni8M8L6QkSNf9HMSJBIpREkUmkEiVQaQSKVRpCIH8lkUtbW1sre3l7fB9FoNCrD4fC8PaSyYyudNzU1yZGRkYJ9dXV1yUQiYTMZNX6rM5LJZERHR0fBh0/MmJDSZh4OVhOZmprStf+P1UQmJyd1zaGvr09NuxM5VFVViYmJCR3Zw1oiPT09koP00tjYKNrb23XkEIlERHV1tY7sMuNbK5XR0VGJwcnBwcGi+uns7Cz7Mz24fVnpdGhoSDY0NBTbjxweHi77MzXu+N2KBebsh7PW0tJi6/OIGr/Vm72mpkbXssTj8ZxBp9NpUV9fryN7WE0kn1QqJcfHx3U0v1hNJBQKqXtFh2JsbEx0d3frKMv09LSu2UWtMadaHm1tberxQ+9Koq6uLqff1tZW2dzcLPXviy3c8bsVG/T398+6I8ViMTkwMGDtszRq/MEfdJVGkEilESRSaZSSyCa43anmsAPGII/7wWd7nnMEbmaDD2G41anmsA76tfui9mGnWpAPkOftVpEQuyDfkMz19Bv0cg56j9NP8AQ07IXm2Es2eHgK2b5RRf6Ya7OVOchP5D1kfA0m4GX4CxouQR7/A6/DC/CObqNRSA5A00Y7oeG/JMJBM65TUS7rIV/gefw4GzzchWx/rKJsIu90+REaik6knJv9hy5vw4NO1WU/XAG/w0ds8MABk326NLyGL+A2eJYNpVBOIhd1eRS+gs/hTjYAc4M+06WX+7rkt7zKqbrc0OV5WNIjUzmJDME9MKUiIQ5DvnyshOZfCL/+l+uSz/I/narLA8gvhLsb77miKScR8haegqfhb7gBcoa4M5G4Lr0069Kck88VXZ6B+TNWEHWzONWCpCHPM78lZhkZ3kAePwa36DpthQYulwxke5INwNzst1Tk8ASa66mVXYtLgFPOc7iVroUtOh6F3Gbv6fgLXAPJVWj65vU3IW9oxl+hWWJ+iRyC5lpqJZHP0JxjbnBO+UP4F5pjXNsnoRf+IJqZpNySmRSXoMEvEeL9Iqwkwm20Cfqt12UwAleraHZCcLbHEzLz75fiUeMP3hArjUWTiHdpLWgWyYwI8Q8rrSjH5vAr6AAAAABJRU5ErkJggg==",mk="/assets/cpp_block-kkmuBJ_E.png",gk="/assets/html5_block-beC_-Wtz.png",_k="/assets/LaTeX_block-BNFNi2yr.png",Qk="/assets/bash_block-DZNRrwlz.png",DSn="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTAgNTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxjaXJjbGUgY3g9IjI1IiBjeT0iMjUiIHI9IjI1IiBmaWxsPSJkZWVwc2t5Ymx1ZSIvPg0KICA8dGV4dCB4PSIyNSIgeT0iMzciIGZvbnQtc2l6ZT0iMzYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IndoaXRlIiBmb250LXdlaWdodD0iYm9sZCI+VDwvdGV4dD4NCjwvc3ZnPg0K",ISn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='red'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%3e%3c/circle%3e%3cpath%20d='M16%2016s-1.5-2-4-2-4%202-4%202'%20stroke='currentColor'%3e%3c/path%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%20stroke='currentColor'%3e%3c/line%3e%3c/svg%3e",kSn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%3e%3c/circle%3e%3cpath%20d='M16%2016s-1.5-2-4-2-4%202-4%202'%3e%3c/path%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%3e%3c/line%3e%3c/svg%3e",HSn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%3e%3ccircle%20cx='25'%20cy='25'%20r='24'%20fill='white'%20stroke='black'%20stroke-width='2'/%3e%3ccircle%20id='heartbeat'%20cx='25'%20cy='25'%20r='20'%20fill='red'%3e%3canimate%20attributeName='r'%20dur='1s'%20repeatCount='indefinite'%20keyTimes='0;0.25;0.5;0.75;1'%20values='20;24;20;22;20'/%3e%3c/circle%3e%3c/svg%3e",PSn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%3e%3ccircle%20cx='25'%20cy='25'%20r='24'%20fill='white'%20stroke='black'%20stroke-width='2'/%3e%3ccircle%20cx='25'%20cy='25'%20r='20'%20fill='red'/%3e%3c/svg%3e",vk="data:image/svg+xml,%3csvg%20viewBox='0%200%2050%2050'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='translate(25,25)'%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%23f00'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%230f0'%20transform='rotate(90)'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1.2s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%2300f'%20transform='rotate(180)'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1.4s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%23ff0'%20transform='rotate(270)'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1.6s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3c/g%3e%3c/svg%3e",$Sn={name:"ToolbarButton",emits:["click"],props:{icon:{type:String,required:!0},title:{type:String,required:!0}},computed:{iconPath(){switch(this.icon){case"x":return'';case"check":return'';case"edit":return'';case"copy":return'';case"trash":return'';case"plus-square":return'';case"send":return'';case"globe":return'';case"fast-forward":return'';case"refresh-cw":return'';case"thumbs-up":return'';case"thumbs-down":return'';case"volume-2":return'';case"mic":return'';case"code":return'';case"python":return'';case"js":return'JS';case"typescript":return'TS';case"java":return'';case"cplusplus":case"c++":return'C++';case"csharp":return'C#';case"go":return'Go';case"rust":return'';case"swift":return'';case"kotlin":return'';case"r-project":return'R';case"html5":return'';case"css3":return'';case"vuejs":return'';case"react":return'';case"angular":return'';case"xml":return'';case"json":return'';case"yaml":return'';case"markdown":return'';case"latex":return'TeX';case"terminal":return'';case"bash":return'';case"powershell":return'';case"perl":return'';case"mermaid":return'';case"graphviz":return'';case"plantuml":return'';case"database":return'';case"sql":return'';case"mongodb":return'';case"chrome":return'';case"file-text":return'';case"git-branch":return'';default:return console.warn(`ToolbarButton: Icon "${this.icon}" not found.`),''}}},methods:{emit_click(t){console.log("ToolbarButton clicked:",this.title),this.$emit("click",t)}}},VSn=["title"],BSn={class:"w-5 h-5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},FSn=["innerHTML"];function USn(t,e,n,o,r,i){return N(),H("button",{class:"svg-button",title:n.title,onClick:e[0]||(e[0]=(...s)=>i.emit_click&&i.emit_click(...s))},[(N(),H("svg",BSn,[S("g",{innerHTML:i.iconPath},null,8,FSn)]))],8,VSn)}const hh=ze($Sn,[["render",USn],["__scopeId","data-v-9da87cca"]]);var qr="top",zi="bottom",Yi="right",Gr="left",mh="auto",e6=[qr,zi,Yi,Gr],Sl="start",Dc="end",qSn="clippingParents",yk="viewport",oc="popper",GSn="reference",mO=e6.reduce(function(t,e){return t.concat([e+"-"+Sl,e+"-"+Dc])},[]),bk=[].concat(e6,[mh]).reduce(function(t,e){return t.concat([e,e+"-"+Sl,e+"-"+Dc])},[]),jSn="beforeRead",zSn="read",YSn="afterRead",WSn="beforeMain",KSn="main",ZSn="afterMain",XSn="beforeWrite",JSn="write",exn="afterWrite",txn=[jSn,zSn,YSn,WSn,KSn,ZSn,XSn,JSn,exn];function as(t){return t?(t.nodeName||"").toLowerCase():null}function Ci(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function N2(t){var e=Ci(t).Element;return t instanceof e||t instanceof Element}function qi(t){var e=Ci(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function gh(t){if(typeof ShadowRoot>"u")return!1;var e=Ci(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function nxn(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var o=e.styles[n]||{},r=e.attributes[n]||{},i=e.elements[n];!qi(i)||!as(i)||(Object.assign(i.style,o),Object.keys(r).forEach(function(s){var a=r[s];a===!1?i.removeAttribute(s):i.setAttribute(s,a===!0?"":a)}))})}function rxn(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(o){var r=e.elements[o],i=e.attributes[o]||{},s=Object.keys(e.styles.hasOwnProperty(o)?e.styles[o]:n[o]),a=s.reduce(function(l,c){return l[c]="",l},{});!qi(r)||!as(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(l){r.removeAttribute(l)}))})}}const ixn={name:"applyStyles",enabled:!0,phase:"write",fn:nxn,effect:rxn,requires:["computeStyles"]};function is(t){return t.split("-")[0]}var C2=Math.max,C0=Math.min,xl=Math.round;function kf(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Ek(){return!/^((?!chrome|android).)*safari/i.test(kf())}function Ll(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!1);var o=t.getBoundingClientRect(),r=1,i=1;e&&qi(t)&&(r=t.offsetWidth>0&&xl(o.width)/t.offsetWidth||1,i=t.offsetHeight>0&&xl(o.height)/t.offsetHeight||1);var s=N2(t)?Ci(t):window,a=s.visualViewport,l=!Ek()&&n,c=(o.left+(l&&a?a.offsetLeft:0))/r,u=(o.top+(l&&a?a.offsetTop:0))/i,d=o.width/r,f=o.height/i;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c,x:c,y:u}}function _h(t){var e=Ll(t),n=t.offsetWidth,o=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-o)<=1&&(o=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:o}}function Sk(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&gh(n)){var o=e;do{if(o&&t.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function b1(t){return Ci(t).getComputedStyle(t)}function oxn(t){return["table","td","th"].indexOf(as(t))>=0}function ra(t){return((N2(t)?t.ownerDocument:t.document)||window.document).documentElement}function b5(t){return as(t)==="html"?t:t.assignedSlot||t.parentNode||(gh(t)?t.host:null)||ra(t)}function gO(t){return!qi(t)||b1(t).position==="fixed"?null:t.offsetParent}function sxn(t){var e=/firefox/i.test(kf()),n=/Trident/i.test(kf());if(n&&qi(t)){var o=b1(t);if(o.position==="fixed")return null}var r=b5(t);for(gh(r)&&(r=r.host);qi(r)&&["html","body"].indexOf(as(r))<0;){var i=b1(r);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return r;r=r.parentNode}return null}function t6(t){for(var e=Ci(t),n=gO(t);n&&oxn(n)&&b1(n).position==="static";)n=gO(n);return n&&(as(n)==="html"||as(n)==="body"&&b1(n).position==="static")?e:n||sxn(t)||e}function Qh(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function _c(t,e,n){return C2(t,C0(e,n))}function axn(t,e,n){var o=_c(t,e,n);return o>n?n:o}function xk(){return{top:0,right:0,bottom:0,left:0}}function Lk(t){return Object.assign({},xk(),t)}function Ck(t,e){return e.reduce(function(n,o){return n[o]=t,n},{})}var lxn=function(e,n){return e=typeof e=="function"?e(Object.assign({},n.rects,{placement:n.placement})):e,Lk(typeof e!="number"?e:Ck(e,e6))};function cxn(t){var e,n=t.state,o=t.name,r=t.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,a=is(n.placement),l=Qh(a),c=[Gr,Yi].indexOf(a)>=0,u=c?"height":"width";if(!(!i||!s)){var d=lxn(r.padding,n),f=_h(i),T=l==="y"?qr:Gr,h=l==="y"?zi:Yi,g=n.rects.reference[u]+n.rects.reference[l]-s[l]-n.rects.popper[u],_=s[l]-n.rects.reference[l],m=t6(i),Q=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,v=g/2-_/2,b=d[T],y=Q-f[u]-d[h],E=Q/2-f[u]/2+v,x=_c(b,E,y),L=l;n.modifiersData[o]=(e={},e[L]=x,e.centerOffset=x-E,e)}}function uxn(t){var e=t.state,n=t.options,o=n.element,r=o===void 0?"[data-popper-arrow]":o;r!=null&&(typeof r=="string"&&(r=e.elements.popper.querySelector(r),!r)||Sk(e.elements.popper,r)&&(e.elements.arrow=r))}const dxn={name:"arrow",enabled:!0,phase:"main",fn:cxn,effect:uxn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Cl(t){return t.split("-")[1]}var Txn={top:"auto",right:"auto",bottom:"auto",left:"auto"};function fxn(t,e){var n=t.x,o=t.y,r=e.devicePixelRatio||1;return{x:xl(n*r)/r||0,y:xl(o*r)/r||0}}function _O(t){var e,n=t.popper,o=t.popperRect,r=t.placement,i=t.variation,s=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,u=t.roundOffsets,d=t.isFixed,f=s.x,T=f===void 0?0:f,h=s.y,g=h===void 0?0:h,_=typeof u=="function"?u({x:T,y:g}):{x:T,y:g};T=_.x,g=_.y;var m=s.hasOwnProperty("x"),Q=s.hasOwnProperty("y"),v=Gr,b=qr,y=window;if(c){var E=t6(n),x="clientHeight",L="clientWidth";if(E===Ci(n)&&(E=ra(n),b1(E).position!=="static"&&a==="absolute"&&(x="scrollHeight",L="scrollWidth")),E=E,r===qr||(r===Gr||r===Yi)&&i===Dc){b=zi;var C=d&&E===y&&y.visualViewport?y.visualViewport.height:E[x];g-=C-o.height,g*=l?1:-1}if(r===Gr||(r===qr||r===zi)&&i===Dc){v=Yi;var A=d&&E===y&&y.visualViewport?y.visualViewport.width:E[L];T-=A-o.width,T*=l?1:-1}}var O=Object.assign({position:a},c&&Txn),R=u===!0?fxn({x:T,y:g},Ci(n)):{x:T,y:g};if(T=R.x,g=R.y,l){var D;return Object.assign({},O,(D={},D[b]=Q?"0":"",D[v]=m?"0":"",D.transform=(y.devicePixelRatio||1)<=1?"translate("+T+"px, "+g+"px)":"translate3d("+T+"px, "+g+"px, 0)",D))}return Object.assign({},O,(e={},e[b]=Q?g+"px":"",e[v]=m?T+"px":"",e.transform="",e))}function pxn(t){var e=t.state,n=t.options,o=n.gpuAcceleration,r=o===void 0?!0:o,i=n.adaptive,s=i===void 0?!0:i,a=n.roundOffsets,l=a===void 0?!0:a,c={placement:is(e.placement),variation:Cl(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:r,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,_O(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,_O(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const hxn={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:pxn,data:{}};var M6={passive:!0};function mxn(t){var e=t.state,n=t.instance,o=t.options,r=o.scroll,i=r===void 0?!0:r,s=o.resize,a=s===void 0?!0:s,l=Ci(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,M6)}),a&&l.addEventListener("resize",n.update,M6),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,M6)}),a&&l.removeEventListener("resize",n.update,M6)}}const gxn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:mxn,data:{}};var _xn={left:"right",right:"left",bottom:"top",top:"bottom"};function e0(t){return t.replace(/left|right|bottom|top/g,function(e){return _xn[e]})}var Qxn={start:"end",end:"start"};function QO(t){return t.replace(/start|end/g,function(e){return Qxn[e]})}function vh(t){var e=Ci(t),n=e.pageXOffset,o=e.pageYOffset;return{scrollLeft:n,scrollTop:o}}function yh(t){return Ll(ra(t)).left+vh(t).scrollLeft}function vxn(t,e){var n=Ci(t),o=ra(t),r=n.visualViewport,i=o.clientWidth,s=o.clientHeight,a=0,l=0;if(r){i=r.width,s=r.height;var c=Ek();(c||!c&&e==="fixed")&&(a=r.offsetLeft,l=r.offsetTop)}return{width:i,height:s,x:a+yh(t),y:l}}function yxn(t){var e,n=ra(t),o=vh(t),r=(e=t.ownerDocument)==null?void 0:e.body,i=C2(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=C2(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-o.scrollLeft+yh(t),l=-o.scrollTop;return b1(r||n).direction==="rtl"&&(a+=C2(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:s,x:a,y:l}}function bh(t){var e=b1(t),n=e.overflow,o=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function Ak(t){return["html","body","#document"].indexOf(as(t))>=0?t.ownerDocument.body:qi(t)&&bh(t)?t:Ak(b5(t))}function Qc(t,e){var n;e===void 0&&(e=[]);var o=Ak(t),r=o===((n=t.ownerDocument)==null?void 0:n.body),i=Ci(o),s=r?[i].concat(i.visualViewport||[],bh(o)?o:[]):o,a=e.concat(s);return r?a:a.concat(Qc(b5(s)))}function Hf(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function bxn(t,e){var n=Ll(t,!1,e==="fixed");return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function vO(t,e,n){return e===yk?Hf(vxn(t,n)):N2(e)?bxn(e,n):Hf(yxn(ra(t)))}function Exn(t){var e=Qc(b5(t)),n=["absolute","fixed"].indexOf(b1(t).position)>=0,o=n&&qi(t)?t6(t):t;return N2(o)?e.filter(function(r){return N2(r)&&Sk(r,o)&&as(r)!=="body"}):[]}function Sxn(t,e,n,o){var r=e==="clippingParents"?Exn(t):[].concat(e),i=[].concat(r,[n]),s=i[0],a=i.reduce(function(l,c){var u=vO(t,c,o);return l.top=C2(u.top,l.top),l.right=C0(u.right,l.right),l.bottom=C0(u.bottom,l.bottom),l.left=C2(u.left,l.left),l},vO(t,s,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function wk(t){var e=t.reference,n=t.element,o=t.placement,r=o?is(o):null,i=o?Cl(o):null,s=e.x+e.width/2-n.width/2,a=e.y+e.height/2-n.height/2,l;switch(r){case qr:l={x:s,y:e.y-n.height};break;case zi:l={x:s,y:e.y+e.height};break;case Yi:l={x:e.x+e.width,y:a};break;case Gr:l={x:e.x-n.width,y:a};break;default:l={x:e.x,y:e.y}}var c=r?Qh(r):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case Sl:l[c]=l[c]-(e[u]/2-n[u]/2);break;case Dc:l[c]=l[c]+(e[u]/2-n[u]/2);break}}return l}function Ic(t,e){e===void 0&&(e={});var n=e,o=n.placement,r=o===void 0?t.placement:o,i=n.strategy,s=i===void 0?t.strategy:i,a=n.boundary,l=a===void 0?qSn:a,c=n.rootBoundary,u=c===void 0?yk:c,d=n.elementContext,f=d===void 0?oc:d,T=n.altBoundary,h=T===void 0?!1:T,g=n.padding,_=g===void 0?0:g,m=Lk(typeof _!="number"?_:Ck(_,e6)),Q=f===oc?GSn:oc,v=t.rects.popper,b=t.elements[h?Q:f],y=Sxn(N2(b)?b:b.contextElement||ra(t.elements.popper),l,u,s),E=Ll(t.elements.reference),x=wk({reference:E,element:v,placement:r}),L=Hf(Object.assign({},v,x)),C=f===oc?L:E,A={top:y.top-C.top+m.top,bottom:C.bottom-y.bottom+m.bottom,left:y.left-C.left+m.left,right:C.right-y.right+m.right},O=t.modifiersData.offset;if(f===oc&&O){var R=O[r];Object.keys(A).forEach(function(D){var M=[Yi,zi].indexOf(D)>=0?1:-1,$=[qr,zi].indexOf(D)>=0?"y":"x";A[D]+=R[$]*M})}return A}function xxn(t,e){e===void 0&&(e={});var n=e,o=n.placement,r=n.boundary,i=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?bk:l,u=Cl(o),d=u?a?mO:mO.filter(function(h){return Cl(h)===u}):e6,f=d.filter(function(h){return c.indexOf(h)>=0});f.length===0&&(f=d);var T=f.reduce(function(h,g){return h[g]=Ic(t,{placement:g,boundary:r,rootBoundary:i,padding:s})[is(g)],h},{});return Object.keys(T).sort(function(h,g){return T[h]-T[g]})}function Lxn(t){if(is(t)===mh)return[];var e=e0(t);return[QO(t),e,QO(e)]}function Cxn(t){var e=t.state,n=t.options,o=t.name;if(!e.modifiersData[o]._skip){for(var r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,a=s===void 0?!0:s,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,T=n.flipVariations,h=T===void 0?!0:T,g=n.allowedAutoPlacements,_=e.options.placement,m=is(_),Q=m===_,v=l||(Q||!h?[e0(_)]:Lxn(_)),b=[_].concat(v).reduce(function(j,ue){return j.concat(is(ue)===mh?xxn(e,{placement:ue,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:g}):ue)},[]),y=e.rects.reference,E=e.rects.popper,x=new Map,L=!0,C=b[0],A=0;A=0,$=M?"width":"height",U=Ic(e,{placement:O,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),G=M?D?Yi:Gr:D?zi:qr;y[$]>E[$]&&(G=e0(G));var P=e0(G),F=[];if(i&&F.push(U[R]<=0),a&&F.push(U[G]<=0,U[P]<=0),F.every(function(j){return j})){C=O,L=!1;break}x.set(O,F)}if(L)for(var B=h?3:1,q=function(ue){var pe=b.find(function(z){var te=x.get(z);if(te)return te.slice(0,ue).every(function(ae){return ae})});if(pe)return C=pe,"break"},ee=B;ee>0;ee--){var K=q(ee);if(K==="break")break}e.placement!==C&&(e.modifiersData[o]._skip=!0,e.placement=C,e.reset=!0)}}const Axn={name:"flip",enabled:!0,phase:"main",fn:Cxn,requiresIfExists:["offset"],data:{_skip:!1}};function yO(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function bO(t){return[qr,Yi,zi,Gr].some(function(e){return t[e]>=0})}function wxn(t){var e=t.state,n=t.name,o=e.rects.reference,r=e.rects.popper,i=e.modifiersData.preventOverflow,s=Ic(e,{elementContext:"reference"}),a=Ic(e,{altBoundary:!0}),l=yO(s,o),c=yO(a,r,i),u=bO(l),d=bO(c);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const Oxn={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:wxn};function Mxn(t,e,n){var o=is(t),r=[Gr,qr].indexOf(o)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,s=i[0],a=i[1];return s=s||0,a=(a||0)*r,[Gr,Yi].indexOf(o)>=0?{x:a,y:s}:{x:s,y:a}}function Rxn(t){var e=t.state,n=t.options,o=t.name,r=n.offset,i=r===void 0?[0,0]:r,s=bk.reduce(function(u,d){return u[d]=Mxn(d,e.rects,i),u},{}),a=s[e.placement],l=a.x,c=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[o]=s}const Nxn={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Rxn};function Dxn(t){var e=t.state,n=t.name;e.modifiersData[n]=wk({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const Ixn={name:"popperOffsets",enabled:!0,phase:"read",fn:Dxn,data:{}};function kxn(t){return t==="x"?"y":"x"}function Hxn(t){var e=t.state,n=t.options,o=t.name,r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,a=s===void 0?!1:s,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,T=f===void 0?!0:f,h=n.tetherOffset,g=h===void 0?0:h,_=Ic(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),m=is(e.placement),Q=Cl(e.placement),v=!Q,b=Qh(m),y=kxn(b),E=e.modifiersData.popperOffsets,x=e.rects.reference,L=e.rects.popper,C=typeof g=="function"?g(Object.assign({},e.rects,{placement:e.placement})):g,A=typeof C=="number"?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),O=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,R={x:0,y:0};if(E){if(i){var D,M=b==="y"?qr:Gr,$=b==="y"?zi:Yi,U=b==="y"?"height":"width",G=E[b],P=G+_[M],F=G-_[$],B=T?-L[U]/2:0,q=Q===Sl?x[U]:L[U],ee=Q===Sl?-L[U]:-x[U],K=e.elements.arrow,j=T&&K?_h(K):{width:0,height:0},ue=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:xk(),pe=ue[M],z=ue[$],te=_c(0,x[U],j[U]),ae=v?x[U]/2-B-te-pe-A.mainAxis:q-te-pe-A.mainAxis,he=v?-x[U]/2+B+te+z+A.mainAxis:ee+te+z+A.mainAxis,ve=e.elements.arrow&&t6(e.elements.arrow),Y=ve?b==="y"?ve.clientTop||0:ve.clientLeft||0:0,W=(D=O==null?void 0:O[b])!=null?D:0,X=G+ae-W-Y,se=G+he-W,ce=_c(T?C0(P,X):P,G,T?C2(F,se):F);E[b]=ce,R[b]=ce-G}if(a){var de,Te=b==="x"?qr:Gr,Qe=b==="x"?zi:Yi,_e=E[y],ye=y==="y"?"height":"width",Be=_e+_[Te],xe=_e-_[Qe],le=[qr,Gr].indexOf(m)!==-1,we=(de=O==null?void 0:O[y])!=null?de:0,De=le?Be:_e-x[ye]-L[ye]-we+A.altAxis,Ze=le?_e+x[ye]+L[ye]-we-A.altAxis:xe,tt=T&&le?axn(De,_e,Ze):_c(T?De:Be,_e,T?Ze:xe);E[y]=tt,R[y]=tt-_e}e.modifiersData[o]=R}}const Pxn={name:"preventOverflow",enabled:!0,phase:"main",fn:Hxn,requiresIfExists:["offset"]};function $xn(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Vxn(t){return t===Ci(t)||!qi(t)?vh(t):$xn(t)}function Bxn(t){var e=t.getBoundingClientRect(),n=xl(e.width)/t.offsetWidth||1,o=xl(e.height)/t.offsetHeight||1;return n!==1||o!==1}function Fxn(t,e,n){n===void 0&&(n=!1);var o=qi(e),r=qi(e)&&Bxn(e),i=ra(e),s=Ll(t,r,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(o||!o&&!n)&&((as(e)!=="body"||bh(i))&&(a=Vxn(e)),qi(e)?(l=Ll(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):i&&(l.x=yh(i))),{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function Uxn(t){var e=new Map,n=new Set,o=[];t.forEach(function(i){e.set(i.name,i)});function r(i){n.add(i.name);var s=[].concat(i.requires||[],i.requiresIfExists||[]);s.forEach(function(a){if(!n.has(a)){var l=e.get(a);l&&r(l)}}),o.push(i)}return t.forEach(function(i){n.has(i.name)||r(i)}),o}function qxn(t){var e=Uxn(t);return txn.reduce(function(n,o){return n.concat(e.filter(function(r){return r.phase===o}))},[])}function Gxn(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function jxn(t){var e=t.reduce(function(n,o){var r=n[o.name];return n[o.name]=r?Object.assign({},r,o,{options:Object.assign({},r.options,o.options),data:Object.assign({},r.data,o.data)}):o,n},{});return Object.keys(e).map(function(n){return e[n]})}var EO={placement:"bottom",modifiers:[],strategy:"absolute"};function SO(){for(var t=arguments.length,e=new Array(t),n=0;n{this.createPopper()})},closeMenu(t){var e;!this.$el.contains(t.target)&&!((e=this.$refs.dropdown)!=null&&e.contains(t.target))&&(this.isOpen=!1)},createPopper(){const t=this.$el.querySelector("button"),e=this.$refs.dropdown;t&&e&&(this.popperInstance=E5(t,e,{placement:"bottom-end",modifiers:[{name:"flip",options:{fallbackPlacements:["top-end","bottom-start","top-start"]}},{name:"preventOverflow",options:{boundary:document.body}}]}))}}},Kxn={class:"relative inline-block text-left"},Zxn={key:0,ref:"dropdown",class:"z-50 w-56 rounded-md shadow-lg bg-white dark:bg-gray-800 ring-1 ring-black ring-opacity-5 dark:ring-white dark:ring-opacity-20 focus:outline-none dropdown-shadow text-gray-700 dark:text-white"},Xxn={class:"py-1",role:"menu","aria-orientation":"vertical","aria-labelledby":"options-menu"};function Jxn(t,e,n,o,r,i){const s=We("ToolbarButton");return N(),H("div",Kxn,[S("div",null,[ne(s,{onClick:oe(i.toggleMenu,["stop"]),title:n.title,icon:"code"},null,8,["onClick","title"])]),(N(),it(YP,{to:"body"},[r.isOpen?(N(),H("div",Zxn,[S("div",Xxn,[_n(t.$slots,"default",{},void 0,!0)])],512)):Z("",!0)]))])}const Ok=ze(Wxn,[["render",Jxn],["__scopeId","data-v-6c3ea3a5"]]);async function xO(t,e="",n=[]){return new Promise((o,r)=>{const i=document.createElement("div");i.className="fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-50",n.length===0?i.innerHTML=` +`),Q.is_done=!0,Q=a.push("thinking_close","div",-1),Q.markup=g,Q.block=!0,Q.is_done=!0,a.line=h.line+1,!0}else return!1}},o=new OSe({html:!1,breaks:!0,highlight:(a,l)=>{const c=l&&G1.getLanguage(l)?l:"plaintext";return G1.highlight(c,a).value}}).use(Oit).use(rl).use(kit,{figcaption:!0}).use(Bit);o.renderer.rules.thinking_open=()=>'
',o.renderer.rules.thinking_content=(a,l)=>`
${o.utils.escapeHtml(a[l].content)}
`,o.renderer.rules.thinking_close=()=>"
",o.block.ruler.before("fence","thinking",n);const r=ke([]),i=()=>{if(t.markdownText){let a=o.parse(t.markdownText,{}),l=[];r.value=[];for(let c=0;c0&&(r.value.push({type:"html",html:o.renderer.render(l,o.options,{})}),l=[]);const d=a[c+1];d&&d.type==="thinking_content"&&r.value.push({type:"thinking",content:d.content,is_done:d.is_done}),c+=2}else u.type==="fence"?(l.length>0&&(r.value.push({type:"html",html:o.renderer.render(l,o.options,{})}),l=[]),r.value.push({type:"code",language:myn(u.info),code:u.content})):l.push(u)}l.length>0&&r.value.push({type:"html",html:o.renderer.render(l,o.options,{})}),be(()=>{Le.replace(),window.MathJax&&window.MathJax.typesetPromise()})}else r.value=[]},s=(a,l)=>{r.value[a].code=l};return vn(()=>t.markdownText,i),hr(()=>{i()}),{markdownItems:r,updateCode:s}}},_yn={class:"break-all container w-full"},Qyn={ref:"mdRender",class:"markdown-content"},vyn=["innerHTML"];function yyn(t,e,n,o,r,i){const s=We("code-block"),a=We("thinking-block");return N(),H("div",_yn,[S("div",Qyn,[(N(!0),H(Ae,null,Ue(o.markdownItems,(l,c)=>(N(),H("div",{key:c},[l.type==="code"?(N(),it(s,{key:0,host:n.host,language:l.language,code:l.code,discussion_id:n.discussion_id,message_id:n.message_id,client_id:n.client_id,onUpdateCode:u=>o.updateCode(c,u)},null,8,["host","language","code","discussion_id","message_id","client_id","onUpdateCode"])):Z("",!0),l.type==="thinking"?(N(),it(a,{key:1,content:l.content,"is-done":l.is_done},null,8,["content","is-done"])):(N(),H("div",{key:2,innerHTML:l.html},null,8,vyn))]))),128))],512)])}const Q5=ze(gyn,[["render",yyn],["__scopeId","data-v-3ade7b33"]]),byn={data(){return{show:!1,has_button:!0,message:""}},components:{MarkdownRenderer:Q5},methods:{hide(){this.show=!1,this.$emit("ok")},showMessage(t){this.message=t,this.has_button=!0,this.show=!0},showBlockingMessage(t){this.message=t,this.has_button=!1,this.show=!0},updateMessage(t){this.message=t,this.show=!0},hideMessage(){this.show=!1}}},Eyn={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50 z-50"},Syn={class:"pl-10 pr-10 bg-bg-light dark:bg-bg-dark p-8 rounded-lg shadow-lg"},xyn={class:"container max-h-500 overflow-y-auto"},Lyn={class:"text-lg font-medium"},Cyn={class:"mt-4 flex justify-center"},Ayn={key:1,"aria-hidden":"true",class:"w-6 h-6 animate-spin fill-secondary",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function wyn(t,e,n,o,r,i){const s=We("MarkdownRenderer");return r.show?(N(),H("div",Eyn,[S("div",Syn,[S("div",xyn,[S("div",Lyn,[ne(s,{ref:"mdRender",host:"","markdown-text":r.message,message_id:0,discussion_id:0},null,8,["markdown-text"])])]),S("div",Cyn,[r.has_button?(N(),H("button",{key:0,onClick:e[0]||(e[0]=(...a)=>i.hide&&i.hide(...a)),class:"bg-primary hover:bg-primary-light active:scale-95 duration-150 text-white px-4 py-2 rounded-lg shadow-lg hover:bg-secondary-dark"}," OK ")):Z("",!0),r.has_button?Z("",!0):(N(),H("svg",Ayn,e[1]||(e[1]=[S("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"},null,-1),S("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"},null,-1)])))])])])):Z("",!0)}const Oyn=ze(byn,[["render",wyn]]),Myn={props:{progress:{type:Number,required:!0}}},Ryn={class:"progress-bar-container"};function Nyn(t,e,n,o,r,i){return N(),H("div",Ryn,[S("div",{class:"progress-bar",style:Jt({width:`${n.progress}%`})},null,4)])}const sh=ze(Myn,[["render",Nyn],["__scopeId","data-v-ae2d8fdf"]]),Dyn={data(){return{show:!1,prompt:"",inputText:""}},methods:{showPanel(){this.show=!0},ok(){this.show=!1,this.$emit("ok",this.inputText)},cancel(){this.show=!1,this.inputText=""}},props:{promptText:{type:String,required:!0}},watch:{promptText(t){this.prompt=t}}},Iyn={key:0,class:"fixed top-0 left-0 w-full h-full flex justify-center items-center bg-black bg-opacity-50"},kyn={class:"bg-white p-8 rounded"},Hyn={class:"text-xl font-bold mb-4"};function Pyn(t,e,n,o,r,i){return N(),H("div",null,[r.show?(N(),H("div",Iyn,[S("div",kyn,[S("h2",Hyn,J(n.promptText),1),Ce(S("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=s=>r.inputText=s),class:"border border-gray-300 px-4 py-2 rounded mb-4"},null,512),[[Je,r.inputText]]),S("button",{onClick:e[1]||(e[1]=(...s)=>i.ok&&i.ok(...s)),class:"bg-blue-500 text-white px-4 py-2 rounded mr-2"},"OK"),S("button",{onClick:e[2]||(e[2]=(...s)=>i.cancel&&i.cancel(...s)),class:"bg-gray-500 text-white px-4 py-2 rounded"},"Cancel")])])):Z("",!0)])}const $yn=ze(Dyn,[["render",Pyn]]),Vyn={name:"UniversalForm",data(){return{show:!1,resolve:null,controls_array:[],title:"Universal Form",ConfirmButtonText:"Submit",DenyButtonText:"Cancel"}},mounted(){Le.replace()},methods:{btn_clicked(t){t.callback?t.callback(t):console.log("Button clicked:",t)},hide(t){this.show=!1,this.resolve&&t&&(this.resolve(this.controls_array),this.resolve=null)},showForm(t,e,n,o){return typeof t=="object"&&!Array.isArray(t)?this._newShowForm(t):(this.ConfirmButtonText=n||this.ConfirmButtonText,this.DenyButtonText=o||this.DenyButtonText,this.controls_array=t.map(r=>({...r,isHelp:!1,placeholder:r.placeholder||"",required:r.required||!1,spanFull:r.spanFull||["btn","text","list","file","folder"].includes(r.type)})),new Promise(r=>{console.log("Resolve"),console.log(r),this.title=e||this.title,this.show=!0,this.resolve=r,this.$nextTick(()=>Le.replace())}))},_newShowForm(t){return this.title=t.title||this.title,this.ConfirmButtonText=t.confirmText||this.ConfirmButtonText,this.DenyButtonText=t.denyText||this.DenyButtonText,this.controls_array=t.fields.map(e=>({...e,isHelp:!1,placeholder:e.placeholder||"",required:e.required||!1,spanFull:e.spanFull||["btn","text","list","file","folder"].includes(e.type)})),this.show=!0,new Promise(e=>{this.resolve=e,this.$nextTick(()=>Le.replace())})},parseValue(t){switch(t.type){case"int":return parseInt(t.value)||0;case"float":return parseFloat(t.value)||0;case"bool":return!!t.value;case"list":return t.value.split(",").map(e=>e.trim());default:return t.value}},openFileDialog(t){const e=document.createElement("input");e.type=t.type==="folder"?"file":t.type,t.type==="folder"&&(e.webkitdirectory=!0),t.accept&&(e.accept=t.accept),e.onchange=n=>{const o=Array.from(n.target.files);t.value=o.map(r=>r.path).join(", ")},e.click()}},watch:{controls_array:{deep:!0,handler(t){t.forEach(e=>{e.type==="int"&&(e.value=parseInt(e.value)||0),e.type==="float"&&(e.value=parseFloat(e.value)||0)})}}}},Byn={key:0,class:"fixed inset-0 flex items-center justify-center bg-black/50 backdrop-blur-sm transition-opacity duration-300",style:{"z-index":"1000"}},Fyn={class:"flex flex-col rounded-xl panels-color shadow-2xl max-h-[90vh]"},Uyn={class:"flex items-center justify-between p-5 border-b border-blue-200 dark:border-blue-700"},qyn={class:"flex items-center gap-3"},Gyn={class:"text-xl font-semibold text-blue-800 dark:text-blue-100"},jyn={class:"overflow-y-auto px-6 py-5 scrollbar"},zyn={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-5"},Yyn={class:"flex items-center justify-between mb-2"},Wyn=["for"],Kyn=["onClick"],Zyn={key:0,class:"text-xs text-red-500 dark:text-red-400 font-medium"},Xyn={key:0,class:"text-sm text-blue-600 dark:text-blue-400 mb-3 p bg-blue-100 dark:bg-blue-800 p-2 rounded-md border border-blue-200 dark:border-blue-700"},Jyn={class:"mt-1"},ebn={key:0},tbn=["id","onUpdate:modelValue","placeholder"],nbn=["onUpdate:modelValue","id"],rbn=["value"],ibn={key:1},obn=["onClick"],sbn=["data-feather"],abn={key:2},lbn=["onUpdate:modelValue","id"],cbn={key:3,class:"space-y-3"},ubn=["id","onUpdate:modelValue","step"],dbn=["onUpdate:modelValue","min","max","step"],Tbn={key:4,class:"flex items-center gap-3"},fbn=["for"],pbn=["id","onUpdate:modelValue"],hbn={class:"text-sm text-blue-700 dark:text-blue-300"},mbn={key:5,class:"flex items-center gap-3"},gbn=["onUpdate:modelValue"],_bn=["id","onUpdate:modelValue"],Qbn={key:6,class:"flex gap-2"},vbn=["id","onUpdate:modelValue"],ybn=["onClick"],bbn={class:"flex justify-end gap-3 p-5 border-t border-blue-200 dark:border-blue-700"};function Ebn(t,e,n,o,r,i){return r.show?(N(),H("div",Byn,[S("div",{class:Ee(["relative w-full mx-4 max-w-2xl transform transition-all duration-300 ease-out scale-95 opacity-0",{"scale-100 opacity-100":r.show}])},[S("div",Fyn,[S("div",Uyn,[S("div",qyn,[e[3]||(e[3]=S("i",{"data-feather":"sliders",class:"w-6 h-6 text-blue-600 dark:text-blue-400"},null,-1)),S("h3",Gyn,J(r.title),1)]),S("button",{onClick:e[0]||(e[0]=oe(s=>i.hide(!1),["stop"])),class:"svg-button"},e[4]||(e[4]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)]))]),S("div",jyn,[S("div",zyn,[(N(!0),H(Ae,null,Ue(r.controls_array,(s,a)=>(N(),H("div",{key:a,class:Ee(["flex flex-col",{"md:col-span-2":s.spanFull||["btn","text","list","file","folder"].includes(s.type)}])},[S("div",Yyn,[S("label",{for:`control-${a}`,class:"flex items-center gap-1.5 label"},[S("span",null,J(s.name),1),s.help?(N(),H("button",{key:0,onClick:l=>s.isHelp=!s.isHelp,class:"text-blue-500 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"},e[5]||(e[5]=[S("i",{"data-feather":"help-circle",class:"w-4 h-4"},null,-1)]),8,Kyn)):Z("",!0)],8,Wyn),s.required?(N(),H("span",Zyn,"* Required")):Z("",!0)]),s.isHelp?(N(),H("p",Xyn,J(s.help),1)):Z("",!0),S("div",Jyn,[["str","string"].includes(s.type)?(N(),H("div",ebn,[s.options?Ce((N(),H("select",{key:1,"onUpdate:modelValue":l=>s.value=l,id:`control-${a}`,class:"input w-full appearance-none"},[(N(!0),H(Ae,null,Ue(s.options,(l,c)=>(N(),H("option",{key:c,value:l},J(l),9,rbn))),128))],8,nbn)),[[Ir,s.value]]):Ce((N(),H("input",{key:0,id:`control-${a}`,type:"text","onUpdate:modelValue":l=>s.value=l,placeholder:s.placeholder||"Enter text",class:"input w-full"},null,8,tbn)),[[Je,s.value]])])):Z("",!0),s.type==="btn"?(N(),H("div",ibn,[S("button",{onClick:l=>i.btn_clicked(s),class:"btn btn-secondary w-full justify-center"},[s.icon?(N(),H("i",{key:0,"data-feather":s.icon,class:"w-4 h-4 mr-2"},null,8,sbn)):Z("",!0),Oe(" "+J(s.name),1)],8,obn)])):Z("",!0),s.type==="text"?(N(),H("div",abn,[Ce(S("textarea",{"onUpdate:modelValue":l=>s.value=l,id:`control-${a}`,rows:"4",class:"input w-full resize-y min-h-[80px]"},null,8,lbn),[[Je,s.value]])])):Z("",!0),["int","float"].includes(s.type)?(N(),H("div",cbn,[Ce(S("input",{type:"number",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,step:s.type==="int"?1:s.step||.1,class:"input w-full"},null,8,ubn),[[Je,s.value]]),s.min!==void 0&&s.max!==void 0?Ce((N(),H("input",{key:0,type:"range","onUpdate:modelValue":l=>s.value=l,min:s.min,max:s.max,step:s.step||(s.type==="int"?1:.1),class:"range-input w-full"},null,8,dbn)),[[Je,s.value]]):Z("",!0)])):Z("",!0),s.type==="bool"?(N(),H("div",Tbn,[S("label",{for:`control-${a}`,class:"relative inline-flex items-center cursor-pointer"},[Ce(S("input",{type:"checkbox",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,class:"sr-only peer"},null,8,pbn),[[Ql,s.value]]),e[6]||(e[6]=S("div",{class:"w-11 h-6 bg-blue-200 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-blue-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600"},null,-1))],8,fbn),S("span",hbn,J(s.value?"Enabled":"Disabled"),1)])):Z("",!0),s.type==="color"?(N(),H("div",mbn,[Ce(S("input",{type:"color","onUpdate:modelValue":l=>s.value=l,class:"w-10 h-10 p-0 border-0 rounded-md cursor-pointer bg-transparent appearance-none",style:Jt({backgroundColor:s.value})},null,12,gbn),[[Je,s.value]]),Ce(S("input",{type:"text",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,class:"input flex-1"},null,8,_bn),[[Je,s.value]])])):Z("",!0),["file","folder"].includes(s.type)?(N(),H("div",Qbn,[Ce(S("input",{type:"text",id:`control-${a}`,"onUpdate:modelValue":l=>s.value=l,readonly:"",class:"input flex-1 bg-blue-50 dark:bg-blue-800 cursor-not-allowed"},null,8,vbn),[[Je,s.value]]),S("button",{onClick:l=>i.openFileDialog(s),class:"btn btn-secondary flex-shrink-0"},e[7]||(e[7]=[S("i",{"data-feather":"folder",class:"w-4 h-4 mr-1"},null,-1),S("span",null,"Browse",-1)]),8,ybn)])):Z("",!0)])],2))),128))])]),S("div",bbn,[S("button",{onClick:e[1]||(e[1]=oe(s=>i.hide(!1),["stop"])),class:"btn btn-secondary"},J(r.DenyButtonText),1),S("button",{onClick:e[2]||(e[2]=oe(s=>i.hide(!0),["stop"])),class:"btn btn-primary"},[e[8]||(e[8]=S("i",{"data-feather":"check",class:"w-4 h-4 mr-1"},null,-1)),Oe(" "+J(r.ConfirmButtonText),1)])])])],2)])):Z("",!0)}const ZI=ze(Vyn,[["render",Ebn],["__scopeId","data-v-78eaa4f5"]]),Sbn={data(){return{show:!1,message:"",resolve:null,ConfirmButtonText:"Yes, I'm sure",DenyButtonText:"No, cancel"}},methods:{hide(t){this.show=!1,this.resolve&&(this.resolve(t),this.resolve=null)},askQuestion(t,e,n){return this.ConfirmButtonText=e||this.ConfirmButtonText,this.DenyButtonText=n||this.DenyButtonText,new Promise(o=>{this.message=t,this.show=!0,this.resolve=o})}}},xbn={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50"},Lbn={class:"relative w-full max-w-md max-h-full"},Cbn={class:"relative bg-white rounded-lg shadow dark:bg-gray-700"},Abn={class:"p-4 text-center"},wbn={class:"mb-5 text-lg font-normal text-gray-500 dark:text-gray-400 select-none break-all"};function Obn(t,e,n,o,r,i){return r.show?(N(),H("div",xbn,[S("div",Lbn,[S("div",Cbn,[S("button",{type:"button",onClick:e[0]||(e[0]=s=>i.hide(!1)),class:"absolute top-3 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[3]||(e[3]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[S("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),S("span",{class:"sr-only"},"Close modal",-1)])),S("div",Abn,[e[4]||(e[4]=S("svg",{"aria-hidden":"true",class:"mx-auto mb-4 text-gray-400 w-14 h-14 dark:text-gray-200",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),S("h3",wbn,J(r.message),1),S("button",{onClick:e[1]||(e[1]=s=>i.hide(!0)),type:"button",class:"text-white bg-red-600 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:focus:ring-red-800 font-medium rounded-lg text-sm inline-flex items-center px-5 py-2.5 text-center mr-2"},J(r.ConfirmButtonText),1),S("button",{onClick:e[2]||(e[2]=s=>i.hide(!1)),type:"button",class:"text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 rounded-lg border border-gray-200 text-sm font-medium px-5 py-2.5 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-600"},J(r.DenyButtonText),1)])])])])):Z("",!0)}const Mbn=ze(Sbn,[["render",Obn]]),Rbn={name:"TopBar",components:{Navigation:wz,ActionButton:xN,SocialIcon:LN,Toast:bp,MessageBox:Oyn,ProgressBar:sh,InputBox:$yn,UniversalForm:ZI,YesNoDialog:Mbn},setup(t,{emit:e}){const n=OR(),o=ke(null),r=ke(null),i=ke(null),s=ke(null),a=ke(null),l=ke(null),c=ke(null),u=ke(null),d=ke(!1),f=ke(JSON.parse(localStorage.getItem("isPinned")||"false")),T=ke(null),h=ke(!1),g=ke(!1),_=ke(!1),m=ke(!1),Q=ke(null),v=ke(localStorage.getItem("preferred-theme")||"default"),b=ke([]),y=ke(""),E="https://github.com/ParisNeo/lollms-webui",x=$e(()=>n.state.progress_visibility),L=$e(()=>n.state.progress_value),C=$e(()=>n.state.loading_infos),A=$e(()=>n.state.isModelOk),O=$e(()=>n.state.isGenerating),R=$e(()=>n.state.isConnected),D=$e(()=>n.state.languages||["English"]),M=$e(()=>n.state.language||"English"),$=$e(()=>document.documentElement.classList.contains("dark")),U=$e(()=>f.value||d.value),G=$e(()=>{if(Q.value===null||Q.value==="N/A")return"?";const le=Number(Q.value);return le>=1e3?`${(le/1e3).toFixed(1)}k`:le.toString()}),P=$e(()=>{const le=M.value;return(le==null?void 0:le.length)===2?le.toUpperCase():le!=null&&le.toLowerCase().startsWith("en")?"EN":le!=null&&le.toLowerCase().startsWith("fr")?"FR":le!=null&&le.toLowerCase().startsWith("de")?"DE":le!=null&&le.toLowerCase().startsWith("es")?"ES":le?le.slice(0,2).toUpperCase():"??"}),F=()=>{clearTimeout(T.value),d.value=!0},B=()=>{f.value||(T.value=setTimeout(()=>{var le;(le=l.value)!=null&&le.matches(":hover")||(d.value=!1)},150))},q=()=>{T.value=setTimeout(()=>{d.value=!1},300)},ee=()=>{clearTimeout(T.value),!d.value&&!f.value&&(d.value=!0)},K=()=>{const le=!f.value;f.value=le,localStorage.setItem("isPinned",JSON.stringify(le)),d.value=!0,n.commit("setTopBarPinned",le),e("update:pinned",le),be(Le.replace)},j=async()=>{try{const le=await fe.get("/get_themes");b.value=le.data.sort(),v.value==="default"&&!b.value.includes("default")&&b.value.unshift("default"),b.value.includes(v.value)||ue("default")}catch(le){console.error("Error fetching themes:",le),b.value=["default"],v.value!=="default"&&ue("default")}},ue=le=>{pe(le),h.value=!1},pe=async le=>{var we;console.log(`Attempting to load theme: ${le}`);try{const De=new Date().getTime(),Ze=await fe.get(`/themes/${le}.css?v=${De}`),tt=document.getElementById("theme-styles");tt&&tt.remove();const gt=document.createElement("style");gt.id="theme-styles",gt.textContent=Ze.data,document.head.appendChild(gt),localStorage.setItem("preferred-theme",le),v.value=le,await be(),z();const St=getComputedStyle(document.documentElement),ln={lollms_title:St.getPropertyValue("--lollms-title").trim()||"LoLLMS",activate_dropping_animation:St.getPropertyValue("--activate-dropping-animation").trim()==="1",falling_object:St.getPropertyValue("--falling-object").trim(),lollms_welcome_short_message:St.getPropertyValue("--lollms-welcome-short-message").trim()||"Welcome",lollms_welcome_message:St.getPropertyValue("--lollms-welcome-message").trim()||"Welcome to LoLLMS"};n.commit("setThemeVars",ln),be(Le.replace)}catch(De){console.error(`Failed to load theme: ${le}`,De),(we=o.value)==null||we.showToast(`Error loading theme: ${le}`,5,!1),v.value!=="default"&&await pe("default")}},z=()=>{const le=$.value,we=document.documentElement.classList.contains("dark");le!==we&&(console.log("Dark mode status changed, isDark:",we),te(we)),be(Le.replace)},te=le=>{const we="highlight-js-style",De=document.getElementById(we);De&&De.remove();const Ze=document.createElement("link");Ze.id=we,Ze.rel="stylesheet",le?Ze.href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/tokyo-night-dark.min.css":Ze.href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/stackoverflow-light.min.css",document.head.appendChild(Ze),console.log(`Loaded highlight.js style: ${le?"Dark":"Light"}`)},ae=()=>{document.documentElement.classList.contains("dark")?(document.documentElement.classList.remove("dark"),localStorage.setItem("theme-mode","light")):(document.documentElement.classList.add("dark"),localStorage.setItem("theme-mode","dark")),z()},he=async le=>{await n.dispatch("changeLanguage",le),g.value=!1,be(Le.replace)},ve=async le=>{var we;(we=s.value)==null||we.show(`Are you sure you want to delete the language "${le}"?`,async()=>{var De;try{await n.dispatch("deleteLanguage",le)}catch(Ze){console.error("Error deleting language:",Ze),(De=o.value)==null||De.showToast(`Failed to delete language: ${Ze.message||Ze}`,4,!1)}})},Y=()=>{var we;const le=y.value.trim();le&&(D.value.map(De=>De.toLowerCase()).includes(le.toLowerCase())?(we=o.value)==null||we.showToast(`Language "${le}" already exists.`,4,!1):(he(le),y.value=""))},W=()=>{h.value=!h.value,g.value=!1,_.value=!1},X=()=>{g.value=!g.value,h.value=!1,_.value=!1},se=()=>{m.value=!0,_.value||(_.value=!0,h.value=!1,g.value=!1,be(Le.replace))},ce=()=>{m.value=!1,setTimeout(()=>{m.value||(_.value=!1)},150)},de=()=>{var le;(le=n.state.news)==null||le.show()},Te=()=>{window.location.reload()},Qe=()=>{var le;(le=n.state.yesNoDialog)==null||le.show("Are you sure you want to restart LoLLMs?",()=>{fe.get("/restart_program").then(()=>{var we;(we=n.state.toast)==null||we.showToast("Restarting server...",4,!0)}).catch(we=>{var De,Ze,tt;console.error("Error restarting server:",we),(tt=n.state.toast)==null||tt.showToast(`Failed to send restart command: ${((Ze=(De=we.response)==null?void 0:De.data)==null?void 0:Ze.error)||we.message}`,5,!1)})})},_e=async()=>{try{const le=await fetch(E.replace("github.com","api.github.com/repos"),{headers:{Accept:"application/vnd.github.v3+json"}});if(!le.ok){const De=le.headers.get("X-RateLimit-Remaining"),Ze=le.headers.get("X-RateLimit-Reset");let tt=`HTTP error! status: ${le.status}`;if(De==="0"){const gt=new Date(parseInt(Ze)*1e3);tt+=` (GitHub API rate limit exceeded. Resets at ${gt.toLocaleTimeString()})`}throw new Error(tt)}const we=await le.json();Q.value=we.stargazers_count}catch(le){console.error("Error fetching GitHub stars:",le),Q.value="N/A"}},ye=le=>{console.log("Web URL submitted:",le),n.dispatch("processWebUrl",le)},Be=le=>{const we=le.target.closest('button[title="Select Theme"]');c.value&&!c.value.contains(le.target)&&!we&&(h.value=!1);const De=le.target.closest('button[title="Select Language"]');u.value&&!u.value.contains(le.target)&&!De&&(g.value=!1)},xe=()=>{const le=localStorage.getItem("theme-mode"),we=window.matchMedia("(prefers-color-scheme: dark)").matches;le==="dark"||!le&&we?document.documentElement.classList.contains("dark")||document.documentElement.classList.add("dark"):document.documentElement.classList.contains("dark")&&document.documentElement.classList.remove("dark"),z()};return hr(async()=>{n.commit("setToastRef",o.value),n.commit("setMessageBoxRef",r.value),n.commit("setUniversalFormRef",i.value),n.commit("setYesNoDialogRef",s.value),n.commit("setWebUrlInputBoxRef",a.value),document.addEventListener("click",Be,!0),await j(),await pe(v.value),xe(),_e();const le=JSON.parse(localStorage.getItem("isPinned")||"false");n.state.isTopBarPinned===null&&n.commit("setTopBarPinned",le),f.value=n.state.isTopBarPinned,d.value=f.value,be(Le.replace);const we=window.matchMedia("(prefers-color-scheme: dark)"),De=Ze=>{localStorage.getItem("theme-mode")||(Ze.matches?document.documentElement.classList.contains("dark")||(document.documentElement.classList.add("dark"),z()):document.documentElement.classList.contains("dark")&&(document.documentElement.classList.remove("dark"),z()))};we.addEventListener("change",De),X1(()=>{document.removeEventListener("click",Be,!0),we.removeEventListener("change",De),clearTimeout(T.value)}),e("update:occupyingSpace",U.value)}),vn(U,le=>{e("update:occupyingSpace",le),be(Le.replace)}),vn(()=>n.state.isTopBarPinned,le=>{f.value!==le&&(f.value=le,localStorage.setItem("isPinned",JSON.stringify(le)),d.value=!0)}),vn(()=>n.state.config,()=>{be(()=>Le.replace())},{deep:!0}),{toast:o,messageBox:r,universalForm:i,yesNoDialog:s,web_url_input_box:a,topbarContainer:l,themeMenu:c,languageMenu:u,isVisible:d,isPinned:f,themeDropdownOpen:h,isLanguageMenuVisible:g,isInfosMenuVisible:_,starCount:Q,currentTheme:v,availableThemes:b,customLanguage:y,githubRepoUrl:E,progress_visibility:x,progress_value:L,loading_infos:C,isModelOK:A,isGenerating:O,isConnected:R,languages:D,language:M,isDarkMode:$,isEffectivelyVisible:U,formattedStarCount:G,currentLanguageDisplay:P,show:F,hide:B,hideUnlessEnteringTopbar:q,clearHideTimeout:ee,togglePin:K,fetchThemes:j,selectTheme:ue,loadTheme:pe,themeSwitch:ae,checkAndUpdateDarkMode:z,selectLanguage:he,deleteLanguage:ve,addCustomLanguage:Y,toggleThemeDropDown:W,toggleLanguageMenu:X,showInfosMenu:se,hideInfosMenu:ce,showNews:de,refreshPage:Te,restartProgram:Qe,fetchGitHubStars:_e,handleWebUrlOk:ye}}},Nbn={class:"flex justify-center h-full"},Dbn={class:"flex justify-between items-center w-full max-w-7xl px-2 sm:px-4 py-1 h-full"},Ibn={class:"flex-shrink-0"},kbn={class:"flex items-center gap-1 sm:gap-2"},Hbn=["href","title"],Pbn={class:"font-medium text-xs"},$bn={class:"relative"},Vbn={class:"flex items-center justify-between w-full"},Bbn={class:"flex items-center space-x-1.5 overflow-hidden"},Fbn={class:"font-medium truncate text-xs"},Ubn={key:0,ref:"themeMenu",class:"context-menu theme-dropdown",role:"menu"},qbn={class:"max-h-60 overflow-y-auto scrollbar"},Gbn=["onClick"],jbn={class:"truncate"},zbn={class:"relative"},Ybn=["aria-expanded"],Wbn={class:"font-medium text-xs"},Kbn={key:0,ref:"languageMenu",class:"context-menu language-dropdown",role:"menu"},Zbn={class:"max-h-72 overflow-y-auto scrollbar py-1"},Xbn=["onClick","aria-label"],Jbn=["onClick"],eEn={class:"px-3 pt-2 pb-1 border-t border-blue-200 dark:border-blue-700 mt-1"},tEn=["title"],nEn=["data-feather"],rEn=["title"],iEn={class:"p-3 space-y-3"},oEn={class:"flex justify-between items-center gap-2 border-b border-blue-200 dark:border-blue-700 pb-2"},sEn={class:"flex gap-2 items-center"},aEn=["title"],lEn=["data-feather"],cEn=["title"],uEn=["data-feather"],dEn=["title"],TEn=["data-feather"],fEn={class:"flex flex-wrap gap-2 justify-center"},pEn={class:"flex justify-center items-center gap-3 pt-2 border-t border-blue-200 dark:border-blue-700"},hEn={role:"status",class:"fixed m-0 p-2 left-2 bottom-2 min-w-[24rem] max-w-[24rem] h-auto flex flex-col justify-center items-center rounded-lg shadow-lg z-[60] panels-color"},mEn={class:"text-sm text-blue-800 dark:text-blue-100 animate-pulse mt-1"};function gEn(t,e,n,o,r,i){const s=We("Navigation"),a=We("ActionButton"),l=We("SocialIcon"),c=We("InputBox"),u=We("Toast"),d=We("MessageBox"),f=We("YesNoDialog"),T=We("UniversalForm"),h=We("ProgressBar");return N(),H(Ae,null,[o.isPinned?Z("",!0):(N(),H("div",{key:0,class:"fixed top-0 left-0 w-full h-3 z-[51] cursor-pointer",onMouseenter:e[0]||(e[0]=(...g)=>o.show&&o.show(...g)),onMouseleave:e[1]||(e[1]=(...g)=>o.hideUnlessEnteringTopbar&&o.hideUnlessEnteringTopbar(...g))},null,32)),S("div",{ref:"topbarContainer",class:Ee(["fixed top-0 left-0 right-0 z-50 h-14","toolbar-color","shadow-lg","transition-transform duration-300 ease-in-out",{"-translate-y-full":!o.isEffectivelyVisible,"translate-y-0":o.isEffectivelyVisible}]),onMouseenter:e[13]||(e[13]=(...g)=>o.clearHideTimeout&&o.clearHideTimeout(...g)),onMouseleave:e[14]||(e[14]=(...g)=>o.hide&&o.hide(...g))},[S("div",Nbn,[S("div",Dbn,[S("div",Ibn,[_n(t.$slots,"navigation",{},()=>[ne(s)],!0)]),e[23]||(e[23]=S("div",{class:"flex-grow"},null,-1)),S("div",kbn,[o.starCount!==null?(N(),H("a",{key:0,href:o.githubRepoUrl,target:"_blank",rel:"noopener noreferrer",class:"btn btn-secondary btn-sm hidden md:inline-flex items-center gap-1.5",title:`Star us on GitHub! (${o.starCount} stars)`},[e[15]||(e[15]=S("i",{"data-feather":"github",class:"w-4 h-4"},null,-1)),S("span",Pbn,J(o.formattedStarCount),1)],8,Hbn)):Z("",!0),S("div",$bn,[S("button",{onClick:e[2]||(e[2]=oe((...g)=>o.toggleThemeDropDown&&o.toggleThemeDropDown(...g),["stop"])),class:"btn btn-secondary btn-sm w-28 sm:w-36",title:"Select Theme"},[S("div",Vbn,[S("div",Bbn,[e[16]||(e[16]=S("i",{"data-feather":"layout",class:"w-4 h-4 flex-shrink-0"},null,-1)),S("span",Fbn,J(o.currentTheme),1)]),S("i",{"data-feather":"chevron-down",class:Ee(["w-4 h-4 flex-shrink-0 transition-transform duration-300",{"rotate-180":o.themeDropdownOpen}])},null,2)])]),ne(Tr,{name:"context-menu-transition"},{default:je(()=>[o.themeDropdownOpen?(N(),H("div",Ubn,[S("div",qbn,[(N(!0),H(Ae,null,Ue(o.availableThemes,g=>(N(),H("a",{key:g,onClick:_=>o.selectTheme(g),class:"context-menu-item group",role:"menuitem"},[e[17]||(e[17]=S("i",{"data-feather":"droplet",class:"w-3.5 h-3.5 context-menu-item-icon group-hover:animate-pulse"},null,-1)),S("span",jbn,J(g),1)],8,Gbn))),128))])],512)):Z("",!0)]),_:1})]),S("div",zbn,[S("button",{onClick:e[3]||(e[3]=oe((...g)=>o.toggleLanguageMenu&&o.toggleLanguageMenu(...g),["stop"])),class:"btn btn-secondary btn-sm inline-flex items-center",title:"Select Language","aria-haspopup":"true","aria-expanded":o.isLanguageMenuVisible},[S("span",Wbn,J(o.currentLanguageDisplay),1),S("i",{"data-feather":"chevron-down",class:Ee(["w-4 h-4 ml-1 transition-transform duration-300",{"rotate-180":o.isLanguageMenuVisible}])},null,2)],8,Ybn),ne(Tr,{name:"context-menu-transition"},{default:je(()=>[o.isLanguageMenuVisible?(N(),H("div",Kbn,[S("ul",Zbn,[(N(!0),H(Ae,null,Ue(o.languages,g=>(N(),H("li",{key:g,class:"context-menu-item flex items-center group pr-2"},[g!=="English"?(N(),H("button",{key:0,onClick:oe(_=>o.deleteLanguage(g),["stop"]),class:"svg-button p-0.5 rounded-full opacity-0 group-hover:opacity-100 transition-opacity text-red-500 hover:bg-red-100 dark:hover:bg-red-900/50 mr-2","aria-label":`Delete ${g}`,title:"Delete Language"},e[18]||(e[18]=[S("i",{"data-feather":"x",class:"w-3 h-3"},null,-1)]),8,Xbn)):Z("",!0),S("div",{onClick:_=>o.selectLanguage(g),class:Ee(["flex-grow pl-2 pr-1 py-0.5 cursor-pointer rounded text-xs transition-colors",g===o.language?"bg-blue-100 dark:bg-blue-700 text-blue-700 dark:text-blue-100 font-semibold":"hover:bg-blue-50 dark:hover:bg-blue-800",{"ml-[calc(0.75rem+0.5rem)]":g==="English"}]),role:"menuitem"},J(g),11,Jbn)]))),128)),S("li",eEn,[Ce(S("input",{type:"text","onUpdate:modelValue":e[4]||(e[4]=g=>o.customLanguage=g),onKeyup:e[5]||(e[5]=Qn(oe((...g)=>o.addCustomLanguage&&o.addCustomLanguage(...g),["prevent"]),["enter"])),placeholder:"Add new language...",class:"input input-sm w-full"},null,544),[[Je,o.customLanguage]])])])],512)):Z("",!0)]),_:1})]),S("button",{onClick:e[6]||(e[6]=g=>o.themeSwitch()),title:o.isDarkMode?"Switch to Light theme":"Switch to Dark theme",class:"svg-button text-xl p-1.5"},[S("i",{"data-feather":o.isDarkMode?"sun":"moon",class:"w-4 h-4"},null,8,nEn)],8,tEn),S("button",{class:"svg-button p-1.5 transition-transform hover:scale-110 focus:outline-none",onClick:e[7]||(e[7]=(...g)=>o.togglePin&&o.togglePin(...g)),title:o.isPinned?"Unpin Top Bar":"Pin Top Bar"},[(N(),H("svg",{class:Ee(["w-4 h-4",o.isPinned?"text-red-500 dark:text-red-400":"text-blue-600 dark:text-blue-400"]),viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},e[19]||(e[19]=[S("path",{d:"M16 12V4H17V2H7V4H8V12L6 14V16H11.5V22H12.5V16H18V14L16 12Z M8.8 14L10 12.8V4H14V12.8L15.2 14H8.8Z"},null,-1)]),2))],8,rEn),S("div",{class:"relative",onMouseleave:e[12]||(e[12]=(...g)=>o.hideInfosMenu&&o.hideInfosMenu(...g))},[S("button",{onMouseenter:e[8]||(e[8]=(...g)=>o.showInfosMenu&&o.showInfosMenu(...g)),class:"svg-button p-1.5",title:"Status & Info"},e[20]||(e[20]=[S("i",{"data-feather":"info",class:"w-5 h-5"},null,-1)]),32),ne(Tr,{name:"context-menu-transition"},{default:je(()=>[o.isInfosMenuVisible?(N(),H("div",{key:0,onMouseenter:e[10]||(e[10]=(...g)=>o.showInfosMenu&&o.showInfosMenu(...g)),onMouseleave:e[11]||(e[11]=(...g)=>o.hideInfosMenu&&o.hideInfosMenu(...g)),class:"context-menu info-dropdown",role:"menu"},[S("div",iEn,[S("div",oEn,[e[21]||(e[21]=S("h4",{class:"text-sm font-semibold text-blue-700 dark:text-blue-300"},"System Status",-1)),S("div",sEn,[S("div",{title:o.isModelOK?"Model OK":"Model Error",class:Ee(["p-1 rounded-full transition-transform hover:scale-110",o.isModelOK?"text-green-500 dark:text-green-400":"text-red-500 dark:text-red-400"])},[S("i",{"data-feather":o.isModelOK?"check-circle":"x-octagon",class:"w-5 h-5"},null,8,lEn)],10,aEn),S("div",{title:o.isGenerating?"Generating...":"Ready",class:Ee(["p-1 rounded-full transition-transform hover:scale-110",[o.isGenerating?"text-yellow-500 dark:text-yellow-400":"text-green-500 dark:text-green-400"]])},[S("i",{"data-feather":o.isGenerating?"loader":"zap",class:Ee(["w-5 h-5",{"animate-spin":o.isGenerating}])},null,10,uEn)],10,cEn),S("div",{title:o.isConnected?"Connected":"Disconnected",class:Ee(["p-1 rounded-full transition-transform hover:scale-110",[o.isConnected?"text-green-500 dark:text-green-400":"text-red-500 dark:text-red-400"]])},[S("i",{"data-feather":o.isConnected?"wifi":"wifi-off",class:"w-5 h-5"},null,8,TEn)],10,dEn)])]),S("div",fEn,[ne(a,{onClick:o.restartProgram,icon:"power",title:"Restart LoLLMs",class:"btn-secondary btn-sm flex-1 min-w-[100px] justify-center"},null,8,["onClick"]),ne(a,{onClick:o.refreshPage,icon:"refresh-ccw",title:"Refresh Page",class:"btn-secondary btn-sm flex-1 min-w-[100px] justify-center"},null,8,["onClick"]),ne(a,{href:"/docs",icon:"file-text",title:"API Docs",class:"btn-secondary btn-sm flex-1 min-w-[100px] justify-center",target:"_blank"}),S("button",{onClick:e[9]||(e[9]=g=>o.showNews()),class:"btn btn-secondary btn-sm flex-1 min-w-[100px] justify-center"},e[22]||(e[22]=[S("i",{"data-feather":"bell",class:"w-4 h-4 mr-1.5"},null,-1),Oe(" News ")]))]),S("div",pEn,[ne(l,{href:o.githubRepoUrl,icon:"github",title:"GitHub",class:"w-5 h-5"},null,8,["href"]),ne(l,{href:"https://www.youtube.com/channel/UCJzrg0cyQV2Z30SQ1v2FdSQ",icon:"youtube",title:"YouTube",class:"w-5 h-5"}),ne(l,{href:"https://x.com/ParisNeo_AI",icon:"x",title:"Twitter/X",class:"w-5 h-5"}),ne(l,{href:"https://discord.com/channels/1092918764925882418",icon:"discord",title:"Discord",class:"w-5 h-5"})])])],32)):Z("",!0)]),_:1})],32)])])])],34),ne(c,{"prompt-text":"Enter the URL to the page to use as discussion support",onOk:o.handleWebUrlOk,ref:"web_url_input_box"},null,8,["onOk"]),ne(u,{ref:"toast"},null,512),ne(d,{ref:"messageBox"},null,512),ne(f,{ref:"yesNoDialog",class:"z-[60]"},null,512),ne(T,{ref:"universalForm",class:"z-[60]"},null,512),Ce(S("div",hEn,[ne(h,{ref:"progress",progress:o.progress_value,class:"w-full h-3"},null,8,["progress"]),S("p",mEn,J(o.loading_infos)+" ...",1)],512),[[wn,o.progress_visibility]])],64)}const _En=ze(Rbn,[["render",gEn],["__scopeId","data-v-b2b50ce7"]]),QEn={class:"flex overflow-hidden flex-grow w-full"},vEn={__name:"App",setup(t){const e=OR(),n=ke(!1),o=i=>{n.value=i},r=$e(()=>localStorage.getItem("preferred-theme")||"default");return hr(()=>{n.value=e.state.isTopBarPinned??!1,(!e.state.languages||e.state.languages.length<=1)&&e.dispatch("initializeLanguages")}),(i,s)=>(N(),H("div",{class:Ee(["flex flex-col h-screen font-sans background-color text-slate-950 dark:bg-bg-dark dark:text-slate-50 w-full overflow-hidden",r.value])},[ne(_En,{"onUpdate:occupyingSpace":o}),S("div",{class:Ee(["transition-height duration-300 ease-in-out",n.value?"h-14":"h-0"]),style:{"flex-shrink":"0"}},null,2),S("div",QEn,[ne(vt(SN),null,{default:je(({Component:a})=>[(N(),it(XP,null,[(N(),it(Vc(a)))],1024))]),_:1})])],2))}},ss=Object.create(null);ss.open="0";ss.close="1";ss.ping="2";ss.pong="3";ss.message="4";ss.upgrade="5";ss.noop="6";const W6=Object.create(null);Object.keys(ss).forEach(t=>{W6[ss[t]]=t});const Of={type:"error",data:"parser error"},XI=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",JI=typeof ArrayBuffer=="function",ek=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,ah=({type:t,data:e},n,o)=>XI&&e instanceof Blob?n?o(e):dO(e,o):JI&&(e instanceof ArrayBuffer||ek(e))?n?o(e):dO(new Blob([e]),o):o(ss[t]+(e||"")),dO=(t,e)=>{const n=new FileReader;return n.onload=function(){const o=n.result.split(",")[1];e("b"+(o||""))},n.readAsDataURL(t)};function TO(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let YT;function yEn(t,e){if(XI&&t.data instanceof Blob)return t.data.arrayBuffer().then(TO).then(e);if(JI&&(t.data instanceof ArrayBuffer||ek(t.data)))return e(TO(t.data));ah(t,!1,n=>{YT||(YT=new TextEncoder),e(YT.encode(n))})}const fO="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lc=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let t=0;t{let e=t.length*.75,n=t.length,o,r=0,i,s,a,l;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);const c=new ArrayBuffer(e),u=new Uint8Array(c);for(o=0;o>4,u[r++]=(s&15)<<4|a>>2,u[r++]=(a&3)<<6|l&63;return c},EEn=typeof ArrayBuffer=="function",lh=(t,e)=>{if(typeof t!="string")return{type:"message",data:tk(t,e)};const n=t.charAt(0);return n==="b"?{type:"message",data:SEn(t.substring(1),e)}:W6[n]?t.length>1?{type:W6[n],data:t.substring(1)}:{type:W6[n]}:Of},SEn=(t,e)=>{if(EEn){const n=bEn(t);return tk(n,e)}else return{base64:!0,data:t}},tk=(t,e)=>{switch(e){case"blob":return t instanceof Blob?t:new Blob([t]);case"arraybuffer":default:return t instanceof ArrayBuffer?t:t.buffer}},nk="",xEn=(t,e)=>{const n=t.length,o=new Array(n);let r=0;t.forEach((i,s)=>{ah(i,!1,a=>{o[s]=a,++r===n&&e(o.join(nk))})})},LEn=(t,e)=>{const n=t.split(nk),o=[];for(let r=0;r{const o=n.length;let r;if(o<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,o);else if(o<65536){r=new Uint8Array(3);const i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,o)}else{r=new Uint8Array(9);const i=new DataView(r.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(o))}t.data&&typeof t.data!="string"&&(r[0]|=128),e.enqueue(r),e.enqueue(n)})}})}let WT;function w6(t){return t.reduce((e,n)=>e+n.length,0)}function O6(t,e){if(t[0].length===e)return t.shift();const n=new Uint8Array(e);let o=0;for(let r=0;rMath.pow(2,21)-1){a.enqueue(Of);break}r=u*Math.pow(2,32)+c.getUint32(4),o=3}else{if(w6(n)t){a.enqueue(Of);break}}}})}const rk=4;function On(t){if(t)return wEn(t)}function wEn(t){for(var e in On.prototype)t[e]=On.prototype[e];return t}On.prototype.on=On.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this};On.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this};On.prototype.off=On.prototype.removeListener=On.prototype.removeAllListeners=On.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+t];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+t],this;for(var o,r=0;rPromise.resolve().then(e):(e,n)=>n(e,0),$i=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),OEn="arraybuffer";function ik(t,...e){return e.reduce((n,o)=>(t.hasOwnProperty(o)&&(n[o]=t[o]),n),{})}const MEn=$i.setTimeout,REn=$i.clearTimeout;function y5(t,e){e.useNativeTimers?(t.setTimeoutFn=MEn.bind($i),t.clearTimeoutFn=REn.bind($i)):(t.setTimeoutFn=$i.setTimeout.bind($i),t.clearTimeoutFn=$i.clearTimeout.bind($i))}const NEn=1.33;function DEn(t){return typeof t=="string"?IEn(t):Math.ceil((t.byteLength||t.size)*NEn)}function IEn(t){let e=0,n=0;for(let o=0,r=t.length;o=57344?n+=3:(o++,n+=4);return n}function ok(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function kEn(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function HEn(t){let e={},n=t.split("&");for(let o=0,r=n.length;o{this.readyState="paused",e()};if(this._polling||!this.writable){let o=0;this._polling&&(o++,this.once("pollComplete",function(){--o||n()})),this.writable||(o++,this.once("drain",function(){--o||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const n=o=>{if(this.readyState==="opening"&&o.type==="open"&&this.onOpen(),o.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(o)};LEn(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,xEn(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=ok()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}let sk=!1;try{sk=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const VEn=sk;function BEn(){}class FEn extends $En{constructor(e){if(super(e),typeof location<"u"){const n=location.protocol==="https:";let o=location.port;o||(o=n?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||o!==e.port}}doWrite(e,n){const o=this.request({method:"POST",data:e});o.on("success",n),o.on("error",(r,i)=>{this.onError("xhr post error",r,i)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,o)=>{this.onError("xhr poll error",n,o)}),this.pollXhr=e}}let pl=class K6 extends On{constructor(e,n,o){super(),this.createRequest=e,y5(this,o),this._opts=o,this._method=o.method||"GET",this._uri=n,this._data=o.data!==void 0?o.data:null,this._create()}_create(){var e;const n=ik(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const o=this._xhr=this.createRequest(n);try{o.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){o.setDisableHeaderCheck&&o.setDisableHeaderCheck(!0);for(let r in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(r)&&o.setRequestHeader(r,this._opts.extraHeaders[r])}}catch{}if(this._method==="POST")try{o.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{o.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(o),"withCredentials"in o&&(o.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(o.timeout=this._opts.requestTimeout),o.onreadystatechange=()=>{var r;o.readyState===3&&((r=this._opts.cookieJar)===null||r===void 0||r.parseCookies(o.getResponseHeader("set-cookie"))),o.readyState===4&&(o.status===200||o.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof o.status=="number"?o.status:0)},0))},o.send(this._data)}catch(r){this.setTimeoutFn(()=>{this._onError(r)},0);return}typeof document<"u"&&(this._index=K6.requestsCount++,K6.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=BEn,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete K6.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};pl.requestsCount=0;pl.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",pO);else if(typeof addEventListener=="function"){const t="onpagehide"in $i?"pagehide":"unload";addEventListener(t,pO,!1)}}function pO(){for(let t in pl.requests)pl.requests.hasOwnProperty(t)&&pl.requests[t].abort()}const UEn=function(){const t=ak({xdomain:!1});return t&&t.responseType!==null}();class qEn extends FEn{constructor(e){super(e);const n=e&&e.forceBase64;this.supportsBinary=UEn&&!n}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new pl(ak,this.uri(),e)}}function ak(t){const e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||VEn))return new XMLHttpRequest}catch{}if(!e)try{return new $i[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const lk=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class GEn extends ch{get name(){return"websocket"}doOpen(){const e=this.uri(),n=this.opts.protocols,o=lk?{}:ik(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(o.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,n,o)}catch(r){return this.emitReserved("error",r)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n{try{this.doWrite(o,i)}catch{}r&&v5(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=ok()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}}const KT=$i.WebSocket||$i.MozWebSocket;class jEn extends GEn{createSocket(e,n,o){return lk?new KT(e,n,o):n?new KT(e,n):new KT(e)}doWrite(e,n){this.ws.send(n)}}class zEn extends ch{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const n=AEn(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=e.readable.pipeThrough(n).getReader(),r=CEn();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();const i=()=>{o.read().then(({done:a,value:l})=>{a||(this.onPacket(l),i())}).catch(a=>{})};i();const s={type:"open"};this.query.sid&&(s.data=`{"sid":"${this.query.sid}"}`),this._writer.write(s).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let n=0;n{r&&v5(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const YEn={websocket:jEn,webtransport:zEn,polling:qEn},WEn=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,KEn=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Mf(t){if(t.length>8e3)throw"URI too long";const e=t,n=t.indexOf("["),o=t.indexOf("]");n!=-1&&o!=-1&&(t=t.substring(0,n)+t.substring(n,o).replace(/:/g,";")+t.substring(o,t.length));let r=WEn.exec(t||""),i={},s=14;for(;s--;)i[KEn[s]]=r[s]||"";return n!=-1&&o!=-1&&(i.source=e,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=ZEn(i,i.path),i.queryKey=XEn(i,i.query),i}function ZEn(t,e){const n=/\/{2,9}/g,o=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&o.splice(0,1),e.slice(-1)=="/"&&o.splice(o.length-1,1),o}function XEn(t,e){const n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,r,i){r&&(n[r]=i)}),n}const Rf=typeof addEventListener=="function"&&typeof removeEventListener=="function",Z6=[];Rf&&addEventListener("offline",()=>{Z6.forEach(t=>t())},!1);class j1 extends On{constructor(e,n){if(super(),this.binaryType=OEn,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(n=e,e=null),e){const o=Mf(e);n.hostname=o.host,n.secure=o.protocol==="https"||o.protocol==="wss",n.port=o.port,o.query&&(n.query=o.query)}else n.host&&(n.hostname=Mf(n.host).host);y5(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(o=>{const r=o.prototype.name;this.transports.push(r),this._transportsByName[r]=o}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=HEn(this.opts.query)),Rf&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Z6.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const n=Object.assign({},this.opts.query);n.EIO=rk,n.transport=e,this.id&&(n.sid=this.id);const o=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](o)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&j1.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(e);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",j1.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=e.data,this._onError(n);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let o=0;o0&&n>this._maxPayload)return this.writeBuffer.slice(0,o);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,v5(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,n,o){return this._sendPacket("message",e,n,o),this}send(e,n,o){return this._sendPacket("message",e,n,o),this}_sendPacket(e,n,o,r){if(typeof n=="function"&&(r=n,n=void 0),typeof o=="function"&&(r=o,o=null),this.readyState==="closing"||this.readyState==="closed")return;o=o||{},o.compress=o.compress!==!1;const i={type:e,data:n,options:o};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},o=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?o():e()}):this.upgrading?o():e()),this}_onError(e){if(j1.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Rf&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const o=Z6.indexOf(this._offlineEventListener);o!==-1&&Z6.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}}j1.protocol=rk;class JEn extends j1{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e{o||(n.send([{type:"ping",data:"probe"}]),n.once("packet",d=>{if(!o)if(d.type==="pong"&&d.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;j1.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{o||this.readyState!=="closed"&&(u(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=n.name,this.emitReserved("upgradeError",f)}}))};function i(){o||(o=!0,u(),n.close(),n=null)}const s=d=>{const f=new Error("probe error: "+d);f.transport=n.name,i(),this.emitReserved("upgradeError",f)};function a(){s("transport closed")}function l(){s("socket closed")}function c(d){n&&d.name!==n.name&&i()}const u=()=>{n.removeListener("open",r),n.removeListener("error",s),n.removeListener("close",a),this.off("close",l),this.off("upgrading",c)};n.once("open",r),n.once("error",s),n.once("close",a),this.once("close",l),this.once("upgrading",c),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{o||n.open()},200):n.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const n=[];for(let o=0;oYEn[r]).filter(r=>!!r)),super(e,o)}};function tSn(t,e="",n){let o=t;n=n||typeof location<"u"&&location,t==null&&(t=n.protocol+"//"+n.host),typeof t=="string"&&(t.charAt(0)==="/"&&(t.charAt(1)==="/"?t=n.protocol+t:t=n.host+t),/^(https?|wss?):\/\//.test(t)||(typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),o=Mf(t)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";const i=o.host.indexOf(":")!==-1?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+i+":"+o.port+e,o.href=o.protocol+"://"+i+(n&&n.port===o.port?"":":"+o.port),o}const nSn=typeof ArrayBuffer=="function",rSn=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,ck=Object.prototype.toString,iSn=typeof Blob=="function"||typeof Blob<"u"&&ck.call(Blob)==="[object BlobConstructor]",oSn=typeof File=="function"||typeof File<"u"&&ck.call(File)==="[object FileConstructor]";function uh(t){return nSn&&(t instanceof ArrayBuffer||rSn(t))||iSn&&t instanceof Blob||oSn&&t instanceof File}function X6(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,o=t.length;n=0&&t.num{delete this.acks[e];for(let a=0;a{this.io.clearTimeoutFn(i),n.apply(this,a)};s.withError=!0,this.acks[e]=s}emitWithAck(e,...n){return new Promise((o,r)=>{const i=(s,a)=>s?r(s):o(a);i.withError=!0,n.push(i),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());const o={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((r,...i)=>o!==this._queue[0]?void 0:(r!==null?o.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(r)):(this._queue.shift(),n&&n(null,...i)),o.pending=!1,this._drainQueue())),this._queue.push(o),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!e||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:Mt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(o=>String(o.id)===e)){const o=this.acks[e];delete this.acks[e],o.withError&&o.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case Mt.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Mt.EVENT:case Mt.BINARY_EVENT:this.onevent(e);break;case Mt.ACK:case Mt.BINARY_ACK:this.onack(e);break;case Mt.DISCONNECT:this.ondisconnect();break;case Mt.CONNECT_ERROR:this.destroy();const o=new Error(e.data.message);o.data=e.data.data,this.emitReserved("connect_error",o);break}}onevent(e){const n=e.data||[];e.id!=null&&n.push(this.ack(e.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const o of n)o.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const n=this;let o=!1;return function(...r){o||(o=!0,n.packet({type:Mt.ACK,id:e,data:r}))}}onack(e){const n=this.acks[e.id];typeof n=="function"&&(delete this.acks[e.id],n.withError&&e.data.unshift(null),n.apply(this,e.data))}onconnect(e,n){this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Mt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const n=this._anyListeners;for(let o=0;o0&&t.jitter<=1?t.jitter:0,this.attempts=0}ql.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=(Math.floor(e*10)&1)==0?t-n:t+n}return Math.min(t,this.max)|0};ql.prototype.reset=function(){this.attempts=0};ql.prototype.setMin=function(t){this.ms=t};ql.prototype.setMax=function(t){this.max=t};ql.prototype.setJitter=function(t){this.jitter=t};class If extends On{constructor(e,n){var o;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,y5(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((o=n.randomizationFactor)!==null&&o!==void 0?o:.5),this.backoff=new ql({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;const r=n.parser||TSn;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new eSn(this.uri,this.opts);const n=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;const r=Ho(n,"open",function(){o.onopen(),e&&e()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),e?e(a):this.maybeReconnectOnOpen()},s=Ho(n,"error",i);if(this._timeout!==!1){const a=this._timeout,l=this.setTimeoutFn(()=>{r(),i(new Error("timeout")),n.close()},a);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(r),this.subs.push(s),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(Ho(e,"ping",this.onping.bind(this)),Ho(e,"data",this.ondata.bind(this)),Ho(e,"error",this.onerror.bind(this)),Ho(e,"close",this.onclose.bind(this)),Ho(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){v5(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,n){let o=this.nsps[e];return o?this._autoConnect&&!o.active&&o.connect():(o=new uk(this,e,n),this.nsps[e]=o),o}_destroy(e){const n=Object.keys(this.nsps);for(const o of n)if(this.nsps[o].active)return;this._close()}_packet(e){const n=this.encoder.encode(e);for(let o=0;oe()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,n){var o;this.cleanup(),(o=this.engine)===null||o===void 0||o.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const o=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(r=>{r?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",r)):e.onreconnect()}))},n);this.opts.autoUnref&&o.unref(),this.subs.push(()=>{this.clearTimeoutFn(o)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const ic={};function J6(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};const n=tSn(t,e.path||"/socket.io"),o=n.source,r=n.id,i=n.path,s=ic[r]&&i in ic[r].nsps,a=e.forceNew||e["force new connection"]||e.multiplex===!1||s;let l;return a?l=new If(o,e):(ic[r]||(ic[r]=new If(o,e)),l=ic[r]),n.query&&!e.query&&(e.query=n.queryKey),l.socket(n.path,e)}Object.assign(J6,{Manager:If,Socket:uk,io:J6,connect:J6});const dk="/";console.log(dk);const Ye=new J6(dk,{reconnection:!0,reconnectionAttempts:10,reconnectionDelay:1e3}),pSn={props:{value:String,inputType:{type:String,default:"text",validator:t=>["text","email","password","file","path","integer","float"].includes(t)},fileAccept:String},data(){return{inputValue:this.value,placeholderText:this.getPlaceholderText()}},watch:{value(t){console.log("Changing value to ",t),this.inputValue=t}},mounted(){be(()=>{Le.replace()}),console.log("Changing value to ",this.value),this.inputValue=this.value},methods:{handleSliderInput(t){this.inputValue=t.target.value,this.$emit("input",t.target.value)},getPlaceholderText(){switch(this.inputType){case"text":return"Enter text here";case"email":return"Enter your email";case"password":return"Enter your password";case"file":case"path":return"Choose a file";case"integer":return"Enter an integer";case"float":return"Enter a float";default:return"Enter value here"}},handleInput(t){if(this.inputType==="integer"){const e=t.target.value.replace(/[^0-9]/g,"");this.inputValue=e}console.log("handling input : ",t.target.value),this.$emit("input",t.target.value)},async pasteFromClipboard(){try{const t=await navigator.clipboard.readText();this.handleClipboardData(t)}catch(t){console.error("Failed to read from clipboard:",t)}},handlePaste(t){const e=t.clipboardData.getData("text");this.handleClipboardData(e)},handleClipboardData(t){switch(this.inputType){case"email":this.inputValue=this.isValidEmail(t)?t:"";break;case"password":this.inputValue=t;break;case"file":case"path":this.inputValue="";break;case"integer":this.inputValue=this.parseInteger(t);break;case"float":this.inputValue=this.parseFloat(t);break;default:this.inputValue=t;break}},isValidEmail(t){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)},parseInteger(t){const e=parseInt(t);return isNaN(e)?"":e},parseFloat(t){const e=parseFloat(t);return isNaN(e)?"":e},openFileInput(){this.$refs.fileInput.click()},handleFileInputChange(t){const e=t.target.files[0];e&&(this.inputValue=e.name)}}},hSn={class:"flex items-center space-x-2"},mSn=["value","type","placeholder"],gSn=["value","min","max"],_Sn=["accept"];function QSn(t,e,n,o,r,i){return N(),H("div",hSn,[t.useSlider?(N(),H("input",{key:1,type:"range",value:parseInt(r.inputValue),min:t.minSliderValue,max:t.maxSliderValue,onInput:e[2]||(e[2]=(...s)=>i.handleSliderInput&&i.handleSliderInput(...s)),class:"flex-1 px-4 py-2 text-lg border dark:bg-gray-600 border-gray-300 rounded-md focus:outline-none focus:ring focus:border-blue-500"},null,40,gSn)):(N(),H("input",{key:0,value:r.inputValue,type:n.inputType,placeholder:r.placeholderText,onInput:e[0]||(e[0]=(...s)=>i.handleInput&&i.handleInput(...s)),onPaste:e[1]||(e[1]=(...s)=>i.handlePaste&&i.handlePaste(...s)),class:"flex-1 px-4 py-2 text-lg dark:bg-gray-600 border border-gray-300 rounded-md focus:outline-none focus:ring focus:border-blue-500"},null,40,mSn)),S("button",{onClick:e[3]||(e[3]=(...s)=>i.pasteFromClipboard&&i.pasteFromClipboard(...s)),class:"p-2 bg-blue-500 dark:bg-gray-600 text-white rounded-md hover:bg-blue-600 focus:outline-none focus:ring focus:border-blue-300"},e[6]||(e[6]=[S("i",{"data-feather":"clipboard"},null,-1)])),n.inputType==="file"?(N(),H("button",{key:2,onClick:e[4]||(e[4]=(...s)=>i.openFileInput&&i.openFileInput(...s)),class:"p-2 bg-blue-500 text-white rounded-md hover:bg-blue-600 focus:outline-none focus:ring focus:border-blue-300"},e[7]||(e[7]=[S("i",{"data-feather":"upload"},null,-1)]))):Z("",!0),n.inputType==="file"?(N(),H("input",{key:3,ref:"fileInput",type:"file",style:{display:"none"},accept:n.fileAccept,onChange:e[5]||(e[5]=(...s)=>i.handleFileInputChange&&i.handleFileInputChange(...s))},null,40,_Sn)):Z("",!0)])}const Th=ze(pSn,[["render",QSn],["__scopeId","data-v-81c70e8d"]]),vSn={name:"TokensHighlighter",props:{namedTokens:{type:Object,required:!0}},data(){return{colors:["#FF6633","#FFB399","#FF33FF","#FFFF99","#00B3E6","#E6B333","#3366E6","#999966","#99FF99","#B34D4D","#80B300","#809900","#E6B3B3","#6680B3","#66991A","#FF99E6","#CCFF1A","#FF1A66","#E6331A","#33FFCC","#66994D","#B366CC","#4D8000","#B33300","#CC80CC","#66664D","#991AFF","#E666FF","#4DB3FF","#1AB399","#E666B3","#33991A","#CC9999","#B3B31A","#00E680","#4D8066","#809980","#E6FF80","#1AFF33","#999933","#FF3380","#CCCC00","#66E64D","#4D80CC","#9900B3","#E64D66","#4DB380","#FF4D4D","#99E6E6","#6666FF"]}}},ySn={class:"w-full"},bSn={class:"break-words"},ESn={class:"break-words mt-2"},SSn={class:"mt-4"};function xSn(t,e,n,o,r,i){return N(),H("div",ySn,[S("div",bSn,[(N(!0),H(Ae,null,Ue(n.namedTokens,(s,a)=>(N(),H("span",{key:a},[S("span",{class:"inline-block whitespace-pre-wrap",style:Jt({backgroundColor:r.colors[a%r.colors.length]})},J(s[0]),5)]))),128))]),S("div",ESn,[(N(!0),H(Ae,null,Ue(n.namedTokens,(s,a)=>(N(),H("span",{key:a},[S("span",{class:"inline-block px-1 whitespace-pre-wrap",style:Jt({backgroundColor:r.colors[a%r.colors.length]})},J(s[1]),5)]))),128))]),S("div",SSn,[S("strong",null,"Total Tokens: "+J(n.namedTokens.length),1)])])}const LSn=ze(vSn,[["render",xSn]]),CSn={name:"ChatBarButton",emits:["click"]};function ASn(t,e,n,o,r,i){return N(),H("button",hR({class:"svg-button"},t.$attrs,{onClick:e[0]||(e[0]=s=>t.$emit("click",s))}),[_n(t.$slots,"icon"),_n(t.$slots,"default")],16)}const fh=ze(CSn,[["render",ASn]]),wSn={name:"EnhancedCard",props:{isSubcard:{type:Boolean,default:!1},initiallyShrunk:{type:Boolean,default:!1},canShrink:{type:Boolean,default:!0},title:{type:String,default:""},isHorizontal:{type:Boolean,default:!1},cardWidth:{type:String,default:"w-full"},marginClass:{type:String,default:"m-2"},disableHoverAnimation:{type:Boolean,default:!1},disableFocus:{type:Boolean,default:!1}},emits:["shrunk","expanded","focused","blurred"],setup(t,{emit:e}){const n=ke(t.initiallyShrunk),o=ke(!1),r=$e(()=>`card-content-${Math.random().toString(36).substring(2,9)}`),i=()=>{t.canShrink&&!n.value&&(n.value=!0,e("shrunk"),o.value&&c())},s=()=>{t.canShrink&&n.value&&(n.value=!1,e("expanded"))},a=()=>{t.canShrink&&(n.value?s():i())},l=()=>{!t.disableFocus&&!o.value&&(o.value=!0,e("focused"),document.body.style.overflow="hidden")},c=()=>{o.value&&(o.value=!1,e("blurred"),document.body.style.overflow="")},u=d=>{d.key==="Escape"&&o.value&&c()};return hr(()=>{document.addEventListener("keydown",u)}),X1(()=>{document.removeEventListener("keydown",u),o.value&&(document.body.style.overflow="")}),{isShrunkInternal:n,isActive:o,contentId:r,shrinkCard:i,expandCard:s,toggleShrink:a,focusCard:l,blurCard:c}}},OSn=["id"],MSn=["aria-expanded","aria-controls","tabindex"],RSn={key:0,class:"ml-2 text-sm"},NSn=["aria-label"];function DSn(t,e,n,o,r,i){return N(),H("div",{class:Ee(n.marginClass)},[o.isActive?(N(),H("div",{key:0,class:"overlay",onClick:e[0]||(e[0]=(...s)=>o.blurCard&&o.blurCard(...s))})):Z("",!0),Ce(S("div",{id:o.contentId,class:Ee(["card-container relative border rounded-lg shadow-lg p-4 transition-all duration-300 ease-in-out",n.cardWidth,"bg-clip-padding backdrop-filter backdrop-blur-xl bg-opacity-60","border border-gray-200/30",{"bg-gray-100 dark:bg-gray-800":n.isSubcard},{"bg-white dark:bg-gray-900":!n.isSubcard},{"scale-110 z-[1001]":o.isActive},{"cursor-pointer":!n.disableFocus}]),onClick:e[4]||(e[4]=oe((...s)=>o.focusCard&&o.focusCard(...s),["self"]))},[o.isActive?(N(),H("button",{key:0,onClick:e[1]||(e[1]=(...s)=>o.blurCard&&o.blurCard(...s)),class:"absolute top-2 right-2 text-gray-700 hover:text-black dark:text-gray-300 dark:hover:text-white text-2xl leading-none z-10 transition-colors","aria-label":"Close"}," × ")):Z("",!0),n.title?(N(),H("div",{key:1,class:Ee(["flex justify-between items-center rounded-t-lg pl-3 pr-3 pt-2 pb-2 mb-3 font-bold","text-gray-800 dark:text-gray-100",{"cursor-pointer":n.canShrink}]),onClick:e[2]||(e[2]=(...s)=>o.toggleShrink&&o.toggleShrink(...s)),role:"button","aria-expanded":!o.isShrunkInternal,"aria-controls":o.contentId,tabindex:n.canShrink?0:-1,onKeydown:e[3]||(e[3]=Qn((...s)=>o.toggleShrink&&o.toggleShrink(...s),["enter","space"]))},[S("span",null,J(n.title),1),n.canShrink?(N(),H("span",RSn,J(o.isShrunkInternal?"▼":"▲"),1)):Z("",!0)],42,MSn)):Z("",!0),S("div",{class:Ee(["text-gray-700 dark:text-gray-200",{"flex flex-wrap":n.isHorizontal,"mb-2":!n.isHorizontal}])},[_n(t.$slots,"default",{},void 0,!0)],2)],10,OSn),[[wn,!o.isShrunkInternal]]),n.canShrink?Ce((N(),H("div",{key:1,onClick:e[5]||(e[5]=(...s)=>o.expandCard&&o.expandCard(...s)),class:Ee(["shrunk-card border rounded-lg shadow-lg p-2 text-center cursor-pointer transition-all duration-300 ease-in-out",n.cardWidth,"bg-clip-padding backdrop-filter backdrop-blur-md bg-opacity-70","border border-gray-200/30",{"bg-gray-100 dark:bg-gray-800":n.isSubcard},{"bg-white dark:bg-gray-900":!n.isSubcard},"hover:bg-opacity-80 dark:hover:bg-opacity-80",{"text-lg font-semibold text-gray-800 dark:text-gray-200":n.isSubcard},{"text-xl font-bold text-gray-800 dark:text-gray-200":!n.isSubcard}]),role:"button","aria-label":`Expand ${n.title||"Card"}`,tabindex:"0",onKeydown:e[6]||(e[6]=Qn((...s)=>o.expandCard&&o.expandCard(...s),["enter","space"]))},[Oe(J(n.title||"Show Card")+" ",1),e[7]||(e[7]=S("span",{class:"text-sm"},"▼",-1))],42,NSn)),[[wn,o.isShrunkInternal]]):Z("",!0)],2)}const ph=ze(wSn,[["render",DSn],["__scopeId","data-v-c3cec55e"]]),Tk="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%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%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20%203H4c-1.103%200-2%20.897-2%202v14c0%201.103.897%202%202%202h16c1.103%200%202-.897%202-2V5c0-1.103-.897-2-2-2zM4%2019V7h16l.002%2012H4z'/%3e%3cpath%20d='M9.293%209.293%205.586%2013l3.707%203.707%201.414-1.414L8.414%2013l2.293-2.293zm5.414%200-1.414%201.414L15.586%2013l-2.293%202.293%201.414%201.414L18.414%2013z'/%3e%3c/svg%3e",fk="/assets/python_block-Bt12VGEE.png",pk="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.3.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20630%20630'%20style='enable-background:new%200%200%20630%20630;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23EDBF4A;}%20.st1{fill:%230C0C0C;}%20%3c/style%3e%3crect%20class='st0'%20width='630'%20height='630'/%3e%3cpath%20class='st1'%20d='M423.2,492.2c12.7,20.7,29.2,36,58.4,36c24.5,0,40.2-12.3,40.2-29.2c0-20.3-16.1-27.5-43.1-39.3l-14.8-6.4%20c-42.7-18.2-71.1-41-71.1-89.2c0-44.4,33.8-78.2,86.7-78.2c37.6,0,64.7,13.1,84.2,47.4l-46.1,29.6c-10.1-18.2-21.1-25.4-38.1-25.4%20c-17.3,0-28.3,11-28.3,25.4c0,17.8,11,25,36.4,36l14.8,6.3c50.3,21.6,78.7,43.6,78.7,93c0,53.3-41.9,82.5-98.1,82.5%20c-55,0-90.5-26.2-107.9-60.5L423.2,492.2z%20M214.1,497.3c9.3,16.5,17.8,30.5,38.1,30.5c19.5,0,31.7-7.6,31.7-37.2V289.3h59.2v202.1%20c0,61.3-35.9,89.2-88.4,89.2c-47.4,0-74.9-24.5-88.8-54.1L214.1,497.3z'/%3e%3c/svg%3e",hk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOeSURBVGhD7ZhNaBNBGIZHW/EPbSioRSpi0FRpVdRSjQfxkFilB5UciuChIL0JLaKIhR5KIYKIiBSF0mLVS7AIavUgPQjiT4+KB0EP3gwS8VDBgj8d33d2ZrNJt2lCppKWfeBh5pvdncyXmZ3sZokQQsIFz1JdLni8M8L6QkSNf9HMSJBIpREkUmkEiVQaQSKVRpCIH8lkUtbW1sre3l7fB9FoNCrD4fC8PaSyYyudNzU1yZGRkYJ9dXV1yUQiYTMZNX6rM5LJZERHR0fBh0/MmJDSZh4OVhOZmprStf+P1UQmJyd1zaGvr09NuxM5VFVViYmJCR3Zw1oiPT09koP00tjYKNrb23XkEIlERHV1tY7sMuNbK5XR0VGJwcnBwcGi+uns7Cz7Mz24fVnpdGhoSDY0NBTbjxweHi77MzXu+N2KBebsh7PW0tJi6/OIGr/Vm72mpkbXssTj8ZxBp9NpUV9fryN7WE0kn1QqJcfHx3U0v1hNJBQKqXtFh2JsbEx0d3frKMv09LSu2UWtMadaHm1tberxQ+9Koq6uLqff1tZW2dzcLPXviy3c8bsVG/T398+6I8ViMTkwMGDtszRq/MEfdJVGkEilESRSaZSSyCa43anmsAPGII/7wWd7nnMEbmaDD2G41anmsA76tfui9mGnWpAPkOftVpEQuyDfkMz19Bv0cg56j9NP8AQ07IXm2Es2eHgK2b5RRf6Ya7OVOchP5D1kfA0m4GX4CxouQR7/A6/DC/CObqNRSA5A00Y7oeG/JMJBM65TUS7rIV/gefw4GzzchWx/rKJsIu90+REaik6knJv9hy5vw4NO1WU/XAG/w0ds8MABk326NLyGL+A2eJYNpVBOIhd1eRS+gs/hTjYAc4M+06WX+7rkt7zKqbrc0OV5WNIjUzmJDME9MKUiIQ5DvnyshOZfCL/+l+uSz/I/narLA8gvhLsb77miKScR8haegqfhb7gBcoa4M5G4Lr0069Kck88VXZ6B+TNWEHWzONWCpCHPM78lZhkZ3kAePwa36DpthQYulwxke5INwNzst1Tk8ASa66mVXYtLgFPOc7iVroUtOh6F3Gbv6fgLXAPJVWj65vU3IW9oxl+hWWJ+iRyC5lpqJZHP0JxjbnBO+UP4F5pjXNsnoRf+IJqZpNySmRSXoMEvEeL9Iqwkwm20Cfqt12UwAleraHZCcLbHEzLz75fiUeMP3hArjUWTiHdpLWgWyYwI8Q8rrSjH5vAr6AAAAABJRU5ErkJggg==",mk="/assets/cpp_block-kkmuBJ_E.png",gk="/assets/html5_block-beC_-Wtz.png",_k="/assets/LaTeX_block-BNFNi2yr.png",Qk="/assets/bash_block-DZNRrwlz.png",ISn="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTAgNTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxjaXJjbGUgY3g9IjI1IiBjeT0iMjUiIHI9IjI1IiBmaWxsPSJkZWVwc2t5Ymx1ZSIvPg0KICA8dGV4dCB4PSIyNSIgeT0iMzciIGZvbnQtc2l6ZT0iMzYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IndoaXRlIiBmb250LXdlaWdodD0iYm9sZCI+VDwvdGV4dD4NCjwvc3ZnPg0K",kSn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='red'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%3e%3c/circle%3e%3cpath%20d='M16%2016s-1.5-2-4-2-4%202-4%202'%20stroke='currentColor'%3e%3c/path%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%20stroke='currentColor'%3e%3c/line%3e%3c/svg%3e",HSn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%3e%3c/circle%3e%3cpath%20d='M16%2016s-1.5-2-4-2-4%202-4%202'%3e%3c/path%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%3e%3c/line%3e%3c/svg%3e",PSn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%3e%3ccircle%20cx='25'%20cy='25'%20r='24'%20fill='white'%20stroke='black'%20stroke-width='2'/%3e%3ccircle%20id='heartbeat'%20cx='25'%20cy='25'%20r='20'%20fill='red'%3e%3canimate%20attributeName='r'%20dur='1s'%20repeatCount='indefinite'%20keyTimes='0;0.25;0.5;0.75;1'%20values='20;24;20;22;20'/%3e%3c/circle%3e%3c/svg%3e",$Sn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%3e%3ccircle%20cx='25'%20cy='25'%20r='24'%20fill='white'%20stroke='black'%20stroke-width='2'/%3e%3ccircle%20cx='25'%20cy='25'%20r='20'%20fill='red'/%3e%3c/svg%3e",vk="data:image/svg+xml,%3csvg%20viewBox='0%200%2050%2050'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='translate(25,25)'%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%23f00'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%230f0'%20transform='rotate(90)'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1.2s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%2300f'%20transform='rotate(180)'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1.4s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='0'%20cy='-15'%20r='3'%20fill='%23ff0'%20transform='rotate(270)'%3e%3canimateTransform%20attributeName='transform'%20type='rotate'%20from='0'%20to='360'%20dur='1.6s'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3c/g%3e%3c/svg%3e",VSn={name:"ToolbarButton",emits:["click"],props:{icon:{type:String,required:!0},title:{type:String,required:!0}},computed:{iconPath(){switch(this.icon){case"x":return'';case"check":return'';case"edit":return'';case"copy":return'';case"trash":return'';case"plus-square":return'';case"send":return'';case"globe":return'';case"fast-forward":return'';case"refresh-cw":return'';case"thumbs-up":return'';case"thumbs-down":return'';case"volume-2":return'';case"mic":return'';case"code":return'';case"python":return'';case"js":return'JS';case"typescript":return'TS';case"java":return'';case"cplusplus":case"c++":return'C++';case"csharp":return'C#';case"go":return'Go';case"rust":return'';case"swift":return'';case"kotlin":return'';case"r-project":return'R';case"html5":return'';case"css3":return'';case"vuejs":return'';case"react":return'';case"angular":return'';case"xml":return'';case"json":return'';case"yaml":return'';case"markdown":return'';case"latex":return'TeX';case"terminal":return'';case"bash":return'';case"powershell":return'';case"perl":return'';case"mermaid":return'';case"graphviz":return'';case"plantuml":return'';case"database":return'';case"sql":return'';case"mongodb":return'';case"chrome":return'';case"file-text":return'';case"git-branch":return'';default:return console.warn(`ToolbarButton: Icon "${this.icon}" not found.`),''}}},methods:{emit_click(t){console.log("ToolbarButton clicked:",this.title),this.$emit("click",t)}}},BSn=["title"],FSn={class:"w-5 h-5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},USn=["innerHTML"];function qSn(t,e,n,o,r,i){return N(),H("button",{class:"svg-button",title:n.title,onClick:e[0]||(e[0]=(...s)=>i.emit_click&&i.emit_click(...s))},[(N(),H("svg",FSn,[S("g",{innerHTML:i.iconPath},null,8,USn)]))],8,BSn)}const hh=ze(VSn,[["render",qSn],["__scopeId","data-v-9da87cca"]]);var qr="top",zi="bottom",Yi="right",Gr="left",mh="auto",e6=[qr,zi,Yi,Gr],Sl="start",Dc="end",GSn="clippingParents",yk="viewport",oc="popper",jSn="reference",mO=e6.reduce(function(t,e){return t.concat([e+"-"+Sl,e+"-"+Dc])},[]),bk=[].concat(e6,[mh]).reduce(function(t,e){return t.concat([e,e+"-"+Sl,e+"-"+Dc])},[]),zSn="beforeRead",YSn="read",WSn="afterRead",KSn="beforeMain",ZSn="main",XSn="afterMain",JSn="beforeWrite",exn="write",txn="afterWrite",nxn=[zSn,YSn,WSn,KSn,ZSn,XSn,JSn,exn,txn];function as(t){return t?(t.nodeName||"").toLowerCase():null}function Ci(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function N2(t){var e=Ci(t).Element;return t instanceof e||t instanceof Element}function qi(t){var e=Ci(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function gh(t){if(typeof ShadowRoot>"u")return!1;var e=Ci(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function rxn(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var o=e.styles[n]||{},r=e.attributes[n]||{},i=e.elements[n];!qi(i)||!as(i)||(Object.assign(i.style,o),Object.keys(r).forEach(function(s){var a=r[s];a===!1?i.removeAttribute(s):i.setAttribute(s,a===!0?"":a)}))})}function ixn(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(o){var r=e.elements[o],i=e.attributes[o]||{},s=Object.keys(e.styles.hasOwnProperty(o)?e.styles[o]:n[o]),a=s.reduce(function(l,c){return l[c]="",l},{});!qi(r)||!as(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(l){r.removeAttribute(l)}))})}}const oxn={name:"applyStyles",enabled:!0,phase:"write",fn:rxn,effect:ixn,requires:["computeStyles"]};function is(t){return t.split("-")[0]}var C2=Math.max,C0=Math.min,xl=Math.round;function kf(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Ek(){return!/^((?!chrome|android).)*safari/i.test(kf())}function Ll(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!1);var o=t.getBoundingClientRect(),r=1,i=1;e&&qi(t)&&(r=t.offsetWidth>0&&xl(o.width)/t.offsetWidth||1,i=t.offsetHeight>0&&xl(o.height)/t.offsetHeight||1);var s=N2(t)?Ci(t):window,a=s.visualViewport,l=!Ek()&&n,c=(o.left+(l&&a?a.offsetLeft:0))/r,u=(o.top+(l&&a?a.offsetTop:0))/i,d=o.width/r,f=o.height/i;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c,x:c,y:u}}function _h(t){var e=Ll(t),n=t.offsetWidth,o=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-o)<=1&&(o=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:o}}function Sk(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&gh(n)){var o=e;do{if(o&&t.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function b1(t){return Ci(t).getComputedStyle(t)}function sxn(t){return["table","td","th"].indexOf(as(t))>=0}function ra(t){return((N2(t)?t.ownerDocument:t.document)||window.document).documentElement}function b5(t){return as(t)==="html"?t:t.assignedSlot||t.parentNode||(gh(t)?t.host:null)||ra(t)}function gO(t){return!qi(t)||b1(t).position==="fixed"?null:t.offsetParent}function axn(t){var e=/firefox/i.test(kf()),n=/Trident/i.test(kf());if(n&&qi(t)){var o=b1(t);if(o.position==="fixed")return null}var r=b5(t);for(gh(r)&&(r=r.host);qi(r)&&["html","body"].indexOf(as(r))<0;){var i=b1(r);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return r;r=r.parentNode}return null}function t6(t){for(var e=Ci(t),n=gO(t);n&&sxn(n)&&b1(n).position==="static";)n=gO(n);return n&&(as(n)==="html"||as(n)==="body"&&b1(n).position==="static")?e:n||axn(t)||e}function Qh(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function _c(t,e,n){return C2(t,C0(e,n))}function lxn(t,e,n){var o=_c(t,e,n);return o>n?n:o}function xk(){return{top:0,right:0,bottom:0,left:0}}function Lk(t){return Object.assign({},xk(),t)}function Ck(t,e){return e.reduce(function(n,o){return n[o]=t,n},{})}var cxn=function(e,n){return e=typeof e=="function"?e(Object.assign({},n.rects,{placement:n.placement})):e,Lk(typeof e!="number"?e:Ck(e,e6))};function uxn(t){var e,n=t.state,o=t.name,r=t.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,a=is(n.placement),l=Qh(a),c=[Gr,Yi].indexOf(a)>=0,u=c?"height":"width";if(!(!i||!s)){var d=cxn(r.padding,n),f=_h(i),T=l==="y"?qr:Gr,h=l==="y"?zi:Yi,g=n.rects.reference[u]+n.rects.reference[l]-s[l]-n.rects.popper[u],_=s[l]-n.rects.reference[l],m=t6(i),Q=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,v=g/2-_/2,b=d[T],y=Q-f[u]-d[h],E=Q/2-f[u]/2+v,x=_c(b,E,y),L=l;n.modifiersData[o]=(e={},e[L]=x,e.centerOffset=x-E,e)}}function dxn(t){var e=t.state,n=t.options,o=n.element,r=o===void 0?"[data-popper-arrow]":o;r!=null&&(typeof r=="string"&&(r=e.elements.popper.querySelector(r),!r)||Sk(e.elements.popper,r)&&(e.elements.arrow=r))}const Txn={name:"arrow",enabled:!0,phase:"main",fn:uxn,effect:dxn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Cl(t){return t.split("-")[1]}var fxn={top:"auto",right:"auto",bottom:"auto",left:"auto"};function pxn(t,e){var n=t.x,o=t.y,r=e.devicePixelRatio||1;return{x:xl(n*r)/r||0,y:xl(o*r)/r||0}}function _O(t){var e,n=t.popper,o=t.popperRect,r=t.placement,i=t.variation,s=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,u=t.roundOffsets,d=t.isFixed,f=s.x,T=f===void 0?0:f,h=s.y,g=h===void 0?0:h,_=typeof u=="function"?u({x:T,y:g}):{x:T,y:g};T=_.x,g=_.y;var m=s.hasOwnProperty("x"),Q=s.hasOwnProperty("y"),v=Gr,b=qr,y=window;if(c){var E=t6(n),x="clientHeight",L="clientWidth";if(E===Ci(n)&&(E=ra(n),b1(E).position!=="static"&&a==="absolute"&&(x="scrollHeight",L="scrollWidth")),E=E,r===qr||(r===Gr||r===Yi)&&i===Dc){b=zi;var C=d&&E===y&&y.visualViewport?y.visualViewport.height:E[x];g-=C-o.height,g*=l?1:-1}if(r===Gr||(r===qr||r===zi)&&i===Dc){v=Yi;var A=d&&E===y&&y.visualViewport?y.visualViewport.width:E[L];T-=A-o.width,T*=l?1:-1}}var O=Object.assign({position:a},c&&fxn),R=u===!0?pxn({x:T,y:g},Ci(n)):{x:T,y:g};if(T=R.x,g=R.y,l){var D;return Object.assign({},O,(D={},D[b]=Q?"0":"",D[v]=m?"0":"",D.transform=(y.devicePixelRatio||1)<=1?"translate("+T+"px, "+g+"px)":"translate3d("+T+"px, "+g+"px, 0)",D))}return Object.assign({},O,(e={},e[b]=Q?g+"px":"",e[v]=m?T+"px":"",e.transform="",e))}function hxn(t){var e=t.state,n=t.options,o=n.gpuAcceleration,r=o===void 0?!0:o,i=n.adaptive,s=i===void 0?!0:i,a=n.roundOffsets,l=a===void 0?!0:a,c={placement:is(e.placement),variation:Cl(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:r,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,_O(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,_O(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const mxn={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:hxn,data:{}};var M6={passive:!0};function gxn(t){var e=t.state,n=t.instance,o=t.options,r=o.scroll,i=r===void 0?!0:r,s=o.resize,a=s===void 0?!0:s,l=Ci(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,M6)}),a&&l.addEventListener("resize",n.update,M6),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,M6)}),a&&l.removeEventListener("resize",n.update,M6)}}const _xn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:gxn,data:{}};var Qxn={left:"right",right:"left",bottom:"top",top:"bottom"};function e0(t){return t.replace(/left|right|bottom|top/g,function(e){return Qxn[e]})}var vxn={start:"end",end:"start"};function QO(t){return t.replace(/start|end/g,function(e){return vxn[e]})}function vh(t){var e=Ci(t),n=e.pageXOffset,o=e.pageYOffset;return{scrollLeft:n,scrollTop:o}}function yh(t){return Ll(ra(t)).left+vh(t).scrollLeft}function yxn(t,e){var n=Ci(t),o=ra(t),r=n.visualViewport,i=o.clientWidth,s=o.clientHeight,a=0,l=0;if(r){i=r.width,s=r.height;var c=Ek();(c||!c&&e==="fixed")&&(a=r.offsetLeft,l=r.offsetTop)}return{width:i,height:s,x:a+yh(t),y:l}}function bxn(t){var e,n=ra(t),o=vh(t),r=(e=t.ownerDocument)==null?void 0:e.body,i=C2(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=C2(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-o.scrollLeft+yh(t),l=-o.scrollTop;return b1(r||n).direction==="rtl"&&(a+=C2(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:s,x:a,y:l}}function bh(t){var e=b1(t),n=e.overflow,o=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function Ak(t){return["html","body","#document"].indexOf(as(t))>=0?t.ownerDocument.body:qi(t)&&bh(t)?t:Ak(b5(t))}function Qc(t,e){var n;e===void 0&&(e=[]);var o=Ak(t),r=o===((n=t.ownerDocument)==null?void 0:n.body),i=Ci(o),s=r?[i].concat(i.visualViewport||[],bh(o)?o:[]):o,a=e.concat(s);return r?a:a.concat(Qc(b5(s)))}function Hf(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Exn(t,e){var n=Ll(t,!1,e==="fixed");return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function vO(t,e,n){return e===yk?Hf(yxn(t,n)):N2(e)?Exn(e,n):Hf(bxn(ra(t)))}function Sxn(t){var e=Qc(b5(t)),n=["absolute","fixed"].indexOf(b1(t).position)>=0,o=n&&qi(t)?t6(t):t;return N2(o)?e.filter(function(r){return N2(r)&&Sk(r,o)&&as(r)!=="body"}):[]}function xxn(t,e,n,o){var r=e==="clippingParents"?Sxn(t):[].concat(e),i=[].concat(r,[n]),s=i[0],a=i.reduce(function(l,c){var u=vO(t,c,o);return l.top=C2(u.top,l.top),l.right=C0(u.right,l.right),l.bottom=C0(u.bottom,l.bottom),l.left=C2(u.left,l.left),l},vO(t,s,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function wk(t){var e=t.reference,n=t.element,o=t.placement,r=o?is(o):null,i=o?Cl(o):null,s=e.x+e.width/2-n.width/2,a=e.y+e.height/2-n.height/2,l;switch(r){case qr:l={x:s,y:e.y-n.height};break;case zi:l={x:s,y:e.y+e.height};break;case Yi:l={x:e.x+e.width,y:a};break;case Gr:l={x:e.x-n.width,y:a};break;default:l={x:e.x,y:e.y}}var c=r?Qh(r):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case Sl:l[c]=l[c]-(e[u]/2-n[u]/2);break;case Dc:l[c]=l[c]+(e[u]/2-n[u]/2);break}}return l}function Ic(t,e){e===void 0&&(e={});var n=e,o=n.placement,r=o===void 0?t.placement:o,i=n.strategy,s=i===void 0?t.strategy:i,a=n.boundary,l=a===void 0?GSn:a,c=n.rootBoundary,u=c===void 0?yk:c,d=n.elementContext,f=d===void 0?oc:d,T=n.altBoundary,h=T===void 0?!1:T,g=n.padding,_=g===void 0?0:g,m=Lk(typeof _!="number"?_:Ck(_,e6)),Q=f===oc?jSn:oc,v=t.rects.popper,b=t.elements[h?Q:f],y=xxn(N2(b)?b:b.contextElement||ra(t.elements.popper),l,u,s),E=Ll(t.elements.reference),x=wk({reference:E,element:v,placement:r}),L=Hf(Object.assign({},v,x)),C=f===oc?L:E,A={top:y.top-C.top+m.top,bottom:C.bottom-y.bottom+m.bottom,left:y.left-C.left+m.left,right:C.right-y.right+m.right},O=t.modifiersData.offset;if(f===oc&&O){var R=O[r];Object.keys(A).forEach(function(D){var M=[Yi,zi].indexOf(D)>=0?1:-1,$=[qr,zi].indexOf(D)>=0?"y":"x";A[D]+=R[$]*M})}return A}function Lxn(t,e){e===void 0&&(e={});var n=e,o=n.placement,r=n.boundary,i=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?bk:l,u=Cl(o),d=u?a?mO:mO.filter(function(h){return Cl(h)===u}):e6,f=d.filter(function(h){return c.indexOf(h)>=0});f.length===0&&(f=d);var T=f.reduce(function(h,g){return h[g]=Ic(t,{placement:g,boundary:r,rootBoundary:i,padding:s})[is(g)],h},{});return Object.keys(T).sort(function(h,g){return T[h]-T[g]})}function Cxn(t){if(is(t)===mh)return[];var e=e0(t);return[QO(t),e,QO(e)]}function Axn(t){var e=t.state,n=t.options,o=t.name;if(!e.modifiersData[o]._skip){for(var r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,a=s===void 0?!0:s,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,T=n.flipVariations,h=T===void 0?!0:T,g=n.allowedAutoPlacements,_=e.options.placement,m=is(_),Q=m===_,v=l||(Q||!h?[e0(_)]:Cxn(_)),b=[_].concat(v).reduce(function(j,ue){return j.concat(is(ue)===mh?Lxn(e,{placement:ue,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:g}):ue)},[]),y=e.rects.reference,E=e.rects.popper,x=new Map,L=!0,C=b[0],A=0;A=0,$=M?"width":"height",U=Ic(e,{placement:O,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),G=M?D?Yi:Gr:D?zi:qr;y[$]>E[$]&&(G=e0(G));var P=e0(G),F=[];if(i&&F.push(U[R]<=0),a&&F.push(U[G]<=0,U[P]<=0),F.every(function(j){return j})){C=O,L=!1;break}x.set(O,F)}if(L)for(var B=h?3:1,q=function(ue){var pe=b.find(function(z){var te=x.get(z);if(te)return te.slice(0,ue).every(function(ae){return ae})});if(pe)return C=pe,"break"},ee=B;ee>0;ee--){var K=q(ee);if(K==="break")break}e.placement!==C&&(e.modifiersData[o]._skip=!0,e.placement=C,e.reset=!0)}}const wxn={name:"flip",enabled:!0,phase:"main",fn:Axn,requiresIfExists:["offset"],data:{_skip:!1}};function yO(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function bO(t){return[qr,Yi,zi,Gr].some(function(e){return t[e]>=0})}function Oxn(t){var e=t.state,n=t.name,o=e.rects.reference,r=e.rects.popper,i=e.modifiersData.preventOverflow,s=Ic(e,{elementContext:"reference"}),a=Ic(e,{altBoundary:!0}),l=yO(s,o),c=yO(a,r,i),u=bO(l),d=bO(c);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const Mxn={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Oxn};function Rxn(t,e,n){var o=is(t),r=[Gr,qr].indexOf(o)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,s=i[0],a=i[1];return s=s||0,a=(a||0)*r,[Gr,Yi].indexOf(o)>=0?{x:a,y:s}:{x:s,y:a}}function Nxn(t){var e=t.state,n=t.options,o=t.name,r=n.offset,i=r===void 0?[0,0]:r,s=bk.reduce(function(u,d){return u[d]=Rxn(d,e.rects,i),u},{}),a=s[e.placement],l=a.x,c=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[o]=s}const Dxn={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Nxn};function Ixn(t){var e=t.state,n=t.name;e.modifiersData[n]=wk({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const kxn={name:"popperOffsets",enabled:!0,phase:"read",fn:Ixn,data:{}};function Hxn(t){return t==="x"?"y":"x"}function Pxn(t){var e=t.state,n=t.options,o=t.name,r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,a=s===void 0?!1:s,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,T=f===void 0?!0:f,h=n.tetherOffset,g=h===void 0?0:h,_=Ic(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),m=is(e.placement),Q=Cl(e.placement),v=!Q,b=Qh(m),y=Hxn(b),E=e.modifiersData.popperOffsets,x=e.rects.reference,L=e.rects.popper,C=typeof g=="function"?g(Object.assign({},e.rects,{placement:e.placement})):g,A=typeof C=="number"?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),O=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,R={x:0,y:0};if(E){if(i){var D,M=b==="y"?qr:Gr,$=b==="y"?zi:Yi,U=b==="y"?"height":"width",G=E[b],P=G+_[M],F=G-_[$],B=T?-L[U]/2:0,q=Q===Sl?x[U]:L[U],ee=Q===Sl?-L[U]:-x[U],K=e.elements.arrow,j=T&&K?_h(K):{width:0,height:0},ue=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:xk(),pe=ue[M],z=ue[$],te=_c(0,x[U],j[U]),ae=v?x[U]/2-B-te-pe-A.mainAxis:q-te-pe-A.mainAxis,he=v?-x[U]/2+B+te+z+A.mainAxis:ee+te+z+A.mainAxis,ve=e.elements.arrow&&t6(e.elements.arrow),Y=ve?b==="y"?ve.clientTop||0:ve.clientLeft||0:0,W=(D=O==null?void 0:O[b])!=null?D:0,X=G+ae-W-Y,se=G+he-W,ce=_c(T?C0(P,X):P,G,T?C2(F,se):F);E[b]=ce,R[b]=ce-G}if(a){var de,Te=b==="x"?qr:Gr,Qe=b==="x"?zi:Yi,_e=E[y],ye=y==="y"?"height":"width",Be=_e+_[Te],xe=_e-_[Qe],le=[qr,Gr].indexOf(m)!==-1,we=(de=O==null?void 0:O[y])!=null?de:0,De=le?Be:_e-x[ye]-L[ye]-we+A.altAxis,Ze=le?_e+x[ye]+L[ye]-we-A.altAxis:xe,tt=T&&le?lxn(De,_e,Ze):_c(T?De:Be,_e,T?Ze:xe);E[y]=tt,R[y]=tt-_e}e.modifiersData[o]=R}}const $xn={name:"preventOverflow",enabled:!0,phase:"main",fn:Pxn,requiresIfExists:["offset"]};function Vxn(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Bxn(t){return t===Ci(t)||!qi(t)?vh(t):Vxn(t)}function Fxn(t){var e=t.getBoundingClientRect(),n=xl(e.width)/t.offsetWidth||1,o=xl(e.height)/t.offsetHeight||1;return n!==1||o!==1}function Uxn(t,e,n){n===void 0&&(n=!1);var o=qi(e),r=qi(e)&&Fxn(e),i=ra(e),s=Ll(t,r,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(o||!o&&!n)&&((as(e)!=="body"||bh(i))&&(a=Bxn(e)),qi(e)?(l=Ll(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):i&&(l.x=yh(i))),{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function qxn(t){var e=new Map,n=new Set,o=[];t.forEach(function(i){e.set(i.name,i)});function r(i){n.add(i.name);var s=[].concat(i.requires||[],i.requiresIfExists||[]);s.forEach(function(a){if(!n.has(a)){var l=e.get(a);l&&r(l)}}),o.push(i)}return t.forEach(function(i){n.has(i.name)||r(i)}),o}function Gxn(t){var e=qxn(t);return nxn.reduce(function(n,o){return n.concat(e.filter(function(r){return r.phase===o}))},[])}function jxn(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function zxn(t){var e=t.reduce(function(n,o){var r=n[o.name];return n[o.name]=r?Object.assign({},r,o,{options:Object.assign({},r.options,o.options),data:Object.assign({},r.data,o.data)}):o,n},{});return Object.keys(e).map(function(n){return e[n]})}var EO={placement:"bottom",modifiers:[],strategy:"absolute"};function SO(){for(var t=arguments.length,e=new Array(t),n=0;n{this.createPopper()})},closeMenu(t){var e;!this.$el.contains(t.target)&&!((e=this.$refs.dropdown)!=null&&e.contains(t.target))&&(this.isOpen=!1)},createPopper(){const t=this.$el.querySelector("button"),e=this.$refs.dropdown;t&&e&&(this.popperInstance=E5(t,e,{placement:"bottom-end",modifiers:[{name:"flip",options:{fallbackPlacements:["top-end","bottom-start","top-start"]}},{name:"preventOverflow",options:{boundary:document.body}}]}))}}},Zxn={class:"relative inline-block text-left"},Xxn={key:0,ref:"dropdown",class:"z-50 w-56 rounded-md shadow-lg bg-white dark:bg-gray-800 ring-1 ring-black ring-opacity-5 dark:ring-white dark:ring-opacity-20 focus:outline-none dropdown-shadow text-gray-700 dark:text-white"},Jxn={class:"py-1",role:"menu","aria-orientation":"vertical","aria-labelledby":"options-menu"};function eLn(t,e,n,o,r,i){const s=We("ToolbarButton");return N(),H("div",Zxn,[S("div",null,[ne(s,{onClick:oe(i.toggleMenu,["stop"]),title:n.title,icon:"code"},null,8,["onClick","title"])]),(N(),it(YP,{to:"body"},[r.isOpen?(N(),H("div",Xxn,[S("div",Jxn,[_n(t.$slots,"default",{},void 0,!0)])],512)):Z("",!0)]))])}const Ok=ze(Kxn,[["render",eLn],["__scopeId","data-v-6c3ea3a5"]]);async function xO(t,e="",n=[]){return new Promise((o,r)=>{const i=document.createElement("div");i.className="fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-50",n.length===0?i.innerHTML=`

${t}

@@ -232,12 +232,12 @@ Please report this to https://github.com/markedjs/marked.`,e){const r="

An err

- `,document.body.appendChild(i);const s=i.querySelector("#cancelButton"),a=i.querySelector("#okButton");s.addEventListener("click",()=>{document.body.removeChild(i),o(null)}),a.addEventListener("click",()=>{if(n.length===0){const c=i.querySelector("#replacementInput").value.trim();document.body.removeChild(i),o(c)}else{const c=i.querySelector("#options_selector").value.trim();document.body.removeChild(i),o(c)}})})}function eLn(t,e){console.log(t);let n={},o=/@<([^>]+)>@/g,r=[],i;for(;(i=o.exec(t))!==null;)r.push("@<"+i[1]+">@");console.log("matches"),console.log(r),r=[...new Set(r)];async function s(l){console.log(l);let c=l.toLowerCase().substring(2,l.length-2);if(c!=="generation_placeholder")if(c.includes(":")){Object.entries({all_language_options:"english:french:german:chinese:japanese:spanish:italian:russian:portuguese:swedish:danish:dutch:norwegian:slovak:czech:hungarian:polish:ukrainian:bulgarian:latvian:lithuanian:estonian:maltese:irish:galician:basque:welsh:breton:georgian:turkmen:kazakh:uzbek:tajik:afghan:sri-lankan:filipino:vietnamese:lao:cambodian:thai:burmese:kenyan:botswanan:zimbabwean:malawian:mozambican:angolan:namibian:south-african:madagascan:seychellois:mauritian:haitian:peruvian:ecuadorian:bolivian:paraguayan:chilean:argentinean:uruguayan:brazilian:colombian:venezuelan:puerto-rican:cuban:dominican:honduran:nicaraguan:salvadorean:guatemalan:el-salvadoran:belizean:panamanian:costa-rican:antiguan:barbudan:dominica's:grenada's:st-lucia's:st-vincent's:gibraltarian:faroe-islander:greenlandic:icelandic:jamaican:trinidadian:tobagonian:barbadian:anguillan:british-virgin-islander:us-virgin-islander:turkish:israeli:palestinian:lebanese:egyptian:libyan:tunisian:algerian:moroccan:bahraini:kuwaiti:saudi-arabian:yemeni:omani:irani:iraqi:afghanistan's:pakistani:indian:nepalese:sri-lankan:maldivan:burmese:thai:lao:vietnamese:kampuchean:malaysian:bruneian:indonesian:australian:new-zealanders:fijians:tongans:samoans:vanuatuans:wallisians:kiribatians:tuvaluans:solomon-islanders:marshallese:micronesians:hawaiians",all_programming_language_options:"python:c:c++:java:javascript:php:ruby:go:swift:kotlin:rust:haskell:erlang:lisp:scheme:prolog:cobol:fortran:pascal:delphi:d:eiffel:h:basic:visual_basic:smalltalk:objective-c:html5:node.js:vue.js:svelte:react:angular:ember:clipper:stex:arduino:brainfuck:r:assembly:mason:lepton:seacat:bbc_microbit:raspberry_pi_gpio:raspberry_pi_spi:raspberry_pi_i2c:raspberry_pi_uart:raspberry_pi_adc:raspberry_pi_ddio"}).forEach(([_,m])=>{console.log(`Key: ${_}, Value: ${m}`);function Q(y){return y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const v=Q(_),b=new RegExp(v,"g");c=c.replace(b,m)});let d=c.split(":"),f=d[0],T=d[1]||"",h=[];d.length>2&&(h=d.slice(1));let g=await xO(f,T,h);g!==null&&(n[l]=g)}else{let u=await xO(c);u!==null&&(n[l]=u)}}let a=Promise.resolve();r.forEach(l=>{a=a.then(()=>s(l)).then(c=>{console.log(c)})}),a.then(()=>{Object.entries(n).forEach(([l,c])=>{console.log(`Key: ${l}, Value: ${c}`);function u(T){return T.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const d=u(l),f=new RegExp(d,"g");t=t.replace(f,c)}),e(t)})}const tLn={name:"PlayGroundView",data(){return{posts_headers:{accept:"application/json","Content-Type":"application/json"},showSettings:!1,pending:!1,is_recording:!1,is_deaf_transcribing:!1,cpp_block:mk,html5_block:gk,LaTeX_block:_k,javascript_block:pk,json_block:hk,code_block:Tk,python_block:fk,bash_block:Qk,tokenize_icon:DSn,deaf_off:kSn,deaf_on:ISn,rec_off:PSn,rec_on:HSn,loading_icon:vk,isSynthesizingVoice:!1,audio_url:null,mdRenderHeight:300,selecting_model:!1,tab_id:"source",generating:!1,isSpeaking:!1,voices:[],isLesteningToVoice:!1,presets:[],selectedPreset:"",cursorPosition:0,namedTokens:[],text:"",pre_text:"",post_text:"",temperature:.1,top_k:50,top_p:.9,repeat_penalty:1.3,repeat_last_n:50,n_crop:-1,n_predicts:2e3,seed:-1,silenceTimeout:5e3}},components:{Toast:bp,MarkdownRenderer:Q5,ClipBoardTextInput:Th,TokensHilighter:xSn,ChatBarButton:fh,Card:ph,ToolbarButton:hh,DropdownMenu:Ok},mounted(){fe.get("./get_presets").then(t=>{console.log(t.data),this.presets=t.data,this.selectedPreset=this.presets[0]}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)}),Ye.on("text_chunk",t=>{this.appendToOutput(t.chunk)}),Ye.on("text_generated",t=>{this.generating=!1}),Ye.on("generation_error",t=>{console.log("generation_error:",t),this.$refs.toast.showToast(`Error: ${t}`,4,!1),this.generating=!1}),Ye.on("connect",()=>{console.log("Connected to LoLLMs server"),this.$store.state.isConnected=!0,this.generating=!1}),Ye.on("buzzy",t=>{console.error("Server is busy. Wait for your turn",t),this.$refs.toast.showToast(`Error: ${t.message}`,4,!1),this.generating=!1}),Ye.on("generation_canceled",t=>{this.generating=!1,console.log("Generation canceled OK")}),this.$nextTick(()=>{Le.replace()}),"speechSynthesis"in window?(this.speechSynthesis=window.speechSynthesis,this.voices=this.speechSynthesis.getVoices(),this.voices.length===0&&this.speechSynthesis.addEventListener("voiceschanged",this.onVoicesChanged)):console.error("Speech synthesis is not supported in this browser.")},created(){},watch:{audio_url(t){t&&(console.log("Audio changed url to :",t),this.$refs.audio_player.src=t)}},computed:{selectedModel:{get(){return this.$store.state.selectedModel}},models:{get(){return this.$store.state.modelsArr}},isTalking:{get(){return this.isSpeaking}}},methods:{triggerFileUpload(){this.$refs.fileInput.click()},handleFileUpload(t){this.file=this.$refs.fileInput.files[0],this.buttonText=this.file.name,this.uploadFile()},uploadFile(){console.log("sending file");const t=new FormData;t.append("file",this.file),fe.post("/upload_voice/",t,{headers:{"Content-Type":"multipart/form-data"}}).then(e=>{console.log(e),this.buttonText="Upload a voice"}).catch(e=>{console.error(e)})},addBlock(t){let e=this.$refs.mdTextarea.selectionStart,n=this.$refs.mdTextarea.selectionEnd;e==n?speechSynthesis==0||this.text[e-1]==` + `,document.body.appendChild(i);const s=i.querySelector("#cancelButton"),a=i.querySelector("#okButton");s.addEventListener("click",()=>{document.body.removeChild(i),o(null)}),a.addEventListener("click",()=>{if(n.length===0){const c=i.querySelector("#replacementInput").value.trim();document.body.removeChild(i),o(c)}else{const c=i.querySelector("#options_selector").value.trim();document.body.removeChild(i),o(c)}})})}function tLn(t,e){console.log(t);let n={},o=/@<([^>]+)>@/g,r=[],i;for(;(i=o.exec(t))!==null;)r.push("@<"+i[1]+">@");console.log("matches"),console.log(r),r=[...new Set(r)];async function s(l){console.log(l);let c=l.toLowerCase().substring(2,l.length-2);if(c!=="generation_placeholder")if(c.includes(":")){Object.entries({all_language_options:"english:french:german:chinese:japanese:spanish:italian:russian:portuguese:swedish:danish:dutch:norwegian:slovak:czech:hungarian:polish:ukrainian:bulgarian:latvian:lithuanian:estonian:maltese:irish:galician:basque:welsh:breton:georgian:turkmen:kazakh:uzbek:tajik:afghan:sri-lankan:filipino:vietnamese:lao:cambodian:thai:burmese:kenyan:botswanan:zimbabwean:malawian:mozambican:angolan:namibian:south-african:madagascan:seychellois:mauritian:haitian:peruvian:ecuadorian:bolivian:paraguayan:chilean:argentinean:uruguayan:brazilian:colombian:venezuelan:puerto-rican:cuban:dominican:honduran:nicaraguan:salvadorean:guatemalan:el-salvadoran:belizean:panamanian:costa-rican:antiguan:barbudan:dominica's:grenada's:st-lucia's:st-vincent's:gibraltarian:faroe-islander:greenlandic:icelandic:jamaican:trinidadian:tobagonian:barbadian:anguillan:british-virgin-islander:us-virgin-islander:turkish:israeli:palestinian:lebanese:egyptian:libyan:tunisian:algerian:moroccan:bahraini:kuwaiti:saudi-arabian:yemeni:omani:irani:iraqi:afghanistan's:pakistani:indian:nepalese:sri-lankan:maldivan:burmese:thai:lao:vietnamese:kampuchean:malaysian:bruneian:indonesian:australian:new-zealanders:fijians:tongans:samoans:vanuatuans:wallisians:kiribatians:tuvaluans:solomon-islanders:marshallese:micronesians:hawaiians",all_programming_language_options:"python:c:c++:java:javascript:php:ruby:go:swift:kotlin:rust:haskell:erlang:lisp:scheme:prolog:cobol:fortran:pascal:delphi:d:eiffel:h:basic:visual_basic:smalltalk:objective-c:html5:node.js:vue.js:svelte:react:angular:ember:clipper:stex:arduino:brainfuck:r:assembly:mason:lepton:seacat:bbc_microbit:raspberry_pi_gpio:raspberry_pi_spi:raspberry_pi_i2c:raspberry_pi_uart:raspberry_pi_adc:raspberry_pi_ddio"}).forEach(([_,m])=>{console.log(`Key: ${_}, Value: ${m}`);function Q(y){return y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const v=Q(_),b=new RegExp(v,"g");c=c.replace(b,m)});let d=c.split(":"),f=d[0],T=d[1]||"",h=[];d.length>2&&(h=d.slice(1));let g=await xO(f,T,h);g!==null&&(n[l]=g)}else{let u=await xO(c);u!==null&&(n[l]=u)}}let a=Promise.resolve();r.forEach(l=>{a=a.then(()=>s(l)).then(c=>{console.log(c)})}),a.then(()=>{Object.entries(n).forEach(([l,c])=>{console.log(`Key: ${l}, Value: ${c}`);function u(T){return T.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const d=u(l),f=new RegExp(d,"g");t=t.replace(f,c)}),e(t)})}const nLn={name:"PlayGroundView",data(){return{posts_headers:{accept:"application/json","Content-Type":"application/json"},showSettings:!1,pending:!1,is_recording:!1,is_deaf_transcribing:!1,cpp_block:mk,html5_block:gk,LaTeX_block:_k,javascript_block:pk,json_block:hk,code_block:Tk,python_block:fk,bash_block:Qk,tokenize_icon:ISn,deaf_off:HSn,deaf_on:kSn,rec_off:$Sn,rec_on:PSn,loading_icon:vk,isSynthesizingVoice:!1,audio_url:null,mdRenderHeight:300,selecting_model:!1,tab_id:"source",generating:!1,isSpeaking:!1,voices:[],isLesteningToVoice:!1,presets:[],selectedPreset:"",cursorPosition:0,namedTokens:[],text:"",pre_text:"",post_text:"",temperature:.1,top_k:50,top_p:.9,repeat_penalty:1.3,repeat_last_n:50,n_crop:-1,n_predicts:2e3,seed:-1,silenceTimeout:5e3}},components:{Toast:bp,MarkdownRenderer:Q5,ClipBoardTextInput:Th,TokensHilighter:LSn,ChatBarButton:fh,Card:ph,ToolbarButton:hh,DropdownMenu:Ok},mounted(){fe.get("./get_presets").then(t=>{console.log(t.data),this.presets=t.data,this.selectedPreset=this.presets[0]}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)}),Ye.on("text_chunk",t=>{this.appendToOutput(t.chunk)}),Ye.on("text_generated",t=>{this.generating=!1}),Ye.on("generation_error",t=>{console.log("generation_error:",t),this.$refs.toast.showToast(`Error: ${t}`,4,!1),this.generating=!1}),Ye.on("connect",()=>{console.log("Connected to LoLLMs server"),this.$store.state.isConnected=!0,this.generating=!1}),Ye.on("buzzy",t=>{console.error("Server is busy. Wait for your turn",t),this.$refs.toast.showToast(`Error: ${t.message}`,4,!1),this.generating=!1}),Ye.on("generation_canceled",t=>{this.generating=!1,console.log("Generation canceled OK")}),this.$nextTick(()=>{Le.replace()}),"speechSynthesis"in window?(this.speechSynthesis=window.speechSynthesis,this.voices=this.speechSynthesis.getVoices(),this.voices.length===0&&this.speechSynthesis.addEventListener("voiceschanged",this.onVoicesChanged)):console.error("Speech synthesis is not supported in this browser.")},created(){},watch:{audio_url(t){t&&(console.log("Audio changed url to :",t),this.$refs.audio_player.src=t)}},computed:{selectedModel:{get(){return this.$store.state.selectedModel}},models:{get(){return this.$store.state.modelsArr}},isTalking:{get(){return this.isSpeaking}}},methods:{triggerFileUpload(){this.$refs.fileInput.click()},handleFileUpload(t){this.file=this.$refs.fileInput.files[0],this.buttonText=this.file.name,this.uploadFile()},uploadFile(){console.log("sending file");const t=new FormData;t.append("file",this.file),fe.post("/upload_voice/",t,{headers:{"Content-Type":"multipart/form-data"}}).then(e=>{console.log(e),this.buttonText="Upload a voice"}).catch(e=>{console.error(e)})},addBlock(t){let e=this.$refs.mdTextarea.selectionStart,n=this.$refs.mdTextarea.selectionEnd;e==n?speechSynthesis==0||this.text[e-1]==` `?(this.text=this.text.slice(0,e)+"```"+t+"\n\n```\n"+this.text.slice(e),e=e+4+t.length):(this.text=this.text.slice(0,e)+"\n```"+t+"\n\n```\n"+this.text.slice(e),e=e+3+t.length):speechSynthesis==0||this.text[e-1]==` `?(this.text=this.text.slice(0,e)+"```"+t+` `+this.text.slice(e,n)+"\n```\n"+this.text.slice(n),e=e+4+t.length):(this.text=this.text.slice(0,e)+"\n```"+t+` `+this.text.slice(e,n)+"\n```\n"+this.text.slice(n),e=e+3+t.length),this.$refs.mdTextarea.focus(),this.$refs.mdTextarea.selectionStart=this.$refs.mdTextarea.selectionEnd=p},insertTab(t){const e=t.target,n=e.selectionStart,o=e.selectionEnd,r=e.value.substring(0,n),i=e.value.substring(o),s=r+" "+i;this.text=s,this.$nextTick(()=>{e.selectionStart=e.selectionEnd=n+4}),t.preventDefault()},mdTextarea_changed(){console.log("mdTextarea_changed"),this.cursorPosition=this.$refs.mdTextarea.selectionStart},mdTextarea_clicked(){console.log(`mdTextarea_clicked: ${this.$refs.mdTextarea.selectionStart}`),this.cursorPosition=this.$refs.mdTextarea.selectionStart},setModel(){this.selecting_model=!0,fe.post("/update_setting",{client_id:this.$store.state.client_id,setting_name:"model_name",setting_value:this.selectedModel}).then(t=>{console.log(t),t.status&&this.$refs.toast.showToast(`Model changed to ${this.selectedModel}`,4,!0),this.selecting_model=!1}).catch(t=>{this.$refs.toast.showToast(`Error ${t}`,4,!0),this.selecting_model=!1})},onVoicesChanged(){this.voices=this.speechSynthesis.getVoices()},read(){console.log("READING..."),this.isSynthesizingVoice=!0;let t=this.$refs.mdTextarea.selectionStart,e=this.$refs.mdTextarea.selectionEnd,n=this.text;t!=e&&(n=n.slice(t,e)),fe.post("./text2Wave",{client_id:this.$store.state.client_id,text:n}).then(o=>{console.log(o.data.url);let r=o.data.url;this.audio_url=r,this.isSynthesizingVoice=!1,be(()=>{Le.replace()})}).catch(o=>{this.$refs.toast.showToast(`Error: ${o}`,4,!1),this.isSynthesizingVoice=!1,be(()=>{Le.replace()})})},speak(){if(this.msg){this.speechSynthesis.cancel(),this.msg=null,this.isSpeaking=!1;return}let t=0;console.log("voice on"),this.isSpeaking=!0;const e=200;this.msg=new SpeechSynthesisUtterance,this.msg.pitch=this.$store.state.config.audio_pitch,this.voices.length>0&&(this.msg.voice=this.voices.filter(r=>r.name===this.$store.state.config.audio_out_voice)[0]);const n=r=>{let i=this.text.substring(r,r+e);const s=[".","!","?",` -`];let a=-1;return s.forEach(l=>{const c=i.lastIndexOf(l);c>a&&(a=c)}),a==-1&&(a=i.length),console.log(a),a+r+1},o=()=>{const r=n(t),i=this.text.substring(t,r);this.msg.text=i,t=r+1,this.msg.onend=s=>{t{o()},1):(this.isSpeaking=!1,console.log("voice off :",this.text.length," ",r))},this.speechSynthesis.speak(this.msg)};o()},getCursorPosition(){return this.$refs.mdTextarea.selectionStart},appendToOutput(t){this.pre_text+=t,this.text=this.pre_text+this.post_text},generate_in_placeholder(){console.log("Finding cursor position");let t=this.text.indexOf("@@");if(t<0){this.$refs.toast.showToast("No generation placeholder found",4,!1);return}this.text=this.text.substring(0,t)+this.text.substring(t+26,this.text.length),this.pre_text=this.text.substring(0,t),this.post_text=this.text.substring(t,this.text.length);var e=this.text.substring(0,t);console.log(e),Ye.emit("generate_text",{prompt:e,personality:-1,n_predicts:this.n_predicts,n_crop:this.n_crop,parameters:{temperature:this.temperature,top_k:this.top_k,top_p:this.top_p,repeat_penalty:this.repeat_penalty,repeat_last_n:this.repeat_last_n,seed:parseInt(this.seed)}}),this.generating=!0},async tokenize_text(){const t=await fe.post("/lollms_tokenize",{prompt:this.text,return_named:!0},{headers:this.posts_headers});console.log(t.data),this.namedTokens=t.data},generate(){console.log("Finding cursor position"),this.pre_text=this.text.substring(0,this.getCursorPosition()),this.post_text=this.text.substring(this.getCursorPosition(),this.text.length);var t=this.text.substring(0,this.getCursorPosition());console.log(this.text),console.log(`cursor position :${this.getCursorPosition()}`),console.log(`pretext:${this.pre_text}`),console.log(`post_text:${this.post_text}`),console.log(`prompt:${t}`),Ye.emit("generate_text",{prompt:t,personality:-1,n_predicts:this.n_predicts,n_crop:this.n_crop,parameters:{temperature:this.temperature,top_k:this.top_k,top_p:this.top_p,repeat_penalty:this.repeat_penalty,repeat_last_n:this.repeat_last_n,seed:parseInt(this.seed)}}),this.generating=!0},stopGeneration(){Ye.emit("cancel_text_generation",{})},exportText(){const t=this.text,e=document.createElement("a"),n=new Blob([t],{type:"text/plain"});e.href=URL.createObjectURL(n),e.download="exported_text.txt",document.body.appendChild(e),e.click(),document.body.removeChild(e)},importText(){const t=document.getElementById("import-input");t&&(t.addEventListener("change",e=>{if(e.target.files&&e.target.files[0]){const n=new FileReader;n.onload=()=>{this.text=n.result},n.readAsText(e.target.files[0])}else alert("Please select a file.")}),t.click())},setPreset(){console.log("Setting preset"),console.log(this.selectedPreset),this.tab_id="render",this.text=eLn(this.selectedPreset.content,t=>{console.log("Done"),console.log(t),this.text=t})},addPreset(){let t=prompt("Enter the title of the preset:");this.presets[t]={client_id:this.$store.state.client_id,name:t,content:this.text},fe.post("./add_preset",this.presets[t]).then(e=>{console.log(e.data)}).catch(e=>{this.$refs.toast.showToast(`Error: ${e}`,4,!1)})},removePreset(){this.selectedPreset&&delete this.presets[this.selectedPreset.name]},reloadPresets(){fe.get("./get_presets").then(t=>{console.log(t.data),this.presets=t.data,this.selectedPreset=this.presets[0]}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)})},startRecording(){this.pending=!0,this.is_recording?fe.post("/stop_recording",{client_id:this.$store.state.client_id}).then(t=>{this.is_recording=!1,this.pending=!1,console.log(t),this.text+=t.data,console.log("text"),console.log(this.text),console.log(t.data),this.presets=t.data,this.selectedPreset=this.presets[0]}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)}):fe.post("/start_recording",{client_id:this.$store.state.client_id}).then(t=>{this.is_recording=!0,this.pending=!1,console.log(t.data)}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)})},startRecordingAndTranscribing(){this.pending=!0,this.is_deaf_transcribing?fe.get("/stop_recording").then(t=>{this.is_deaf_transcribing=!1,this.pending=!1,this.text=t.data.text,this.read()}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)}):fe.get("/start_recording").then(t=>{this.is_deaf_transcribing=!0,this.pending=!1}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)})},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.isLesteningToVoice=!0,this.silenceTimer=setTimeout(()=>{this.recognition.stop()},this.silenceTimeout)},this.pre_text=this.text.substring(0,this.getCursorPosition()),this.post_text=this.text.substring(this.getCursorPosition(),this.text.length),this.recognition.onresult=t=>{this.generated="";for(let e=t.resultIndex;e{this.recognition.stop()},this.silenceTimeout)},this.recognition.onerror=t=>{console.error("Speech recognition error:",t.error),this.isLesteningToVoice=!1,clearTimeout(this.silenceTimer)},this.recognition.onend=()=>{console.log("Speech recognition ended."),this.isLesteningToVoice=!1,this.pre_text=this.pre_text+this.generated,this.cursorPosition=this.pre_text.length,clearTimeout(this.silenceTimer)},this.recognition.start()):console.error("Speech recognition is not supported in this browser.")}}},nLn={class:"container w-full background-color shadow-lg 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"},rLn={class:"container flex flex-row m-2 w-full"},iLn={class:"flex-grow w-full m-2"},oLn={class:"flex panels-color gap-3 flex-1 items-center flex-grow flex-row rounded-md border-2 border-blue-300 m-2 p-4"},sLn={class:"flex items-center space-x-2"},aLn=["src"],lLn=["src"],cLn=["src"],uLn=["src"],dLn=["src"],TLn={key:1,class:"w-6 h-6"},fLn={class:"flex gap-3 flex-1 items-center flex-grow justify-end"},pLn={key:0},hLn=["src"],mLn={key:2},gLn={key:0,class:"settings scrollbar bg-white dark:bg-gray-800 rounded-lg shadow-md p-6"},_Ln=["value"],QLn={key:0,title:"Selecting model",class:"flex flex-row flex-grow justify-end"},vLn=["value"],yLn={class:"slider-container ml-2 mr-2"},bLn={class:"slider-value text-gray-500"},ELn={class:"slider-container ml-2 mr-2"},SLn={class:"slider-value text-gray-500"},xLn={class:"slider-container ml-2 mr-2"},LLn={class:"slider-value text-gray-500"},CLn={class:"slider-container ml-2 mr-2"},ALn={class:"slider-value text-gray-500"},wLn={class:"slider-container ml-2 mr-2"},OLn={class:"slider-value text-gray-500"},MLn={class:"slider-container ml-2 mr-2"},RLn={class:"slider-value text-gray-500"},NLn={class:"slider-container ml-2 mr-2"},DLn={class:"slider-value text-gray-500"},ILn={class:"slider-container ml-2 mr-2"},kLn={class:"slider-value text-gray-500"};function HLn(t,e,n,o,r,i){const s=We("ChatBarButton"),a=We("ToolbarButton"),l=We("DropdownSubmenu"),c=We("DropdownMenu"),u=We("tokens-hilighter"),d=We("MarkdownRenderer"),f=We("Card"),T=We("Toast");return N(),H(Ae,null,[S("div",nLn,[S("div",rLn,[S("div",iLn,[S("div",oLn,[S("div",sLn,[Ce(ne(s,{onClick:i.generate,title:"Generate from the current cursor position"},{icon:je(()=>e[54]||(e[54]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})],-1)])),_:1},8,["onClick"]),[[wn,!r.generating]]),Ce(ne(s,{onClick:i.generate_in_placeholder,title:"Generate from the next placeholder"},{icon:je(()=>e[55]||(e[55]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"})],-1)])),_:1},8,["onClick"]),[[wn,!r.generating]]),Ce(ne(s,{onClick:i.tokenize_text,title:"Tokenize the text"},{icon:je(()=>[S("img",{src:r.tokenize_icon,alt:"Tokenize",class:"h-5 w-5"},null,8,aLn)]),_:1},8,["onClick"]),[[wn,!r.generating]]),e[65]||(e[65]=S("span",{class:"w-80"},null,-1)),Ce(ne(s,{onClick:i.stopGeneration,title:"Stop generation"},{icon:je(()=>e[56]||(e[56]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])),_:1},8,["onClick"]),[[wn,r.generating]]),ne(s,{onClick:i.startSpeechRecognition,class:Ee({"text-red-500":t.isListeningToVoice}),title:"Dictate (using your browser's transcription)"},{icon:je(()=>e[57]||(e[57]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})],-1)])),_:1},8,["onClick","class"]),ne(s,{onClick:i.speak,class:Ee({"text-red-500":i.isTalking}),title:"Convert text to audio (not saved, uses your browser's TTS service)"},{icon:je(()=>e[58]||(e[58]=[Oe(" 🪶 ")])),_:1},8,["onClick","class"]),ne(s,{onClick:i.triggerFileUpload,title:"Upload a voice"},{icon:je(()=>e[59]||(e[59]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})],-1)])),_:1},8,["onClick"]),ne(s,{onClick:i.startRecordingAndTranscribing,class:Ee({"text-green-500":r.isLesteningToVoice}),title:"Start audio to audio"},{icon:je(()=>[r.pending?(N(),H("img",{key:1,src:r.loading_icon,alt:"Loading",class:"h-5 w-5"},null,8,cLn)):(N(),H("img",{key:0,src:r.is_deaf_transcribing?r.deaf_on:r.deaf_off,alt:"Deaf",class:"h-5 w-5"},null,8,lLn))]),_:1},8,["onClick","class"]),ne(s,{onClick:i.startRecording,class:Ee({"text-green-500":r.isLesteningToVoice}),title:"Start audio recording"},{icon:je(()=>[r.pending?(N(),H("img",{key:1,src:r.loading_icon,alt:"Loading",class:"h-5 w-5"},null,8,dLn)):(N(),H("img",{key:0,src:r.is_recording?r.rec_on:r.rec_off,alt:"Record",class:"h-5 w-5"},null,8,uLn))]),_:1},8,["onClick","class"]),r.isSynthesizingVoice?(N(),H("div",TLn,e[61]||(e[61]=[S("svg",{class:"animate-spin h-5 w-5 text-secondary",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[S("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),S("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)]))):(N(),it(s,{key:0,onClick:i.read,title:"Generate audio from text"},{icon:je(()=>e[60]||(e[60]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})],-1)])),_:1},8,["onClick"])),Ce(ne(s,{onClick:i.exportText,title:"Export text"},{icon:je(()=>e[62]||(e[62]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"})],-1)])),_:1},8,["onClick"]),[[wn,!r.generating]]),Ce(ne(s,{onClick:i.importText,title:"Import text"},{icon:je(()=>e[63]||(e[63]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)])),_:1},8,["onClick"]),[[wn,!r.generating]]),ne(s,{onClick:e[0]||(e[0]=h=>r.showSettings=!r.showSettings),title:"Settings"},{icon:je(()=>e[64]||(e[64]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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"}),S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])),_:1})]),S("input",{type:"file",ref:"fileInput",onChange:e[1]||(e[1]=(...h)=>i.handleFileUpload&&i.handleFileUpload(...h)),style:{display:"none"},accept:".wav"},null,544),S("div",fLn,[S("button",{class:Ee(["border-2 text-blue-600 dark:text-white border-blue-300 p-2 rounded shadow-lg hover:border-gray-600 dark:link-item-dark cursor-pointer",{"bg-blue-200 dark:bg-blue-500":r.tab_id=="source"}]),onClick:e[2]||(e[2]=h=>r.tab_id="source")}," Source ",2),S("button",{class:Ee(["border-2 text-blue-600 dark:text-white border-blue-300 p-2 rounded shadow-lg hover:border-gray-600 dark:link-item-dark cursor-pointer",{"bg-blue-200 dark:bg-blue-500":r.tab_id=="render"}]),onClick:e[3]||(e[3]=h=>r.tab_id="render")}," Render ",2)]),e[66]||(e[66]=S("input",{type:"file",id:"import-input",class:"hidden"},null,-1))]),S("div",{class:Ee(["flex-grow m-2 p-2 border panels-color border-blue-300 rounded-md",{"border-red-500":r.generating}])},[r.tab_id==="source"?(N(),H("div",pLn,[ne(c,{title:"Add Block"},{default:je(()=>[ne(l,{title:"Programming Languages",icon:"code"},{default:je(()=>[ne(a,{onClick:e[4]||(e[4]=oe(h=>i.addBlock("python"),["stop"])),title:"Python",icon:"python"}),ne(a,{onClick:e[5]||(e[5]=oe(h=>i.addBlock("javascript"),["stop"])),title:"JavaScript",icon:"js"}),ne(a,{onClick:e[6]||(e[6]=oe(h=>i.addBlock("typescript"),["stop"])),title:"TypeScript",icon:"typescript"}),ne(a,{onClick:e[7]||(e[7]=oe(h=>i.addBlock("java"),["stop"])),title:"Java",icon:"java"}),ne(a,{onClick:e[8]||(e[8]=oe(h=>i.addBlock("c++"),["stop"])),title:"C++",icon:"cplusplus"}),ne(a,{onClick:e[9]||(e[9]=oe(h=>i.addBlock("csharp"),["stop"])),title:"C#",icon:"csharp"}),ne(a,{onClick:e[10]||(e[10]=oe(h=>i.addBlock("go"),["stop"])),title:"Go",icon:"go"}),ne(a,{onClick:e[11]||(e[11]=oe(h=>i.addBlock("rust"),["stop"])),title:"Rust",icon:"rust"}),ne(a,{onClick:e[12]||(e[12]=oe(h=>i.addBlock("swift"),["stop"])),title:"Swift",icon:"swift"}),ne(a,{onClick:e[13]||(e[13]=oe(h=>i.addBlock("kotlin"),["stop"])),title:"Kotlin",icon:"kotlin"}),ne(a,{onClick:e[14]||(e[14]=oe(h=>i.addBlock("r"),["stop"])),title:"R",icon:"r-project"})]),_:1}),ne(l,{title:"Web Technologies",icon:"web"},{default:je(()=>[ne(a,{onClick:e[15]||(e[15]=oe(h=>i.addBlock("html"),["stop"])),title:"HTML",icon:"html5"}),ne(a,{onClick:e[16]||(e[16]=oe(h=>i.addBlock("css"),["stop"])),title:"CSS",icon:"css3"}),ne(a,{onClick:e[17]||(e[17]=oe(h=>i.addBlock("vue"),["stop"])),title:"Vue.js",icon:"vuejs"}),ne(a,{onClick:e[18]||(e[18]=oe(h=>i.addBlock("react"),["stop"])),title:"React",icon:"react"}),ne(a,{onClick:e[19]||(e[19]=oe(h=>i.addBlock("angular"),["stop"])),title:"Angular",icon:"angular"})]),_:1}),ne(l,{title:"Markup and Data",icon:"file-code"},{default:je(()=>[ne(a,{onClick:e[20]||(e[20]=oe(h=>i.addBlock("xml"),["stop"])),title:"XML",icon:"xml"}),ne(a,{onClick:e[21]||(e[21]=oe(h=>i.addBlock("json"),["stop"])),title:"JSON",icon:"json"}),ne(a,{onClick:e[22]||(e[22]=oe(h=>i.addBlock("yaml"),["stop"])),title:"YAML",icon:"yaml"}),ne(a,{onClick:e[23]||(e[23]=oe(h=>i.addBlock("markdown"),["stop"])),title:"Markdown",icon:"markdown"}),ne(a,{onClick:e[24]||(e[24]=oe(h=>i.addBlock("latex"),["stop"])),title:"LaTeX",icon:"latex"})]),_:1}),ne(l,{title:"Scripting and Shell",icon:"terminal"},{default:je(()=>[ne(a,{onClick:e[25]||(e[25]=oe(h=>i.addBlock("bash"),["stop"])),title:"Bash",icon:"bash"}),ne(a,{onClick:e[26]||(e[26]=oe(h=>i.addBlock("powershell"),["stop"])),title:"PowerShell",icon:"powershell"}),ne(a,{onClick:e[27]||(e[27]=oe(h=>i.addBlock("perl"),["stop"])),title:"Perl",icon:"perl"})]),_:1}),ne(l,{title:"Diagramming",icon:"sitemap"},{default:je(()=>[ne(a,{onClick:e[28]||(e[28]=oe(h=>i.addBlock("mermaid"),["stop"])),title:"Mermaid",icon:"mermaid"}),ne(a,{onClick:e[29]||(e[29]=oe(h=>i.addBlock("graphviz"),["stop"])),title:"Graphviz",icon:"graphviz"}),ne(a,{onClick:e[30]||(e[30]=oe(h=>i.addBlock("plantuml"),["stop"])),title:"PlantUML",icon:"plantuml"})]),_:1}),ne(l,{title:"Database",icon:"database"},{default:je(()=>[ne(a,{onClick:e[31]||(e[31]=oe(h=>i.addBlock("sql"),["stop"])),title:"SQL",icon:"sql"}),ne(a,{onClick:e[32]||(e[32]=oe(h=>i.addBlock("mongodb"),["stop"])),title:"MongoDB",icon:"mongodb"})]),_:1}),ne(a,{onClick:e[33]||(e[33]=oe(h=>i.addBlock(""),["stop"])),title:"Generic Block",icon:"code"})]),_:1}),ne(a,{onClick:e[34]||(e[34]=oe(h=>t.copyContentToClipboard(),["stop"])),title:"Copy message to clipboard",icon:"copy"}),Ce(S("textarea",{ref:"mdTextarea",onKeydown:e[35]||(e[35]=Qn(oe((...h)=>i.insertTab&&i.insertTab(...h),["prevent"]),["tab"])),class:"block min-h-500 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,style:Jt({minHeight:r.mdRenderHeight+"px"}),placeholder:"Enter message here...","onUpdate:modelValue":e[36]||(e[36]=h=>r.text=h),onClick:e[37]||(e[37]=oe((...h)=>i.mdTextarea_clicked&&i.mdTextarea_clicked(...h),["prevent"])),onChange:e[38]||(e[38]=oe((...h)=>i.mdTextarea_changed&&i.mdTextarea_changed(...h),["prevent"]))}," ",36),[[Je,r.text]]),S("span",null,"Cursor position "+J(r.cursorPosition),1)])):Z("",!0),r.audio_url!=null?(N(),H("audio",{controls:"",key:r.audio_url},[S("source",{src:r.audio_url,type:"audio/wav",ref:"audio_player"},null,8,hLn),e[67]||(e[67]=Oe(" Your browser does not support the audio element. "))])):Z("",!0),ne(u,{namedTokens:r.namedTokens},null,8,["namedTokens"]),r.tab_id==="render"?(N(),H("div",mLn,[ne(d,{ref:"mdRender",client_id:this.$store.state.client_id,message_id:0,discussion_id:0,"markdown-text":r.text,class:"mt-4 p-2 rounded shadow-lg dark:bg-bg-dark"},null,8,["client_id","markdown-text"])])):Z("",!0)],2)]),r.showSettings?(N(),H("div",gLn,[e[82]||(e[82]=S("h2",{class:"text-2xl font-bold text-gray-900 dark:text-white mb-4"},"Settings",-1)),ne(f,{title:"Model",class:"slider-container ml-0 mr-0",isHorizontal:!1,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[Ce(S("select",{"onUpdate:modelValue":e[39]||(e[39]=h=>this.$store.state.selectedModel=h),onChange:e[40]||(e[40]=(...h)=>i.setModel&&i.setModel(...h)),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},[(N(!0),H(Ae,null,Ue(i.models,h=>(N(),H("option",{key:h,value:h},J(h),9,_Ln))),128))],544),[[Ir,this.$store.state.selectedModel]]),r.selecting_model?(N(),H("div",QLn,e[68]||(e[68]=[S("div",{role:"status"},[S("svg",{"aria-hidden":"true",class:"w-6 h-6 animate-spin fill-secondary",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})]),S("span",{class:"sr-only"},"Selecting model...")],-1)]))):Z("",!0)]),_:1}),ne(f,{title:"Presets",class:"slider-container ml-0 mr-0",is_subcard:!0,isHorizontal:!1,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[Ce(S("select",{"onUpdate:modelValue":e[41]||(e[41]=h=>r.selectedPreset=h),class:"bg-white dark:bg-black mb-2 border-2 rounded-md shadow-sm w-full"},[(N(!0),H(Ae,null,Ue(r.presets,h=>(N(),H("option",{key:h,value:h},J(h.name),9,vLn))),128))],512),[[Ir,r.selectedPreset]]),e[73]||(e[73]=S("br",null,null,-1)),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[42]||(e[42]=(...h)=>i.setPreset&&i.setPreset(...h)),title:"Use preset"},e[69]||(e[69]=[S("i",{"data-feather":"check"},null,-1)])),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[43]||(e[43]=(...h)=>i.addPreset&&i.addPreset(...h)),title:"Add this text as a preset"},e[70]||(e[70]=[S("i",{"data-feather":"plus"},null,-1)])),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[44]||(e[44]=(...h)=>i.removePreset&&i.removePreset(...h)),title:"Remove preset"},e[71]||(e[71]=[S("i",{"data-feather":"x"},null,-1)])),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[45]||(e[45]=(...h)=>i.reloadPresets&&i.reloadPresets(...h)),title:"Reload presets list"},e[72]||(e[72]=[S("i",{"data-feather":"refresh-ccw"},null,-1)]))]),_:1}),ne(f,{title:"Generation params",class:"slider-container ml-0 mr-0",is_subcard:!0,isHorizontal:!1,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[S("div",yLn,[e[74]||(e[74]=S("h3",{class:"text-gray-600"},"Temperature",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[46]||(e[46]=h=>r.temperature=h),min:"0",max:"5",step:"0.1",class:"w-full"},null,512),[[Je,r.temperature]]),S("span",bLn,"Current value: "+J(r.temperature),1)]),S("div",ELn,[e[75]||(e[75]=S("h3",{class:"text-gray-600"},"Top K",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[47]||(e[47]=h=>r.top_k=h),min:"1",max:"100",step:"1",class:"w-full"},null,512),[[Je,r.top_k]]),S("span",SLn,"Current value: "+J(r.top_k),1)]),S("div",xLn,[e[76]||(e[76]=S("h3",{class:"text-gray-600"},"Top P",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[48]||(e[48]=h=>r.top_p=h),min:"0",max:"1",step:"0.1",class:"w-full"},null,512),[[Je,r.top_p]]),S("span",LLn,"Current value: "+J(r.top_p),1)]),S("div",CLn,[e[77]||(e[77]=S("h3",{class:"text-gray-600"},"Repeat Penalty",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[49]||(e[49]=h=>r.repeat_penalty=h),min:"0",max:"5",step:"0.1",class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.repeat_penalty]]),S("span",ALn,"Current value: "+J(r.repeat_penalty),1)]),S("div",wLn,[e[78]||(e[78]=S("h3",{class:"text-gray-600"},"Repeat Last N",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[50]||(e[50]=h=>r.repeat_last_n=h),min:"0",max:"100",step:"1",class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.repeat_last_n]]),S("span",OLn,"Current value: "+J(r.repeat_last_n),1)]),S("div",MLn,[e[79]||(e[79]=S("h3",{class:"text-gray-600"},"Number of tokens to crop the text to",-1)),Ce(S("input",{type:"number","onUpdate:modelValue":e[51]||(e[51]=h=>r.n_crop=h),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.n_crop]]),S("span",RLn,"Current value: "+J(r.n_crop),1)]),S("div",NLn,[e[80]||(e[80]=S("h3",{class:"text-gray-600"},"Number of tokens to generate",-1)),Ce(S("input",{type:"number","onUpdate:modelValue":e[52]||(e[52]=h=>r.n_predicts=h),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.n_predicts]]),S("span",DLn,"Current value: "+J(r.n_predicts),1)]),S("div",ILn,[e[81]||(e[81]=S("h3",{class:"text-gray-600"},"Seed",-1)),Ce(S("input",{type:"number","onUpdate:modelValue":e[53]||(e[53]=h=>r.seed=h),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.seed]]),S("span",kLn,"Current value: "+J(r.seed),1)])]),_:1})])):Z("",!0)])]),ne(T,{ref:"toast"},null,512)],64)}const PLn=ze(tLn,[["render",HLn],["__scopeId","data-v-721d5f23"]]),$Ln={data(){return{activeExtension:null}},computed:{activeExtensions(){return console.log(this.$store.state.extensionsZoo),console.log(bH(this.$store.state.extensionsZoo)),this.$store.state.extensionsZoo}},methods:{showExtensionPage(t){this.activeExtension=t}}},VLn={class:"container overflow-y-scroll flex flex-col shadow-lg p-10 pt-0 overflow-y-scroll w-full 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"},BLn={key:0},FLn=["onClick"],ULn={key:0},qLn=["src"],GLn={key:1};function jLn(t,e,n,o,r,i){return N(),H("div",VLn,[i.activeExtensions.length>0?(N(),H("div",BLn,[(N(!0),H(Ae,null,Ue(i.activeExtensions,s=>(N(),H("div",{key:s.name,onClick:a=>i.showExtensionPage(s)},[S("div",{class:Ee({"active-tab":s===r.activeExtension})},J(s.name),3)],8,FLn))),128)),r.activeExtension?(N(),H("div",ULn,[S("iframe",{src:r.activeExtension.page,width:"100%",height:"500px",frameborder:"0"},null,8,qLn)])):Z("",!0)])):(N(),H("div",GLn,e[0]||(e[0]=[S("p",null,"No extension is active. Please install and activate an extension.",-1)])))])}const zLn=ze($Ln,[["render",jLn],["__scopeId","data-v-dd0910af"]]),YLn={name:"HelpView",data(){return{helpSections:[],selectedSection:0}},computed:{selectedContent(){var e;return((e=this.helpSections[this.selectedSection])==null?void 0:e.content)||'

Select a topic from the sidebar to view help content.

'}},methods:{selectSection(t){this.selectedSection=t,be(()=>{Le.replace(),this.$el.querySelectorAll(".help-content pre code.hljs").forEach(e=>{})})},async loadMarkdownFile(t){try{const e=await fetch(`/help/${t}`);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=await e.text();return Et.setOptions({highlight:function(o,r){if(typeof hljs<"u"&&hljs.getLanguage(r))try{return`
${hljs.highlight(o,{language:r,ignoreIllegals:!0}).value}
`}catch{}return`
${o}
`},langPrefix:"hljs language-",pedantic:!1,gfm:!0,breaks:!1,sanitize:!1,smartLists:!0,smartypants:!1,xhtml:!1}),Et(n)}catch(e){return console.error("Error loading markdown file:",t,e),`

Error loading help content for ${t}. Please check the file exists in the public/help folder.

`}},async loadHelpSections(){const t=[{title:"About LoLLMs",file:"lollms-context.md"},{title:"Getting Started",file:"getting-started.md"},{title:"Uploading Files",file:"uploading-files.md"},{title:"Sending Images",file:"sending-images.md"},{title:"Using Code Interpreter",file:"code-interpreter.md"},{title:"Internet Search",file:"internet-search.md"},{title:"Text Generation",file:"text-generation.md"},{title:"Image Generation",file:"image-generation.md"},{title:"Music Generation",file:"music-generation.md"},{title:"Managing Personalities",file:"managing-personalities.md"},{title:"Troubleshooting",file:"troubleshooting.md"}],e=[];for(const n of t){const o=await this.loadMarkdownFile(n.file);e.push({title:n.title,content:o})}this.helpSections=e,this.helpSections.length>0&&this.selectSection(0)}},mounted(){this.loadHelpSections().then(()=>{be(()=>{Le.replace()})})},updated(){be(()=>{Le.replace()})}},WLn={class:"help-view background-color min-h-screen min-w-screen flex overflow-hidden"},KLn={class:"help-left-bar w-72 panels-color shadow-lg fixed h-screen overflow-y-auto scrollbar transition-all duration-300 ease-in-out md:w-80 z-10"},ZLn={class:"p-4 sm:p-6"},XLn={class:"space-y-2"},JLn=["onClick"],eCn={class:"main-content ml-72 md:ml-80 flex-1 overflow-y-auto h-screen scrollbar"},tCn={class:"p-6 sm:p-10 flex justify-center items-start"},nCn={class:"card w-full max-w-5xl mx-auto flex flex-col min-h-[calc(100vh-5rem)]"},rCn=["innerHTML"];function iCn(t,e,n,o,r,i){return N(),H("div",WLn,[S("div",KLn,[S("div",ZLn,[e[0]||(e[0]=S("h2",{class:"text-2xl font-semibold text-blue-700 dark:text-blue-200 mb-6 border-b border-blue-300 dark:border-blue-600 pb-2 flex items-center"},[S("i",{"data-feather":"folder",class:"w-5 h-5 mr-3 flex-shrink-0"}),S("span",null,"Help Topics")],-1)),S("ul",XLn,[(N(!0),H(Ae,null,Ue(r.helpSections,(s,a)=>(N(),H("li",{key:a},[S("a",{onClick:oe(l=>i.selectSection(a),["prevent"]),class:Ee(["nav-button","block w-full text-left","transition-all duration-200 ease-in-out",{"nav-button-active":r.selectedSection===a}]),href:"#",role:"button"},J(s.title),11,JLn)]))),128))])])]),S("div",eCn,[S("div",tCn,[S("div",nCn,[e[1]||(e[1]=S("h1",{class:"text-3xl md:text-4xl font-bold text-blue-800 dark:text-blue-100 mb-6 border-b border-blue-300 dark:border-blue-600 pb-3 flex items-center"},[S("i",{"data-feather":"help-circle",class:"w-7 h-7 mr-3 flex-shrink-0"}),S("span",null,"LoLLMs Help Center")],-1)),S("div",{class:"help-content flex-1 prose-blue max-w-none transition-opacity duration-300",innerHTML:i.selectedContent},null,8,rCn)])])])])}const oCn=ze(YLn,[["render",iCn]]),sCn={class:"p-4"},aCn={class:"list-none p-0 m-0"},lCn=["onClick"],cCn=["data-feather"],uCn={__name:"SettingsSidebar",props:{sections:{type:Array,required:!0},activeSection:{type:String,required:!0}},emits:["update:activeSection"],setup(t){return hr(()=>{be(()=>{Le.replace()})}),(e,n)=>(N(),H("nav",sCn,[n[0]||(n[0]=S("h2",{class:"text-lg font-semibold mb-4 px-2 theme-text-primary"},"Settings",-1)),S("ul",aCn,[(N(!0),H(Ae,null,Ue(t.sections,o=>(N(),H("li",{key:o.id,class:"mb-1"},[S("button",{onClick:r=>e.$emit("update:activeSection",o.id),class:Ee(["w-full flex items-center px-3 py-2 rounded-md text-sm font-medium transition-colors duration-150 focus:outline-none focus:ring-2 focus:ring-opacity-50",t.activeSection===o.id?"theme-bg-accent theme-text-accent-contrast shadow-sm":"theme-text-secondary hover:theme-bg-hover hover:theme-text-primary focus:theme-ring-accent"])},[S("i",{"data-feather":o.icon,class:"w-5 h-5 mr-3 flex-shrink-0"},null,8,cCn),S("span",null,J(o.name),1)],10,lCn)]))),128))])]))}},dCn=ze(uCn,[["__scopeId","data-v-6c0e2273"]]);function E2(t,e=!0,n=1){const o=e?1e3:1024;if(Math.abs(t)=o&&it+e.total_vram,0)},totalVramUsed(){return!this.vramUsage||!this.vramUsage.gpus?0:this.vramUsage.gpus.reduce((t,e)=>t+e.used_vram,0)},avgVramPercentage(){return!this.vramUsage||!this.vramUsage.gpus||this.vramUsage.gpus.length===0?"0.00":(this.vramUsage.gpus.reduce((e,n)=>e+n.percentage,0)/this.vramUsage.gpus.length).toFixed(2)}},methods:{async api_get_req(t){try{return(await fe.get(`/${t}`)).data}catch(e){return console.error(`API GET Error (${t}):`,e.message),null}},async api_post_req(t,e={}){try{const n={...e,client_id:this.$store.state.client_id};return(await fe.post(`/${t}`,n,{headers:hCn})).data}catch(n){return console.error(`API POST Error (${t}):`,n.message),{status:!1,error:n.message}}},computedFileSize(t){if(t==null||isNaN(t))return"N/A";try{return E2(t)}catch(e){return console.warn("Filesize calculation error:",e),"Error"}},async refreshHardwareUsage(){console.log("Refreshing hardware usage...");const[t,e,n]=await Promise.all([this.api_get_req("disk_usage"),this.api_get_req("ram_usage"),this.api_get_req("vram_usage")]);this.diskUsage=t,this.ramUsage=e,this.vramUsage=n,this.$nextTick(()=>{Le.replace()})},async handleFolderClick(t){if(!this.clientId){console.error("Client ID not available for handleFolderClick");return}const e={folder:t};try{const n=await this.api_post_req("open_personal_folder",e);n.status?(console.log(`Successfully opened folder: ${t}`),console.info(`Opened ${t.replace("-"," ")} folder`)):(console.error(`Failed to open folder: ${t}`,n.error),console.error(`Failed to open folder: ${n.error||"Unknown error"}`))}catch(n){console.error("Error calling open_personal_folder endpoint:",n),console.error(`Error opening folder: ${n.message}`)}},initializeClientId(){const t=localStorage.getItem("lollms_client_id");t?this.clientId=t:(this.clientId=`client_${Date.now()}_${Math.random().toString(16).substring(2,8)}`,localStorage.setItem("lollms_client_id",this.clientId),console.warn("Generated temporary client ID:",this.clientId))}},mounted(){this.initializeClientId(),this.refreshHardwareUsage(),this.refreshTimer=setInterval(this.refreshHardwareUsage,fCn),this.$nextTick(()=>{Le.replace()})},updated(){this.$nextTick(()=>{Le.replace()})},unmounted(){this.refreshTimer&&clearInterval(this.refreshTimer)}},gCn={class:"user-settings-panel"},_Cn={class:"flex justify-between items-center border-b border-blue-300 dark:border-blue-600 pb-2 mb-4"},QCn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 text-sm"},vCn={key:0,class:"flex items-center space-x-2 p-3 panels-color rounded-md shadow"},yCn=["src"],bCn={key:0,class:"flex-1"},ECn={class:"text-blue-600 dark:text-blue-300"},SCn={key:1,class:"flex-1"},xCn={class:"font-medium text-blue-800 dark:text-blue-100"},LCn={class:"text-xs text-blue-500 dark:text-blue-400"},CCn={key:1,class:"flex items-center space-x-2 p-3 panels-color rounded-md text-blue-500 dark:text-blue-400 shadow"},ACn={key:2,class:"flex items-center space-x-2 p-3 panels-color rounded-md shadow"},wCn={class:"flex-1"},OCn={class:"text-blue-600 dark:text-blue-300"},MCn={key:3,class:"flex items-center space-x-2 p-3 panels-color rounded-md text-blue-500 dark:text-blue-400 shadow"},RCn={key:4,class:"flex items-center space-x-2 p-3 panels-color rounded-md shadow"},NCn={class:"flex-1"},DCn={class:"text-blue-600 dark:text-blue-300"},ICn={key:5,class:"flex items-center space-x-2 p-3 panels-color rounded-md text-blue-500 dark:text-blue-400 shadow"},kCn={class:"space-y-4"},HCn={key:0,class:"p-4 border border-blue-300 dark:border-blue-600 rounded-md chatbox-color"},PCn={class:"text-xs space-y-1 mb-2 text-blue-600 dark:text-blue-300"},$Cn={class:"animated-progressbar-bg h-2.5"},VCn={key:1,class:"p-4 border border-blue-300 dark:border-blue-600 rounded-md chatbox-color"},BCn={class:"text-xs space-y-1 mb-2 text-blue-600 dark:text-blue-300"},FCn={class:"animated-progressbar-bg h-2.5"},UCn={key:2},qCn={class:"label flex items-center gap-1 mb-2"},GCn=["src"],jCn={class:"text-xs space-y-1 mb-2 text-blue-600 dark:text-blue-300"},zCn={class:"animated-progressbar-bg h-2.5"},YCn={key:3,class:"p-4 border border-dashed border-blue-300 dark:border-blue-600 rounded-md text-center text-blue-500 dark:text-blue-400 chatbox-color"},WCn={class:"pt-4 border-t border-blue-300 dark:border-blue-600"},KCn={class:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4"};function ZCn(t,e,n,o,r,i){return N(),H("div",gCn,[S("div",_Cn,[e[7]||(e[7]=S("h2",{class:"h2"}," System Status ",-1)),S("button",{onClick:e[0]||(e[0]=(...s)=>i.refreshHardwareUsage&&i.refreshHardwareUsage(...s)),title:"Refresh Status",class:"svg-button"},e[6]||(e[6]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4"},null,-1)]))]),S("div",QCn,[r.vramUsage&&r.vramUsage.gpus&&r.vramUsage.gpus.length>0?(N(),H("div",vCn,[S("img",{src:r.SVGGPU,width:"25",height:"25",class:"flex-shrink-0",alt:"GPU Icon"},null,8,yCn),r.vramUsage.gpus.length===1?(N(),H("div",bCn,[e[8]||(e[8]=S("div",{class:"font-medium text-blue-800 dark:text-blue-100"},"GPU VRAM",-1)),S("div",ECn,J(i.computedFileSize(r.vramUsage.gpus[0].used_vram))+" / "+J(i.computedFileSize(r.vramUsage.gpus[0].total_vram))+" ("+J(r.vramUsage.gpus[0].percentage)+"%)",1)])):(N(),H("div",SCn,[S("div",xCn,J(r.vramUsage.gpus.length)+"x GPUs",1),S("div",LCn,"Total: "+J(i.computedFileSize(i.totalVramUsed))+" / "+J(i.computedFileSize(i.totalVram))+" ("+J(i.avgVramPercentage)+"%)",1)]))])):(N(),H("div",CCn,e[9]||(e[9]=[S("i",{"data-feather":"alert-circle",class:"w-5 h-5"},null,-1),S("div",{class:"flex-1 font-medium"},"No GPU Detected",-1)]))),r.ramUsage?(N(),H("div",ACn,[e[11]||(e[11]=S("i",{"data-feather":"cpu",class:"w-5 h-5 text-blue-500 dark:text-blue-400 flex-shrink-0"},null,-1)),S("div",wCn,[e[10]||(e[10]=S("div",{class:"font-medium text-blue-800 dark:text-blue-100"},"CPU RAM",-1)),S("div",OCn,J(i.computedFileSize(r.ramUsage.ram_usage))+" / "+J(i.computedFileSize(r.ramUsage.total_space))+" ("+J(r.ramUsage.percent_usage)+"%)",1)])])):(N(),H("div",MCn,e[12]||(e[12]=[S("i",{"data-feather":"cpu",class:"w-5 h-5"},null,-1),S("div",{class:"flex-1 font-medium"},"RAM N/A",-1)]))),r.diskUsage?(N(),H("div",RCn,[e[14]||(e[14]=S("i",{"data-feather":"hard-drive",class:"w-5 h-5 text-green-500 dark:text-green-400 flex-shrink-0"},null,-1)),S("div",NCn,[e[13]||(e[13]=S("div",{class:"font-medium text-blue-800 dark:text-blue-100"},"Disk (Models/DB)",-1)),S("div",DCn,J(i.computedFileSize(r.diskUsage.binding_models_usage))+" / "+J(i.computedFileSize(r.diskUsage.total_space))+" ("+J(r.diskUsage.percent_usage)+"%)",1)])])):(N(),H("div",ICn,e[15]||(e[15]=[S("i",{"data-feather":"hard-drive",class:"w-5 h-5"},null,-1),S("div",{class:"flex-1 font-medium"},"Disk N/A",-1)])))]),S("div",kCn,[r.ramUsage?(N(),H("div",HCn,[e[18]||(e[18]=S("label",{class:"label flex items-center gap-1 mb-2"},[S("i",{"data-feather":"cpu",class:"w-4 h-4 text-blue-500 dark:text-blue-400"}),Oe(" CPU RAM Usage Details ")],-1)),S("div",PCn,[S("div",null,[e[16]||(e[16]=S("b",null,"Available: ",-1)),Oe(J(i.computedFileSize(r.ramUsage.available_space)),1)]),S("div",null,[e[17]||(e[17]=S("b",null,"Usage: ",-1)),Oe(" "+J(i.computedFileSize(r.ramUsage.ram_usage))+" / "+J(i.computedFileSize(r.ramUsage.total_space))+" ("+J(r.ramUsage.percent_usage)+"%)",1)])]),S("div",$Cn,[S("div",{class:"animated-progressbar-fg h-2.5 rounded-full",style:Jt({width:r.ramUsage.percent_usage+"%"})},null,4)])])):Z("",!0),r.diskUsage?(N(),H("div",VCn,[e[21]||(e[21]=S("label",{class:"label flex items-center gap-1 mb-2"},[S("i",{"data-feather":"hard-drive",class:"w-4 h-4 text-green-500 dark:text-green-400"}),Oe(" Disk Usage Details ")],-1)),S("div",BCn,[S("div",null,[e[19]||(e[19]=S("b",null,"Available: ",-1)),Oe(J(i.computedFileSize(r.diskUsage.available_space)),1)]),S("div",null,[e[20]||(e[20]=S("b",null,"Usage (Models/DB): ",-1)),Oe(" "+J(i.computedFileSize(r.diskUsage.binding_models_usage))+" / "+J(i.computedFileSize(r.diskUsage.total_space))+" ("+J(r.diskUsage.percent_usage)+"%)",1)])]),S("div",FCn,[S("div",{class:"animated-progressbar-fg h-2.5 rounded-full",style:Jt({width:r.diskUsage.percent_usage+"%"})},null,4)])])):Z("",!0),r.vramUsage&&r.vramUsage.gpus&&r.vramUsage.gpus.length>0?(N(),H("div",UCn,[(N(!0),H(Ae,null,Ue(r.vramUsage.gpus,(s,a)=>(N(),H("div",{key:a,class:"p-4 border border-blue-300 dark:border-blue-600 rounded-md mb-4 chatbox-color"},[S("label",qCn,[S("img",{src:r.SVGGPU,width:"20",height:"20",class:"flex-shrink-0",alt:"GPU Icon"},null,8,GCn),Oe(" GPU "+J(a+1)+" Usage Details ",1)]),S("div",jCn,[S("div",null,[e[22]||(e[22]=S("b",null,"Model: ",-1)),Oe(J(s.gpu_model),1)]),S("div",null,[e[23]||(e[23]=S("b",null,"Available VRAM: ",-1)),Oe(J(i.computedFileSize(s.available_space)),1)]),S("div",null,[e[24]||(e[24]=S("b",null,"Usage: ",-1)),Oe(" "+J(i.computedFileSize(s.used_vram))+" / "+J(i.computedFileSize(s.total_vram))+" ("+J(s.percentage)+"%)",1)])]),S("div",zCn,[S("div",{class:"animated-progressbar-fg h-2.5 rounded-full",style:Jt({width:s.percentage+"%"})},null,4)])]))),128))])):(N(),H("div",YCn," No GPU detected or VRAM information unavailable. "))]),S("div",WCn,[e[30]||(e[30]=S("h3",{class:"h3"},"Common Folders",-1)),S("div",KCn,[S("div",{class:"folder-item-base folder-item-personalities group",onClick:e[1]||(e[1]=s=>i.handleFolderClick("custom-personalities")),title:"Open Custom Personalities folder"},e[25]||(e[25]=[S("i",{"data-feather":"users",class:"folder-item-icon folder-item-icon-personalities"},null,-1),S("span",{class:"folder-item-label"},"Custom Personalities",-1)])),S("div",{class:"folder-item-base folder-item-functions group",onClick:e[2]||(e[2]=s=>i.handleFolderClick("custom-function-calls")),title:"Open Custom Function Calls folder"},e[26]||(e[26]=[S("i",{"data-feather":"tool",class:"folder-item-icon folder-item-icon-functions"},null,-1),S("span",{class:"folder-item-label"},"Custom Functions",-1)])),S("div",{class:"folder-item-base folder-item-configs group",onClick:e[3]||(e[3]=s=>i.handleFolderClick("configurations")),title:"Open Configurations folder"},e[27]||(e[27]=[S("i",{"data-feather":"settings",class:"folder-item-icon folder-item-icon-configs"},null,-1),S("span",{class:"folder-item-label"},"Configurations",-1)])),S("div",{class:"folder-item-base folder-item-outputs group",onClick:e[4]||(e[4]=s=>i.handleFolderClick("ai-outputs")),title:"Open AI Outputs folder"},e[28]||(e[28]=[S("i",{"data-feather":"gift",class:"folder-item-icon folder-item-icon-outputs"},null,-1),S("span",{class:"folder-item-label"},"AI Outputs",-1)])),S("div",{class:"folder-item-base folder-item-discussions group",onClick:e[5]||(e[5]=s=>i.handleFolderClick("discussions")),title:"Open Discussions folder"},e[29]||(e[29]=[S("i",{"data-feather":"message-square",class:"folder-item-icon folder-item-icon-discussions"},null,-1),S("span",{class:"folder-item-label"},"Discussions",-1)]))])])])}const LO=ze(mCn,[["render",ZCn],["__scopeId","data-v-09d1f933"]]),XCn={name:"DictionaryManager",props:{modelValue:{type:Object,default:()=>({})},keyName:{type:String,default:"Key"},valueName:{type:String,default:"Value"}},emits:["update:modelValue","change"],data(){return{newKey:"",newValue:"",draggingKey:null}},methods:{addItem(){if(this.newKey.trim()){const t={...this.modelValue};t[this.newKey.trim()]=this.newValue,this.$emit("update:modelValue",t),this.$emit("change"),this.newKey="",this.newValue=""}},removeItem(t){const e={...this.modelValue};delete e[t],this.$emit("update:modelValue",e),this.$emit("change")},removeAll(){this.$emit("update:modelValue",{}),this.$emit("change")},updateKey(t,e){if(e.trim()&&e!==t){const n={...this.modelValue};n[e.trim()]=n[t],delete n[t],this.$emit("update:modelValue",n),this.$emit("change")}},updateValue(t,e){const n={...this.modelValue};n[t]=e,this.$emit("update:modelValue",n),this.$emit("change")},moveUp(t){const e=Object.keys(this.modelValue),n=e.indexOf(t);if(n>0){const o={};e.forEach((r,i)=>{i===n-1&&(o[t]=this.modelValue[t]),r!==t&&(o[r]=this.modelValue[r])}),this.$emit("update:modelValue",o),this.$emit("change")}},moveDown(t){const e=Object.keys(this.modelValue),n=e.indexOf(t);if(n{r!==t&&(o[r]=this.modelValue[r]),i===n+1&&(o[t]=this.modelValue[t])}),this.$emit("update:modelValue",o),this.$emit("change")}}}},JCn={class:"max-w-4xl mx-auto p-4"},eAn={class:"flex flex-col sm:flex-row mb-4 gap-2"},tAn=["placeholder"],nAn=["placeholder"],rAn={key:0,class:"space-y-4"},iAn={class:"flex-grow mb-2 sm:mb-0 sm:mr-4 w-full sm:w-auto"},oAn=["for"],sAn=["id","value","onInput"],aAn={class:"flex-grow mb-2 sm:mb-0 sm:mr-4 w-full sm:w-auto"},lAn=["for"],cAn=["id","value","onInput"],uAn={class:"flex items-center space-x-2"},dAn=["onClick"],TAn=["onClick"],fAn=["onClick"],pAn={key:1,class:"mt-6"};function hAn(t,e,n,o,r,i){return N(),H("div",JCn,[S("div",eAn,[Ce(S("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=s=>r.newKey=s),placeholder:n.keyName,onKeyup:e[1]||(e[1]=Qn((...s)=>i.addItem&&i.addItem(...s),["enter"])),class:"flex-grow px-4 py-2 border border-gray-300 rounded dark:bg-gray-700 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,tAn),[[Je,r.newKey]]),Ce(S("input",{type:"text","onUpdate:modelValue":e[2]||(e[2]=s=>r.newValue=s),placeholder:n.valueName,onKeyup:e[3]||(e[3]=Qn((...s)=>i.addItem&&i.addItem(...s),["enter"])),class:"flex-grow px-4 py-2 border border-gray-300 rounded dark:bg-gray-700 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,nAn),[[Je,r.newValue]]),S("button",{onClick:e[4]||(e[4]=(...s)=>i.addItem&&i.addItem(...s)),class:"bg-blue-500 text-white px-6 py-2 rounded hover:bg-blue-600 text-lg transition duration-300 ease-in-out"},"Add")]),Object.keys(n.modelValue).length>0?(N(),H("ul",rAn,[(N(!0),H(Ae,null,Ue(n.modelValue,(s,a)=>(N(),H("li",{key:a,class:Ee(["flex flex-col sm:flex-row items-center p-4 bg-white dark:bg-gray-800 rounded-lg shadow-md hover:shadow-lg transition duration-300 ease-in-out",{"bg-gray-100 dark:bg-gray-700":r.draggingKey===a}])},[S("div",iAn,[S("label",{for:"key-"+a,class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},J(n.keyName),9,oAn),S("input",{id:"key-"+a,value:a,onInput:l=>i.updateKey(a,l.target.value),class:"w-full px-3 py-2 border border-gray-300 rounded dark:bg-gray-600 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,sAn)]),S("div",aAn,[S("label",{for:"value-"+a,class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},J(n.valueName),9,lAn),S("input",{id:"value-"+a,value:s,onInput:l=>i.updateValue(a,l.target.value),class:"w-full px-3 py-2 border border-gray-300 rounded dark:bg-gray-600 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,cAn)]),S("div",uAn,[S("button",{onClick:l=>i.removeItem(a),class:"text-red-500 hover:text-red-700 p-2 rounded-full hover:bg-red-100 dark:hover:bg-red-900 transition duration-300 ease-in-out"},e[6]||(e[6]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",viewBox:"0 0 20 20",fill:"currentColor"},[S("path",{"fill-rule":"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)]),8,dAn),S("button",{onClick:l=>i.moveUp(a),class:"bg-gray-200 dark:bg-gray-600 hover:bg-gray-300 dark:hover:bg-gray-500 p-2 rounded-full transition duration-300 ease-in-out"},e[7]||(e[7]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",viewBox:"0 0 20 20",fill:"currentColor"},[S("path",{"fill-rule":"evenodd",d:"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z","clip-rule":"evenodd"})],-1)]),8,TAn),S("button",{onClick:l=>i.moveDown(a),class:"bg-gray-200 dark:bg-gray-600 hover:bg-gray-300 dark:hover:bg-gray-500 p-2 rounded-full transition duration-300 ease-in-out"},e[8]||(e[8]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",viewBox:"0 0 20 20",fill:"currentColor"},[S("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)]),8,fAn)])],2))),128))])):Z("",!0),Object.keys(n.modelValue).length>0?(N(),H("div",pAn,[S("button",{onClick:e[5]||(e[5]=(...s)=>i.removeAll&&i.removeAll(...s)),class:"bg-red-500 text-white px-6 py-2 rounded hover:bg-red-600 text-lg transition duration-300 ease-in-out"},"Remove All")])):Z("",!0)])}const mAn=ze(XCn,[["render",hAn]]),gAn={name:"SmartRoutingConfig",components:{DictManager:mAn},props:{loading:{type:Boolean,default:!1},settingsChanged:{type:Boolean,default:!1}},emits:["update:setting","settings-changed"],computed:{useSmartRouting(){return this.$store.state.config.use_smart_routing},restoreModelAfterRouting(){return this.$store.state.config.restore_model_after_smart_routing},routerModel(){return this.$store.state.config.smart_routing_router_model},modelsDescription(){return this.$store.state.config.smart_routing_models_description||{}}},methods:{updateValue(t,e){this.$emit("update:setting",{key:t,value:e}),this.settingsChanged!==void 0&&this.$emit("settings-changed",!0)},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e}),this.settingsChanged!==void 0&&this.$emit("settings-changed",!0)}}},_An={class:"user-settings-panel space-y-6"},QAn={class:"space-y-4"},vAn={class:"toggle-item border-t border-blue-200 dark:border-blue-700 pt-3 mt-2"},yAn=["value","disabled"];function bAn(t,e,n,o,r,i){const s=We("ToggleSwitch"),a=We("DictManager");return N(),H("div",_An,[e[8]||(e[8]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Smart Routing Configuration ",-1)),S("div",QAn,[S("div",vAn,[e[4]||(e[4]=S("label",{for:"use_smart_routing",class:"toggle-label"},[Oe(" Enable Smart Routing "),S("span",{class:"toggle-description"}," Allow LoLLMs to automatically select the best model for a given task based on descriptions. ")],-1)),ne(s,{id:"use_smart_routing",checked:i.useSmartRouting,"onUpdate:checked":e[0]||(e[0]=l=>i.updateBoolean("use_smart_routing",l))},null,8,["checked"])]),S("div",{class:Ee(["toggle-item border-t border-blue-200 dark:border-blue-700 pt-3 mt-2",i.useSmartRouting?"":"opacity-50 pointer-events-none"])},[e[5]||(e[5]=S("label",{for:"restore_model_after_smart_routing",class:"toggle-label"},[Oe(" Restore Original Model After Routing "),S("span",{class:"toggle-description"}," Automatically switch back to the originally selected model after the routed task is complete. ")],-1)),ne(s,{id:"restore_model_after_smart_routing",checked:i.restoreModelAfterRouting,"onUpdate:checked":e[1]||(e[1]=l=>i.updateBoolean("restore_model_after_smart_routing",l)),disabled:!i.useSmartRouting},null,8,["checked","disabled"])],2),S("div",{class:Ee(["setting-item border-t border-blue-200 dark:border-blue-700 pt-3 mt-2",i.useSmartRouting?"":"opacity-50 pointer-events-none"])},[e[6]||(e[6]=S("label",{for:"smart_routing_router_model",class:"setting-label"},[Oe(" Router Model Name "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"}," The model responsible for deciding which specialized model to use. (e.g., `mistralai/Mistral-7B-Instruct-v0.2`) ")],-1)),S("input",{type:"text",id:"smart_routing_router_model",value:i.routerModel,onInput:e[2]||(e[2]=l=>i.updateValue("smart_routing_router_model",l.target.value)),disabled:!i.useSmartRouting,class:"input flex-grow",placeholder:"Enter the router model name"},null,40,yAn)],2),S("div",{class:Ee(["space-y-2 border-t border-blue-200 dark:border-blue-700 pt-3 mt-2",i.useSmartRouting?"":"opacity-50 pointer-events-none"])},[e[7]||(e[7]=S("label",{class:"label mb-1"},[Oe(" Specialized Models & Descriptions "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"}," Define the models that the router can choose from and provide a clear description of their capabilities. ")],-1)),ne(a,{modelValue:i.modelsDescription,"onUpdate:modelValue":e[3]||(e[3]=l=>i.updateValue("smart_routing_models_description",l)),"key-name":"Model Path / Name","value-name":"Model Description (Task Capabilities)","key-placeholder":"Enter model name (e.g., openai/gpt-4) or path","value-placeholder":"Describe what this model is good at (e.g., 'Excellent for coding tasks and complex reasoning')",disabled:!i.useSmartRouting,class:"flex-grow panels-color p-2 rounded"},null,8,["modelValue","disabled"])],2)])])}const CO=ze(gAn,[["render",bAn],["__scopeId","data-v-29a3f94a"]]),EAn=["for"],SAn=["id","checked","disabled"],xAn={__name:"ToggleSwitch",props:{id:{type:String,required:!0},checked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:checked"],setup(t){return(e,n)=>(N(),H("label",{for:t.id,class:Ee(["relative inline-flex items-center cursor-pointer",{"opacity-50 cursor-not-allowed":t.disabled}])},[S("input",{type:"checkbox",id:t.id,checked:t.checked,disabled:t.disabled,onChange:n[0]||(n[0]=o=>e.$emit("update:checked",o.target.checked)),class:"sr-only peer"},null,40,SAn),n[1]||(n[1]=S("div",{class:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600"},null,-1)),_n(e.$slots,"default",{},void 0,!0)],10,EAn))}},n6=ze(xAn,[["__scopeId","data-v-8b2e5a8e"]]),Wi="/assets/logo-6TyToX4A.png",LAn={name:"MainConfigSettings",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1},settingsChanged:{type:Boolean,default:!1},api_post_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["update:setting","settings-changed"],data(){return{isUploadingLogo:!1,showAddThinkingPresetForm:!1,thinkingPresets:[],localThinkingPresets:[],newPreset:{name:"",description:"",author:"",prompt:""},selectedPresetName:""}},computed:{logoSrc(){if(this.$store.state.config.app_custom_logo){const t=(fe.defaults.baseURL||"").replace(/\/$/,""),e=(this.$store.state.config.app_custom_logo||"").replace(/^\//,"");return`${t}/user_infos/${e}`}return Wi},full_template(){if(!this.$store.state.config)return"";const t=this.$store.state.config;return[t.start_header_id_template,t.system_message_template,t.end_header_id_template," system message",t.separator_template,t.start_user_header_id_template,"user name",t.end_user_header_id_template," User prompt",t.separator_template,t.end_user_message_id_template,t.separator_template,t.start_ai_header_id_template,"ai personality",t.end_ai_header_id_template,"ai response",t.end_ai_message_id_template].map(n=>n||"").join("").replace(/\n/g,"
")},allThinkingPresets(){const t=[...this.localThinkingPresets],e=new Set(this.localThinkingPresets.map(n=>n.name));return this.thinkingPresets.forEach(n=>{e.has(n.name)||t.push(n)}),t.sort((n,o)=>n.name.localeCompare(o.name))}},methods:{updateValue(t,e){this.$emit("update:setting",{key:t,value:e}),this.$emit("settings-changed",!0),t==="thinking_prompt"&&(this.selectedPresetName="")},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e}),this.$emit("settings-changed",!0)},async uploadLogo(t){var o,r;const e=t.target.files[0];if(!e)return;this.isUploadingLogo=!0;const n=new FormData;n.append("logo",e),n.append("client_id",this.client_id);try{const i=await fe.post("/upload_logo",n,{headers:{"Content-Type":"multipart/form-data"}});i.data&&i.data.status?(this.show_toast("Logo uploaded successfully!",4,!0),this.$emit("update:setting",{key:"app_custom_logo",value:i.data.filename}),this.$emit("settings-changed",!0)):this.show_toast(`Logo upload failed: ${i.data.error||"Unknown error"}`,4,!1)}catch(i){console.error("Error uploading logo:",i),this.show_toast(`Error uploading logo: ${((r=(o=i.response)==null?void 0:o.data)==null?void 0:r.error)||i.message||"Unknown error"}`,4,!1)}finally{this.isUploadingLogo=!1,t.target&&(t.target.value=null)}},async removeLogo(){var t,e;this.isUploadingLogo=!0;try{const n=await this.api_post_req("/remove_logo",{client_id:this.client_id});n.status?(this.show_toast("Logo removed successfully!",4,!0),this.$emit("update:setting",{key:"app_custom_logo",value:null}),this.$emit("settings-changed",!0)):this.show_toast(`Failed to remove logo: ${n.error||"Unknown error"}`,4,!1)}catch(n){console.error("Error removing logo:",n),this.show_toast(`Error removing logo: ${((e=(t=n.response)==null?void 0:t.data)==null?void 0:e.error)||n.message||"Unknown error"}`,4,!1)}finally{this.isUploadingLogo=!1}},handleTemplateSelection(t){const e=t.target.value;let n={};e==="lollms"?n={start_header_id_template:"!@>",system_message_template:"system",end_header_id_template:": ",separator_template:` +`];let a=-1;return s.forEach(l=>{const c=i.lastIndexOf(l);c>a&&(a=c)}),a==-1&&(a=i.length),console.log(a),a+r+1},o=()=>{const r=n(t),i=this.text.substring(t,r);this.msg.text=i,t=r+1,this.msg.onend=s=>{t{o()},1):(this.isSpeaking=!1,console.log("voice off :",this.text.length," ",r))},this.speechSynthesis.speak(this.msg)};o()},getCursorPosition(){return this.$refs.mdTextarea.selectionStart},appendToOutput(t){this.pre_text+=t,this.text=this.pre_text+this.post_text},generate_in_placeholder(){console.log("Finding cursor position");let t=this.text.indexOf("@@");if(t<0){this.$refs.toast.showToast("No generation placeholder found",4,!1);return}this.text=this.text.substring(0,t)+this.text.substring(t+26,this.text.length),this.pre_text=this.text.substring(0,t),this.post_text=this.text.substring(t,this.text.length);var e=this.text.substring(0,t);console.log(e),Ye.emit("generate_text",{prompt:e,personality:-1,n_predicts:this.n_predicts,n_crop:this.n_crop,parameters:{temperature:this.temperature,top_k:this.top_k,top_p:this.top_p,repeat_penalty:this.repeat_penalty,repeat_last_n:this.repeat_last_n,seed:parseInt(this.seed)}}),this.generating=!0},async tokenize_text(){const t=await fe.post("/lollms_tokenize",{prompt:this.text,return_named:!0},{headers:this.posts_headers});console.log(t.data),this.namedTokens=t.data},generate(){console.log("Finding cursor position"),this.pre_text=this.text.substring(0,this.getCursorPosition()),this.post_text=this.text.substring(this.getCursorPosition(),this.text.length);var t=this.text.substring(0,this.getCursorPosition());console.log(this.text),console.log(`cursor position :${this.getCursorPosition()}`),console.log(`pretext:${this.pre_text}`),console.log(`post_text:${this.post_text}`),console.log(`prompt:${t}`),Ye.emit("generate_text",{prompt:t,personality:-1,n_predicts:this.n_predicts,n_crop:this.n_crop,parameters:{temperature:this.temperature,top_k:this.top_k,top_p:this.top_p,repeat_penalty:this.repeat_penalty,repeat_last_n:this.repeat_last_n,seed:parseInt(this.seed)}}),this.generating=!0},stopGeneration(){Ye.emit("cancel_text_generation",{})},exportText(){const t=this.text,e=document.createElement("a"),n=new Blob([t],{type:"text/plain"});e.href=URL.createObjectURL(n),e.download="exported_text.txt",document.body.appendChild(e),e.click(),document.body.removeChild(e)},importText(){const t=document.getElementById("import-input");t&&(t.addEventListener("change",e=>{if(e.target.files&&e.target.files[0]){const n=new FileReader;n.onload=()=>{this.text=n.result},n.readAsText(e.target.files[0])}else alert("Please select a file.")}),t.click())},setPreset(){console.log("Setting preset"),console.log(this.selectedPreset),this.tab_id="render",this.text=tLn(this.selectedPreset.content,t=>{console.log("Done"),console.log(t),this.text=t})},addPreset(){let t=prompt("Enter the title of the preset:");this.presets[t]={client_id:this.$store.state.client_id,name:t,content:this.text},fe.post("./add_preset",this.presets[t]).then(e=>{console.log(e.data)}).catch(e=>{this.$refs.toast.showToast(`Error: ${e}`,4,!1)})},removePreset(){this.selectedPreset&&delete this.presets[this.selectedPreset.name]},reloadPresets(){fe.get("./get_presets").then(t=>{console.log(t.data),this.presets=t.data,this.selectedPreset=this.presets[0]}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)})},startRecording(){this.pending=!0,this.is_recording?fe.post("/stop_recording",{client_id:this.$store.state.client_id}).then(t=>{this.is_recording=!1,this.pending=!1,console.log(t),this.text+=t.data,console.log("text"),console.log(this.text),console.log(t.data),this.presets=t.data,this.selectedPreset=this.presets[0]}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)}):fe.post("/start_recording",{client_id:this.$store.state.client_id}).then(t=>{this.is_recording=!0,this.pending=!1,console.log(t.data)}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)})},startRecordingAndTranscribing(){this.pending=!0,this.is_deaf_transcribing?fe.get("/stop_recording").then(t=>{this.is_deaf_transcribing=!1,this.pending=!1,this.text=t.data.text,this.read()}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)}):fe.get("/start_recording").then(t=>{this.is_deaf_transcribing=!0,this.pending=!1}).catch(t=>{this.$refs.toast.showToast(`Error: ${t}`,4,!1)})},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.isLesteningToVoice=!0,this.silenceTimer=setTimeout(()=>{this.recognition.stop()},this.silenceTimeout)},this.pre_text=this.text.substring(0,this.getCursorPosition()),this.post_text=this.text.substring(this.getCursorPosition(),this.text.length),this.recognition.onresult=t=>{this.generated="";for(let e=t.resultIndex;e{this.recognition.stop()},this.silenceTimeout)},this.recognition.onerror=t=>{console.error("Speech recognition error:",t.error),this.isLesteningToVoice=!1,clearTimeout(this.silenceTimer)},this.recognition.onend=()=>{console.log("Speech recognition ended."),this.isLesteningToVoice=!1,this.pre_text=this.pre_text+this.generated,this.cursorPosition=this.pre_text.length,clearTimeout(this.silenceTimer)},this.recognition.start()):console.error("Speech recognition is not supported in this browser.")}}},rLn={class:"container w-full background-color shadow-lg 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"},iLn={class:"container flex flex-row m-2 w-full"},oLn={class:"flex-grow w-full m-2"},sLn={class:"flex panels-color gap-3 flex-1 items-center flex-grow flex-row rounded-md border-2 border-blue-300 m-2 p-4"},aLn={class:"flex items-center space-x-2"},lLn=["src"],cLn=["src"],uLn=["src"],dLn=["src"],TLn=["src"],fLn={key:1,class:"w-6 h-6"},pLn={class:"flex gap-3 flex-1 items-center flex-grow justify-end"},hLn={key:0},mLn=["src"],gLn={key:2},_Ln={key:0,class:"settings scrollbar bg-white dark:bg-gray-800 rounded-lg shadow-md p-6"},QLn=["value"],vLn={key:0,title:"Selecting model",class:"flex flex-row flex-grow justify-end"},yLn=["value"],bLn={class:"slider-container ml-2 mr-2"},ELn={class:"slider-value text-gray-500"},SLn={class:"slider-container ml-2 mr-2"},xLn={class:"slider-value text-gray-500"},LLn={class:"slider-container ml-2 mr-2"},CLn={class:"slider-value text-gray-500"},ALn={class:"slider-container ml-2 mr-2"},wLn={class:"slider-value text-gray-500"},OLn={class:"slider-container ml-2 mr-2"},MLn={class:"slider-value text-gray-500"},RLn={class:"slider-container ml-2 mr-2"},NLn={class:"slider-value text-gray-500"},DLn={class:"slider-container ml-2 mr-2"},ILn={class:"slider-value text-gray-500"},kLn={class:"slider-container ml-2 mr-2"},HLn={class:"slider-value text-gray-500"};function PLn(t,e,n,o,r,i){const s=We("ChatBarButton"),a=We("ToolbarButton"),l=We("DropdownSubmenu"),c=We("DropdownMenu"),u=We("tokens-hilighter"),d=We("MarkdownRenderer"),f=We("Card"),T=We("Toast");return N(),H(Ae,null,[S("div",rLn,[S("div",iLn,[S("div",oLn,[S("div",sLn,[S("div",aLn,[Ce(ne(s,{onClick:i.generate,title:"Generate from the current cursor position"},{icon:je(()=>e[54]||(e[54]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})],-1)])),_:1},8,["onClick"]),[[wn,!r.generating]]),Ce(ne(s,{onClick:i.generate_in_placeholder,title:"Generate from the next placeholder"},{icon:je(()=>e[55]||(e[55]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"})],-1)])),_:1},8,["onClick"]),[[wn,!r.generating]]),Ce(ne(s,{onClick:i.tokenize_text,title:"Tokenize the text"},{icon:je(()=>[S("img",{src:r.tokenize_icon,alt:"Tokenize",class:"h-5 w-5"},null,8,lLn)]),_:1},8,["onClick"]),[[wn,!r.generating]]),e[65]||(e[65]=S("span",{class:"w-80"},null,-1)),Ce(ne(s,{onClick:i.stopGeneration,title:"Stop generation"},{icon:je(()=>e[56]||(e[56]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])),_:1},8,["onClick"]),[[wn,r.generating]]),ne(s,{onClick:i.startSpeechRecognition,class:Ee({"text-red-500":t.isListeningToVoice}),title:"Dictate (using your browser's transcription)"},{icon:je(()=>e[57]||(e[57]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})],-1)])),_:1},8,["onClick","class"]),ne(s,{onClick:i.speak,class:Ee({"text-red-500":i.isTalking}),title:"Convert text to audio (not saved, uses your browser's TTS service)"},{icon:je(()=>e[58]||(e[58]=[Oe(" 🪶 ")])),_:1},8,["onClick","class"]),ne(s,{onClick:i.triggerFileUpload,title:"Upload a voice"},{icon:je(()=>e[59]||(e[59]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})],-1)])),_:1},8,["onClick"]),ne(s,{onClick:i.startRecordingAndTranscribing,class:Ee({"text-green-500":r.isLesteningToVoice}),title:"Start audio to audio"},{icon:je(()=>[r.pending?(N(),H("img",{key:1,src:r.loading_icon,alt:"Loading",class:"h-5 w-5"},null,8,uLn)):(N(),H("img",{key:0,src:r.is_deaf_transcribing?r.deaf_on:r.deaf_off,alt:"Deaf",class:"h-5 w-5"},null,8,cLn))]),_:1},8,["onClick","class"]),ne(s,{onClick:i.startRecording,class:Ee({"text-green-500":r.isLesteningToVoice}),title:"Start audio recording"},{icon:je(()=>[r.pending?(N(),H("img",{key:1,src:r.loading_icon,alt:"Loading",class:"h-5 w-5"},null,8,TLn)):(N(),H("img",{key:0,src:r.is_recording?r.rec_on:r.rec_off,alt:"Record",class:"h-5 w-5"},null,8,dLn))]),_:1},8,["onClick","class"]),r.isSynthesizingVoice?(N(),H("div",fLn,e[61]||(e[61]=[S("svg",{class:"animate-spin h-5 w-5 text-secondary",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[S("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),S("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)]))):(N(),it(s,{key:0,onClick:i.read,title:"Generate audio from text"},{icon:je(()=>e[60]||(e[60]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})],-1)])),_:1},8,["onClick"])),Ce(ne(s,{onClick:i.exportText,title:"Export text"},{icon:je(()=>e[62]||(e[62]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"})],-1)])),_:1},8,["onClick"]),[[wn,!r.generating]]),Ce(ne(s,{onClick:i.importText,title:"Import text"},{icon:je(()=>e[63]||(e[63]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)])),_:1},8,["onClick"]),[[wn,!r.generating]]),ne(s,{onClick:e[0]||(e[0]=h=>r.showSettings=!r.showSettings),title:"Settings"},{icon:je(()=>e[64]||(e[64]=[S("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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"}),S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])),_:1})]),S("input",{type:"file",ref:"fileInput",onChange:e[1]||(e[1]=(...h)=>i.handleFileUpload&&i.handleFileUpload(...h)),style:{display:"none"},accept:".wav"},null,544),S("div",pLn,[S("button",{class:Ee(["border-2 text-blue-600 dark:text-white border-blue-300 p-2 rounded shadow-lg hover:border-gray-600 dark:link-item-dark cursor-pointer",{"bg-blue-200 dark:bg-blue-500":r.tab_id=="source"}]),onClick:e[2]||(e[2]=h=>r.tab_id="source")}," Source ",2),S("button",{class:Ee(["border-2 text-blue-600 dark:text-white border-blue-300 p-2 rounded shadow-lg hover:border-gray-600 dark:link-item-dark cursor-pointer",{"bg-blue-200 dark:bg-blue-500":r.tab_id=="render"}]),onClick:e[3]||(e[3]=h=>r.tab_id="render")}," Render ",2)]),e[66]||(e[66]=S("input",{type:"file",id:"import-input",class:"hidden"},null,-1))]),S("div",{class:Ee(["flex-grow m-2 p-2 border panels-color border-blue-300 rounded-md",{"border-red-500":r.generating}])},[r.tab_id==="source"?(N(),H("div",hLn,[ne(c,{title:"Add Block"},{default:je(()=>[ne(l,{title:"Programming Languages",icon:"code"},{default:je(()=>[ne(a,{onClick:e[4]||(e[4]=oe(h=>i.addBlock("python"),["stop"])),title:"Python",icon:"python"}),ne(a,{onClick:e[5]||(e[5]=oe(h=>i.addBlock("javascript"),["stop"])),title:"JavaScript",icon:"js"}),ne(a,{onClick:e[6]||(e[6]=oe(h=>i.addBlock("typescript"),["stop"])),title:"TypeScript",icon:"typescript"}),ne(a,{onClick:e[7]||(e[7]=oe(h=>i.addBlock("java"),["stop"])),title:"Java",icon:"java"}),ne(a,{onClick:e[8]||(e[8]=oe(h=>i.addBlock("c++"),["stop"])),title:"C++",icon:"cplusplus"}),ne(a,{onClick:e[9]||(e[9]=oe(h=>i.addBlock("csharp"),["stop"])),title:"C#",icon:"csharp"}),ne(a,{onClick:e[10]||(e[10]=oe(h=>i.addBlock("go"),["stop"])),title:"Go",icon:"go"}),ne(a,{onClick:e[11]||(e[11]=oe(h=>i.addBlock("rust"),["stop"])),title:"Rust",icon:"rust"}),ne(a,{onClick:e[12]||(e[12]=oe(h=>i.addBlock("swift"),["stop"])),title:"Swift",icon:"swift"}),ne(a,{onClick:e[13]||(e[13]=oe(h=>i.addBlock("kotlin"),["stop"])),title:"Kotlin",icon:"kotlin"}),ne(a,{onClick:e[14]||(e[14]=oe(h=>i.addBlock("r"),["stop"])),title:"R",icon:"r-project"})]),_:1}),ne(l,{title:"Web Technologies",icon:"web"},{default:je(()=>[ne(a,{onClick:e[15]||(e[15]=oe(h=>i.addBlock("html"),["stop"])),title:"HTML",icon:"html5"}),ne(a,{onClick:e[16]||(e[16]=oe(h=>i.addBlock("css"),["stop"])),title:"CSS",icon:"css3"}),ne(a,{onClick:e[17]||(e[17]=oe(h=>i.addBlock("vue"),["stop"])),title:"Vue.js",icon:"vuejs"}),ne(a,{onClick:e[18]||(e[18]=oe(h=>i.addBlock("react"),["stop"])),title:"React",icon:"react"}),ne(a,{onClick:e[19]||(e[19]=oe(h=>i.addBlock("angular"),["stop"])),title:"Angular",icon:"angular"})]),_:1}),ne(l,{title:"Markup and Data",icon:"file-code"},{default:je(()=>[ne(a,{onClick:e[20]||(e[20]=oe(h=>i.addBlock("xml"),["stop"])),title:"XML",icon:"xml"}),ne(a,{onClick:e[21]||(e[21]=oe(h=>i.addBlock("json"),["stop"])),title:"JSON",icon:"json"}),ne(a,{onClick:e[22]||(e[22]=oe(h=>i.addBlock("yaml"),["stop"])),title:"YAML",icon:"yaml"}),ne(a,{onClick:e[23]||(e[23]=oe(h=>i.addBlock("markdown"),["stop"])),title:"Markdown",icon:"markdown"}),ne(a,{onClick:e[24]||(e[24]=oe(h=>i.addBlock("latex"),["stop"])),title:"LaTeX",icon:"latex"})]),_:1}),ne(l,{title:"Scripting and Shell",icon:"terminal"},{default:je(()=>[ne(a,{onClick:e[25]||(e[25]=oe(h=>i.addBlock("bash"),["stop"])),title:"Bash",icon:"bash"}),ne(a,{onClick:e[26]||(e[26]=oe(h=>i.addBlock("powershell"),["stop"])),title:"PowerShell",icon:"powershell"}),ne(a,{onClick:e[27]||(e[27]=oe(h=>i.addBlock("perl"),["stop"])),title:"Perl",icon:"perl"})]),_:1}),ne(l,{title:"Diagramming",icon:"sitemap"},{default:je(()=>[ne(a,{onClick:e[28]||(e[28]=oe(h=>i.addBlock("mermaid"),["stop"])),title:"Mermaid",icon:"mermaid"}),ne(a,{onClick:e[29]||(e[29]=oe(h=>i.addBlock("graphviz"),["stop"])),title:"Graphviz",icon:"graphviz"}),ne(a,{onClick:e[30]||(e[30]=oe(h=>i.addBlock("plantuml"),["stop"])),title:"PlantUML",icon:"plantuml"})]),_:1}),ne(l,{title:"Database",icon:"database"},{default:je(()=>[ne(a,{onClick:e[31]||(e[31]=oe(h=>i.addBlock("sql"),["stop"])),title:"SQL",icon:"sql"}),ne(a,{onClick:e[32]||(e[32]=oe(h=>i.addBlock("mongodb"),["stop"])),title:"MongoDB",icon:"mongodb"})]),_:1}),ne(a,{onClick:e[33]||(e[33]=oe(h=>i.addBlock(""),["stop"])),title:"Generic Block",icon:"code"})]),_:1}),ne(a,{onClick:e[34]||(e[34]=oe(h=>t.copyContentToClipboard(),["stop"])),title:"Copy message to clipboard",icon:"copy"}),Ce(S("textarea",{ref:"mdTextarea",onKeydown:e[35]||(e[35]=Qn(oe((...h)=>i.insertTab&&i.insertTab(...h),["prevent"]),["tab"])),class:"block min-h-500 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,style:Jt({minHeight:r.mdRenderHeight+"px"}),placeholder:"Enter message here...","onUpdate:modelValue":e[36]||(e[36]=h=>r.text=h),onClick:e[37]||(e[37]=oe((...h)=>i.mdTextarea_clicked&&i.mdTextarea_clicked(...h),["prevent"])),onChange:e[38]||(e[38]=oe((...h)=>i.mdTextarea_changed&&i.mdTextarea_changed(...h),["prevent"]))}," ",36),[[Je,r.text]]),S("span",null,"Cursor position "+J(r.cursorPosition),1)])):Z("",!0),r.audio_url!=null?(N(),H("audio",{controls:"",key:r.audio_url},[S("source",{src:r.audio_url,type:"audio/wav",ref:"audio_player"},null,8,mLn),e[67]||(e[67]=Oe(" Your browser does not support the audio element. "))])):Z("",!0),ne(u,{namedTokens:r.namedTokens},null,8,["namedTokens"]),r.tab_id==="render"?(N(),H("div",gLn,[ne(d,{ref:"mdRender",client_id:this.$store.state.client_id,message_id:0,discussion_id:0,"markdown-text":r.text,class:"mt-4 p-2 rounded shadow-lg dark:bg-bg-dark"},null,8,["client_id","markdown-text"])])):Z("",!0)],2)]),r.showSettings?(N(),H("div",_Ln,[e[82]||(e[82]=S("h2",{class:"text-2xl font-bold text-gray-900 dark:text-white mb-4"},"Settings",-1)),ne(f,{title:"Model",class:"slider-container ml-0 mr-0",isHorizontal:!1,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[Ce(S("select",{"onUpdate:modelValue":e[39]||(e[39]=h=>this.$store.state.selectedModel=h),onChange:e[40]||(e[40]=(...h)=>i.setModel&&i.setModel(...h)),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},[(N(!0),H(Ae,null,Ue(i.models,h=>(N(),H("option",{key:h,value:h},J(h),9,QLn))),128))],544),[[Ir,this.$store.state.selectedModel]]),r.selecting_model?(N(),H("div",vLn,e[68]||(e[68]=[S("div",{role:"status"},[S("svg",{"aria-hidden":"true",class:"w-6 h-6 animate-spin fill-secondary",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})]),S("span",{class:"sr-only"},"Selecting model...")],-1)]))):Z("",!0)]),_:1}),ne(f,{title:"Presets",class:"slider-container ml-0 mr-0",is_subcard:!0,isHorizontal:!1,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[Ce(S("select",{"onUpdate:modelValue":e[41]||(e[41]=h=>r.selectedPreset=h),class:"bg-white dark:bg-black mb-2 border-2 rounded-md shadow-sm w-full"},[(N(!0),H(Ae,null,Ue(r.presets,h=>(N(),H("option",{key:h,value:h},J(h.name),9,yLn))),128))],512),[[Ir,r.selectedPreset]]),e[73]||(e[73]=S("br",null,null,-1)),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[42]||(e[42]=(...h)=>i.setPreset&&i.setPreset(...h)),title:"Use preset"},e[69]||(e[69]=[S("i",{"data-feather":"check"},null,-1)])),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[43]||(e[43]=(...h)=>i.addPreset&&i.addPreset(...h)),title:"Add this text as a preset"},e[70]||(e[70]=[S("i",{"data-feather":"plus"},null,-1)])),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[44]||(e[44]=(...h)=>i.removePreset&&i.removePreset(...h)),title:"Remove preset"},e[71]||(e[71]=[S("i",{"data-feather":"x"},null,-1)])),S("button",{class:"w-6 ml-2 hover:text-secondary duration-75 active:scale-90 cursor-pointer",onClick:e[45]||(e[45]=(...h)=>i.reloadPresets&&i.reloadPresets(...h)),title:"Reload presets list"},e[72]||(e[72]=[S("i",{"data-feather":"refresh-ccw"},null,-1)]))]),_:1}),ne(f,{title:"Generation params",class:"slider-container ml-0 mr-0",is_subcard:!0,isHorizontal:!1,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[S("div",bLn,[e[74]||(e[74]=S("h3",{class:"text-gray-600"},"Temperature",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[46]||(e[46]=h=>r.temperature=h),min:"0",max:"5",step:"0.1",class:"w-full"},null,512),[[Je,r.temperature]]),S("span",ELn,"Current value: "+J(r.temperature),1)]),S("div",SLn,[e[75]||(e[75]=S("h3",{class:"text-gray-600"},"Top K",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[47]||(e[47]=h=>r.top_k=h),min:"1",max:"100",step:"1",class:"w-full"},null,512),[[Je,r.top_k]]),S("span",xLn,"Current value: "+J(r.top_k),1)]),S("div",LLn,[e[76]||(e[76]=S("h3",{class:"text-gray-600"},"Top P",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[48]||(e[48]=h=>r.top_p=h),min:"0",max:"1",step:"0.1",class:"w-full"},null,512),[[Je,r.top_p]]),S("span",CLn,"Current value: "+J(r.top_p),1)]),S("div",ALn,[e[77]||(e[77]=S("h3",{class:"text-gray-600"},"Repeat Penalty",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[49]||(e[49]=h=>r.repeat_penalty=h),min:"0",max:"5",step:"0.1",class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.repeat_penalty]]),S("span",wLn,"Current value: "+J(r.repeat_penalty),1)]),S("div",OLn,[e[78]||(e[78]=S("h3",{class:"text-gray-600"},"Repeat Last N",-1)),Ce(S("input",{type:"range","onUpdate:modelValue":e[50]||(e[50]=h=>r.repeat_last_n=h),min:"0",max:"100",step:"1",class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.repeat_last_n]]),S("span",MLn,"Current value: "+J(r.repeat_last_n),1)]),S("div",RLn,[e[79]||(e[79]=S("h3",{class:"text-gray-600"},"Number of tokens to crop the text to",-1)),Ce(S("input",{type:"number","onUpdate:modelValue":e[51]||(e[51]=h=>r.n_crop=h),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.n_crop]]),S("span",NLn,"Current value: "+J(r.n_crop),1)]),S("div",DLn,[e[80]||(e[80]=S("h3",{class:"text-gray-600"},"Number of tokens to generate",-1)),Ce(S("input",{type:"number","onUpdate:modelValue":e[52]||(e[52]=h=>r.n_predicts=h),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.n_predicts]]),S("span",ILn,"Current value: "+J(r.n_predicts),1)]),S("div",kLn,[e[81]||(e[81]=S("h3",{class:"text-gray-600"},"Seed",-1)),Ce(S("input",{type:"number","onUpdate:modelValue":e[53]||(e[53]=h=>r.seed=h),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},null,512),[[Je,r.seed]]),S("span",HLn,"Current value: "+J(r.seed),1)])]),_:1})])):Z("",!0)])]),ne(T,{ref:"toast"},null,512)],64)}const $Ln=ze(nLn,[["render",PLn],["__scopeId","data-v-721d5f23"]]),VLn={data(){return{activeExtension:null}},computed:{activeExtensions(){return console.log(this.$store.state.extensionsZoo),console.log(bH(this.$store.state.extensionsZoo)),this.$store.state.extensionsZoo}},methods:{showExtensionPage(t){this.activeExtension=t}}},BLn={class:"container overflow-y-scroll flex flex-col shadow-lg p-10 pt-0 overflow-y-scroll w-full 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"},FLn={key:0},ULn=["onClick"],qLn={key:0},GLn=["src"],jLn={key:1};function zLn(t,e,n,o,r,i){return N(),H("div",BLn,[i.activeExtensions.length>0?(N(),H("div",FLn,[(N(!0),H(Ae,null,Ue(i.activeExtensions,s=>(N(),H("div",{key:s.name,onClick:a=>i.showExtensionPage(s)},[S("div",{class:Ee({"active-tab":s===r.activeExtension})},J(s.name),3)],8,ULn))),128)),r.activeExtension?(N(),H("div",qLn,[S("iframe",{src:r.activeExtension.page,width:"100%",height:"500px",frameborder:"0"},null,8,GLn)])):Z("",!0)])):(N(),H("div",jLn,e[0]||(e[0]=[S("p",null,"No extension is active. Please install and activate an extension.",-1)])))])}const YLn=ze(VLn,[["render",zLn],["__scopeId","data-v-dd0910af"]]),WLn={name:"HelpView",data(){return{helpSections:[],selectedSection:0}},computed:{selectedContent(){var e;return((e=this.helpSections[this.selectedSection])==null?void 0:e.content)||'

Select a topic from the sidebar to view help content.

'}},methods:{selectSection(t){this.selectedSection=t,be(()=>{Le.replace(),this.$el.querySelectorAll(".help-content pre code.hljs").forEach(e=>{})})},async loadMarkdownFile(t){try{const e=await fetch(`/help/${t}`);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=await e.text();return Et.setOptions({highlight:function(o,r){if(typeof hljs<"u"&&hljs.getLanguage(r))try{return`
${hljs.highlight(o,{language:r,ignoreIllegals:!0}).value}
`}catch{}return`
${o}
`},langPrefix:"hljs language-",pedantic:!1,gfm:!0,breaks:!1,sanitize:!1,smartLists:!0,smartypants:!1,xhtml:!1}),Et(n)}catch(e){return console.error("Error loading markdown file:",t,e),`

Error loading help content for ${t}. Please check the file exists in the public/help folder.

`}},async loadHelpSections(){const t=[{title:"About LoLLMs",file:"lollms-context.md"},{title:"Getting Started",file:"getting-started.md"},{title:"Uploading Files",file:"uploading-files.md"},{title:"Sending Images",file:"sending-images.md"},{title:"Using Code Interpreter",file:"code-interpreter.md"},{title:"Internet Search",file:"internet-search.md"},{title:"Text Generation",file:"text-generation.md"},{title:"Image Generation",file:"image-generation.md"},{title:"Music Generation",file:"music-generation.md"},{title:"Managing Personalities",file:"managing-personalities.md"},{title:"Troubleshooting",file:"troubleshooting.md"}],e=[];for(const n of t){const o=await this.loadMarkdownFile(n.file);e.push({title:n.title,content:o})}this.helpSections=e,this.helpSections.length>0&&this.selectSection(0)}},mounted(){this.loadHelpSections().then(()=>{be(()=>{Le.replace()})})},updated(){be(()=>{Le.replace()})}},KLn={class:"help-view background-color min-h-screen min-w-screen flex overflow-hidden"},ZLn={class:"help-left-bar w-72 panels-color shadow-lg fixed h-screen overflow-y-auto scrollbar transition-all duration-300 ease-in-out md:w-80 z-10"},XLn={class:"p-4 sm:p-6"},JLn={class:"space-y-2"},eCn=["onClick"],tCn={class:"main-content ml-72 md:ml-80 flex-1 overflow-y-auto h-screen scrollbar"},nCn={class:"p-6 sm:p-10 flex justify-center items-start"},rCn={class:"card w-full max-w-5xl mx-auto flex flex-col min-h-[calc(100vh-5rem)]"},iCn=["innerHTML"];function oCn(t,e,n,o,r,i){return N(),H("div",KLn,[S("div",ZLn,[S("div",XLn,[e[0]||(e[0]=S("h2",{class:"text-2xl font-semibold text-blue-700 dark:text-blue-200 mb-6 border-b border-blue-300 dark:border-blue-600 pb-2 flex items-center"},[S("i",{"data-feather":"folder",class:"w-5 h-5 mr-3 flex-shrink-0"}),S("span",null,"Help Topics")],-1)),S("ul",JLn,[(N(!0),H(Ae,null,Ue(r.helpSections,(s,a)=>(N(),H("li",{key:a},[S("a",{onClick:oe(l=>i.selectSection(a),["prevent"]),class:Ee(["nav-button","block w-full text-left","transition-all duration-200 ease-in-out",{"nav-button-active":r.selectedSection===a}]),href:"#",role:"button"},J(s.title),11,eCn)]))),128))])])]),S("div",tCn,[S("div",nCn,[S("div",rCn,[e[1]||(e[1]=S("h1",{class:"text-3xl md:text-4xl font-bold text-blue-800 dark:text-blue-100 mb-6 border-b border-blue-300 dark:border-blue-600 pb-3 flex items-center"},[S("i",{"data-feather":"help-circle",class:"w-7 h-7 mr-3 flex-shrink-0"}),S("span",null,"LoLLMs Help Center")],-1)),S("div",{class:"help-content flex-1 prose-blue max-w-none transition-opacity duration-300",innerHTML:i.selectedContent},null,8,iCn)])])])])}const sCn=ze(WLn,[["render",oCn]]),aCn={class:"p-4"},lCn={class:"list-none p-0 m-0"},cCn=["onClick"],uCn=["data-feather"],dCn={__name:"SettingsSidebar",props:{sections:{type:Array,required:!0},activeSection:{type:String,required:!0}},emits:["update:activeSection"],setup(t){return hr(()=>{be(()=>{Le.replace()})}),(e,n)=>(N(),H("nav",aCn,[n[0]||(n[0]=S("h2",{class:"text-lg font-semibold mb-4 px-2 theme-text-primary"},"Settings",-1)),S("ul",lCn,[(N(!0),H(Ae,null,Ue(t.sections,o=>(N(),H("li",{key:o.id,class:"mb-1"},[S("button",{onClick:r=>e.$emit("update:activeSection",o.id),class:Ee(["w-full flex items-center px-3 py-2 rounded-md text-sm font-medium transition-colors duration-150 focus:outline-none focus:ring-2 focus:ring-opacity-50",t.activeSection===o.id?"theme-bg-accent theme-text-accent-contrast shadow-sm":"theme-text-secondary hover:theme-bg-hover hover:theme-text-primary focus:theme-ring-accent"])},[S("i",{"data-feather":o.icon,class:"w-5 h-5 mr-3 flex-shrink-0"},null,8,uCn),S("span",null,J(o.name),1)],10,cCn)]))),128))])]))}},TCn=ze(dCn,[["__scopeId","data-v-6c0e2273"]]);function E2(t,e=!0,n=1){const o=e?1e3:1024;if(Math.abs(t)=o&&it+e.total_vram,0)},totalVramUsed(){return!this.vramUsage||!this.vramUsage.gpus?0:this.vramUsage.gpus.reduce((t,e)=>t+e.used_vram,0)},avgVramPercentage(){return!this.vramUsage||!this.vramUsage.gpus||this.vramUsage.gpus.length===0?"0.00":(this.vramUsage.gpus.reduce((e,n)=>e+n.percentage,0)/this.vramUsage.gpus.length).toFixed(2)}},methods:{async api_get_req(t){try{return(await fe.get(`/${t}`)).data}catch(e){return console.error(`API GET Error (${t}):`,e.message),null}},async api_post_req(t,e={}){try{const n={...e,client_id:this.$store.state.client_id};return(await fe.post(`/${t}`,n,{headers:mCn})).data}catch(n){return console.error(`API POST Error (${t}):`,n.message),{status:!1,error:n.message}}},computedFileSize(t){if(t==null||isNaN(t))return"N/A";try{return E2(t)}catch(e){return console.warn("Filesize calculation error:",e),"Error"}},async refreshHardwareUsage(){console.log("Refreshing hardware usage...");const[t,e,n]=await Promise.all([this.api_get_req("disk_usage"),this.api_get_req("ram_usage"),this.api_get_req("vram_usage")]);this.diskUsage=t,this.ramUsage=e,this.vramUsage=n,this.$nextTick(()=>{Le.replace()})},async handleFolderClick(t){if(!this.clientId){console.error("Client ID not available for handleFolderClick");return}const e={folder:t};try{const n=await this.api_post_req("open_personal_folder",e);n.status?(console.log(`Successfully opened folder: ${t}`),console.info(`Opened ${t.replace("-"," ")} folder`)):(console.error(`Failed to open folder: ${t}`,n.error),console.error(`Failed to open folder: ${n.error||"Unknown error"}`))}catch(n){console.error("Error calling open_personal_folder endpoint:",n),console.error(`Error opening folder: ${n.message}`)}},initializeClientId(){const t=localStorage.getItem("lollms_client_id");t?this.clientId=t:(this.clientId=`client_${Date.now()}_${Math.random().toString(16).substring(2,8)}`,localStorage.setItem("lollms_client_id",this.clientId),console.warn("Generated temporary client ID:",this.clientId))}},mounted(){this.initializeClientId(),this.refreshHardwareUsage(),this.refreshTimer=setInterval(this.refreshHardwareUsage,pCn),this.$nextTick(()=>{Le.replace()})},updated(){this.$nextTick(()=>{Le.replace()})},unmounted(){this.refreshTimer&&clearInterval(this.refreshTimer)}},_Cn={class:"user-settings-panel"},QCn={class:"flex justify-between items-center border-b border-blue-300 dark:border-blue-600 pb-2 mb-4"},vCn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 text-sm"},yCn={key:0,class:"flex items-center space-x-2 p-3 panels-color rounded-md shadow"},bCn=["src"],ECn={key:0,class:"flex-1"},SCn={class:"text-blue-600 dark:text-blue-300"},xCn={key:1,class:"flex-1"},LCn={class:"font-medium text-blue-800 dark:text-blue-100"},CCn={class:"text-xs text-blue-500 dark:text-blue-400"},ACn={key:1,class:"flex items-center space-x-2 p-3 panels-color rounded-md text-blue-500 dark:text-blue-400 shadow"},wCn={key:2,class:"flex items-center space-x-2 p-3 panels-color rounded-md shadow"},OCn={class:"flex-1"},MCn={class:"text-blue-600 dark:text-blue-300"},RCn={key:3,class:"flex items-center space-x-2 p-3 panels-color rounded-md text-blue-500 dark:text-blue-400 shadow"},NCn={key:4,class:"flex items-center space-x-2 p-3 panels-color rounded-md shadow"},DCn={class:"flex-1"},ICn={class:"text-blue-600 dark:text-blue-300"},kCn={key:5,class:"flex items-center space-x-2 p-3 panels-color rounded-md text-blue-500 dark:text-blue-400 shadow"},HCn={class:"space-y-4"},PCn={key:0,class:"p-4 border border-blue-300 dark:border-blue-600 rounded-md chatbox-color"},$Cn={class:"text-xs space-y-1 mb-2 text-blue-600 dark:text-blue-300"},VCn={class:"animated-progressbar-bg h-2.5"},BCn={key:1,class:"p-4 border border-blue-300 dark:border-blue-600 rounded-md chatbox-color"},FCn={class:"text-xs space-y-1 mb-2 text-blue-600 dark:text-blue-300"},UCn={class:"animated-progressbar-bg h-2.5"},qCn={key:2},GCn={class:"label flex items-center gap-1 mb-2"},jCn=["src"],zCn={class:"text-xs space-y-1 mb-2 text-blue-600 dark:text-blue-300"},YCn={class:"animated-progressbar-bg h-2.5"},WCn={key:3,class:"p-4 border border-dashed border-blue-300 dark:border-blue-600 rounded-md text-center text-blue-500 dark:text-blue-400 chatbox-color"},KCn={class:"pt-4 border-t border-blue-300 dark:border-blue-600"},ZCn={class:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4"};function XCn(t,e,n,o,r,i){return N(),H("div",_Cn,[S("div",QCn,[e[7]||(e[7]=S("h2",{class:"h2"}," System Status ",-1)),S("button",{onClick:e[0]||(e[0]=(...s)=>i.refreshHardwareUsage&&i.refreshHardwareUsage(...s)),title:"Refresh Status",class:"svg-button"},e[6]||(e[6]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4"},null,-1)]))]),S("div",vCn,[r.vramUsage&&r.vramUsage.gpus&&r.vramUsage.gpus.length>0?(N(),H("div",yCn,[S("img",{src:r.SVGGPU,width:"25",height:"25",class:"flex-shrink-0",alt:"GPU Icon"},null,8,bCn),r.vramUsage.gpus.length===1?(N(),H("div",ECn,[e[8]||(e[8]=S("div",{class:"font-medium text-blue-800 dark:text-blue-100"},"GPU VRAM",-1)),S("div",SCn,J(i.computedFileSize(r.vramUsage.gpus[0].used_vram))+" / "+J(i.computedFileSize(r.vramUsage.gpus[0].total_vram))+" ("+J(r.vramUsage.gpus[0].percentage)+"%)",1)])):(N(),H("div",xCn,[S("div",LCn,J(r.vramUsage.gpus.length)+"x GPUs",1),S("div",CCn,"Total: "+J(i.computedFileSize(i.totalVramUsed))+" / "+J(i.computedFileSize(i.totalVram))+" ("+J(i.avgVramPercentage)+"%)",1)]))])):(N(),H("div",ACn,e[9]||(e[9]=[S("i",{"data-feather":"alert-circle",class:"w-5 h-5"},null,-1),S("div",{class:"flex-1 font-medium"},"No GPU Detected",-1)]))),r.ramUsage?(N(),H("div",wCn,[e[11]||(e[11]=S("i",{"data-feather":"cpu",class:"w-5 h-5 text-blue-500 dark:text-blue-400 flex-shrink-0"},null,-1)),S("div",OCn,[e[10]||(e[10]=S("div",{class:"font-medium text-blue-800 dark:text-blue-100"},"CPU RAM",-1)),S("div",MCn,J(i.computedFileSize(r.ramUsage.ram_usage))+" / "+J(i.computedFileSize(r.ramUsage.total_space))+" ("+J(r.ramUsage.percent_usage)+"%)",1)])])):(N(),H("div",RCn,e[12]||(e[12]=[S("i",{"data-feather":"cpu",class:"w-5 h-5"},null,-1),S("div",{class:"flex-1 font-medium"},"RAM N/A",-1)]))),r.diskUsage?(N(),H("div",NCn,[e[14]||(e[14]=S("i",{"data-feather":"hard-drive",class:"w-5 h-5 text-green-500 dark:text-green-400 flex-shrink-0"},null,-1)),S("div",DCn,[e[13]||(e[13]=S("div",{class:"font-medium text-blue-800 dark:text-blue-100"},"Disk (Models/DB)",-1)),S("div",ICn,J(i.computedFileSize(r.diskUsage.binding_models_usage))+" / "+J(i.computedFileSize(r.diskUsage.total_space))+" ("+J(r.diskUsage.percent_usage)+"%)",1)])])):(N(),H("div",kCn,e[15]||(e[15]=[S("i",{"data-feather":"hard-drive",class:"w-5 h-5"},null,-1),S("div",{class:"flex-1 font-medium"},"Disk N/A",-1)])))]),S("div",HCn,[r.ramUsage?(N(),H("div",PCn,[e[18]||(e[18]=S("label",{class:"label flex items-center gap-1 mb-2"},[S("i",{"data-feather":"cpu",class:"w-4 h-4 text-blue-500 dark:text-blue-400"}),Oe(" CPU RAM Usage Details ")],-1)),S("div",$Cn,[S("div",null,[e[16]||(e[16]=S("b",null,"Available: ",-1)),Oe(J(i.computedFileSize(r.ramUsage.available_space)),1)]),S("div",null,[e[17]||(e[17]=S("b",null,"Usage: ",-1)),Oe(" "+J(i.computedFileSize(r.ramUsage.ram_usage))+" / "+J(i.computedFileSize(r.ramUsage.total_space))+" ("+J(r.ramUsage.percent_usage)+"%)",1)])]),S("div",VCn,[S("div",{class:"animated-progressbar-fg h-2.5 rounded-full",style:Jt({width:r.ramUsage.percent_usage+"%"})},null,4)])])):Z("",!0),r.diskUsage?(N(),H("div",BCn,[e[21]||(e[21]=S("label",{class:"label flex items-center gap-1 mb-2"},[S("i",{"data-feather":"hard-drive",class:"w-4 h-4 text-green-500 dark:text-green-400"}),Oe(" Disk Usage Details ")],-1)),S("div",FCn,[S("div",null,[e[19]||(e[19]=S("b",null,"Available: ",-1)),Oe(J(i.computedFileSize(r.diskUsage.available_space)),1)]),S("div",null,[e[20]||(e[20]=S("b",null,"Usage (Models/DB): ",-1)),Oe(" "+J(i.computedFileSize(r.diskUsage.binding_models_usage))+" / "+J(i.computedFileSize(r.diskUsage.total_space))+" ("+J(r.diskUsage.percent_usage)+"%)",1)])]),S("div",UCn,[S("div",{class:"animated-progressbar-fg h-2.5 rounded-full",style:Jt({width:r.diskUsage.percent_usage+"%"})},null,4)])])):Z("",!0),r.vramUsage&&r.vramUsage.gpus&&r.vramUsage.gpus.length>0?(N(),H("div",qCn,[(N(!0),H(Ae,null,Ue(r.vramUsage.gpus,(s,a)=>(N(),H("div",{key:a,class:"p-4 border border-blue-300 dark:border-blue-600 rounded-md mb-4 chatbox-color"},[S("label",GCn,[S("img",{src:r.SVGGPU,width:"20",height:"20",class:"flex-shrink-0",alt:"GPU Icon"},null,8,jCn),Oe(" GPU "+J(a+1)+" Usage Details ",1)]),S("div",zCn,[S("div",null,[e[22]||(e[22]=S("b",null,"Model: ",-1)),Oe(J(s.gpu_model),1)]),S("div",null,[e[23]||(e[23]=S("b",null,"Available VRAM: ",-1)),Oe(J(i.computedFileSize(s.available_space)),1)]),S("div",null,[e[24]||(e[24]=S("b",null,"Usage: ",-1)),Oe(" "+J(i.computedFileSize(s.used_vram))+" / "+J(i.computedFileSize(s.total_vram))+" ("+J(s.percentage)+"%)",1)])]),S("div",YCn,[S("div",{class:"animated-progressbar-fg h-2.5 rounded-full",style:Jt({width:s.percentage+"%"})},null,4)])]))),128))])):(N(),H("div",WCn," No GPU detected or VRAM information unavailable. "))]),S("div",KCn,[e[30]||(e[30]=S("h3",{class:"h3"},"Common Folders",-1)),S("div",ZCn,[S("div",{class:"folder-item-base folder-item-personalities group",onClick:e[1]||(e[1]=s=>i.handleFolderClick("custom-personalities")),title:"Open Custom Personalities folder"},e[25]||(e[25]=[S("i",{"data-feather":"users",class:"folder-item-icon folder-item-icon-personalities"},null,-1),S("span",{class:"folder-item-label"},"Custom Personalities",-1)])),S("div",{class:"folder-item-base folder-item-functions group",onClick:e[2]||(e[2]=s=>i.handleFolderClick("custom-function-calls")),title:"Open Custom Function Calls folder"},e[26]||(e[26]=[S("i",{"data-feather":"tool",class:"folder-item-icon folder-item-icon-functions"},null,-1),S("span",{class:"folder-item-label"},"Custom Functions",-1)])),S("div",{class:"folder-item-base folder-item-configs group",onClick:e[3]||(e[3]=s=>i.handleFolderClick("configurations")),title:"Open Configurations folder"},e[27]||(e[27]=[S("i",{"data-feather":"settings",class:"folder-item-icon folder-item-icon-configs"},null,-1),S("span",{class:"folder-item-label"},"Configurations",-1)])),S("div",{class:"folder-item-base folder-item-outputs group",onClick:e[4]||(e[4]=s=>i.handleFolderClick("ai-outputs")),title:"Open AI Outputs folder"},e[28]||(e[28]=[S("i",{"data-feather":"gift",class:"folder-item-icon folder-item-icon-outputs"},null,-1),S("span",{class:"folder-item-label"},"AI Outputs",-1)])),S("div",{class:"folder-item-base folder-item-discussions group",onClick:e[5]||(e[5]=s=>i.handleFolderClick("discussions")),title:"Open Discussions folder"},e[29]||(e[29]=[S("i",{"data-feather":"message-square",class:"folder-item-icon folder-item-icon-discussions"},null,-1),S("span",{class:"folder-item-label"},"Discussions",-1)]))])])])}const LO=ze(gCn,[["render",XCn],["__scopeId","data-v-09d1f933"]]),JCn={name:"DictionaryManager",props:{modelValue:{type:Object,default:()=>({})},keyName:{type:String,default:"Key"},valueName:{type:String,default:"Value"}},emits:["update:modelValue","change"],data(){return{newKey:"",newValue:"",draggingKey:null}},methods:{addItem(){if(this.newKey.trim()){const t={...this.modelValue};t[this.newKey.trim()]=this.newValue,this.$emit("update:modelValue",t),this.$emit("change"),this.newKey="",this.newValue=""}},removeItem(t){const e={...this.modelValue};delete e[t],this.$emit("update:modelValue",e),this.$emit("change")},removeAll(){this.$emit("update:modelValue",{}),this.$emit("change")},updateKey(t,e){if(e.trim()&&e!==t){const n={...this.modelValue};n[e.trim()]=n[t],delete n[t],this.$emit("update:modelValue",n),this.$emit("change")}},updateValue(t,e){const n={...this.modelValue};n[t]=e,this.$emit("update:modelValue",n),this.$emit("change")},moveUp(t){const e=Object.keys(this.modelValue),n=e.indexOf(t);if(n>0){const o={};e.forEach((r,i)=>{i===n-1&&(o[t]=this.modelValue[t]),r!==t&&(o[r]=this.modelValue[r])}),this.$emit("update:modelValue",o),this.$emit("change")}},moveDown(t){const e=Object.keys(this.modelValue),n=e.indexOf(t);if(n{r!==t&&(o[r]=this.modelValue[r]),i===n+1&&(o[t]=this.modelValue[t])}),this.$emit("update:modelValue",o),this.$emit("change")}}}},eAn={class:"max-w-4xl mx-auto p-4"},tAn={class:"flex flex-col sm:flex-row mb-4 gap-2"},nAn=["placeholder"],rAn=["placeholder"],iAn={key:0,class:"space-y-4"},oAn={class:"flex-grow mb-2 sm:mb-0 sm:mr-4 w-full sm:w-auto"},sAn=["for"],aAn=["id","value","onInput"],lAn={class:"flex-grow mb-2 sm:mb-0 sm:mr-4 w-full sm:w-auto"},cAn=["for"],uAn=["id","value","onInput"],dAn={class:"flex items-center space-x-2"},TAn=["onClick"],fAn=["onClick"],pAn=["onClick"],hAn={key:1,class:"mt-6"};function mAn(t,e,n,o,r,i){return N(),H("div",eAn,[S("div",tAn,[Ce(S("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=s=>r.newKey=s),placeholder:n.keyName,onKeyup:e[1]||(e[1]=Qn((...s)=>i.addItem&&i.addItem(...s),["enter"])),class:"flex-grow px-4 py-2 border border-gray-300 rounded dark:bg-gray-700 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,nAn),[[Je,r.newKey]]),Ce(S("input",{type:"text","onUpdate:modelValue":e[2]||(e[2]=s=>r.newValue=s),placeholder:n.valueName,onKeyup:e[3]||(e[3]=Qn((...s)=>i.addItem&&i.addItem(...s),["enter"])),class:"flex-grow px-4 py-2 border border-gray-300 rounded dark:bg-gray-700 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,rAn),[[Je,r.newValue]]),S("button",{onClick:e[4]||(e[4]=(...s)=>i.addItem&&i.addItem(...s)),class:"bg-blue-500 text-white px-6 py-2 rounded hover:bg-blue-600 text-lg transition duration-300 ease-in-out"},"Add")]),Object.keys(n.modelValue).length>0?(N(),H("ul",iAn,[(N(!0),H(Ae,null,Ue(n.modelValue,(s,a)=>(N(),H("li",{key:a,class:Ee(["flex flex-col sm:flex-row items-center p-4 bg-white dark:bg-gray-800 rounded-lg shadow-md hover:shadow-lg transition duration-300 ease-in-out",{"bg-gray-100 dark:bg-gray-700":r.draggingKey===a}])},[S("div",oAn,[S("label",{for:"key-"+a,class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},J(n.keyName),9,sAn),S("input",{id:"key-"+a,value:a,onInput:l=>i.updateKey(a,l.target.value),class:"w-full px-3 py-2 border border-gray-300 rounded dark:bg-gray-600 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,aAn)]),S("div",lAn,[S("label",{for:"value-"+a,class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},J(n.valueName),9,cAn),S("input",{id:"value-"+a,value:s,onInput:l=>i.updateValue(a,l.target.value),class:"w-full px-3 py-2 border border-gray-300 rounded dark:bg-gray-600 dark:text-white text-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"},null,40,uAn)]),S("div",dAn,[S("button",{onClick:l=>i.removeItem(a),class:"text-red-500 hover:text-red-700 p-2 rounded-full hover:bg-red-100 dark:hover:bg-red-900 transition duration-300 ease-in-out"},e[6]||(e[6]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",viewBox:"0 0 20 20",fill:"currentColor"},[S("path",{"fill-rule":"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)]),8,TAn),S("button",{onClick:l=>i.moveUp(a),class:"bg-gray-200 dark:bg-gray-600 hover:bg-gray-300 dark:hover:bg-gray-500 p-2 rounded-full transition duration-300 ease-in-out"},e[7]||(e[7]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",viewBox:"0 0 20 20",fill:"currentColor"},[S("path",{"fill-rule":"evenodd",d:"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z","clip-rule":"evenodd"})],-1)]),8,fAn),S("button",{onClick:l=>i.moveDown(a),class:"bg-gray-200 dark:bg-gray-600 hover:bg-gray-300 dark:hover:bg-gray-500 p-2 rounded-full transition duration-300 ease-in-out"},e[8]||(e[8]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",viewBox:"0 0 20 20",fill:"currentColor"},[S("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)]),8,pAn)])],2))),128))])):Z("",!0),Object.keys(n.modelValue).length>0?(N(),H("div",hAn,[S("button",{onClick:e[5]||(e[5]=(...s)=>i.removeAll&&i.removeAll(...s)),class:"bg-red-500 text-white px-6 py-2 rounded hover:bg-red-600 text-lg transition duration-300 ease-in-out"},"Remove All")])):Z("",!0)])}const gAn=ze(JCn,[["render",mAn]]),_An={name:"SmartRoutingConfig",components:{DictManager:gAn},props:{loading:{type:Boolean,default:!1},settingsChanged:{type:Boolean,default:!1}},emits:["update:setting","settings-changed"],computed:{useSmartRouting(){return this.$store.state.config.use_smart_routing},restoreModelAfterRouting(){return this.$store.state.config.restore_model_after_smart_routing},routerModel(){return this.$store.state.config.smart_routing_router_model},modelsDescription(){return this.$store.state.config.smart_routing_models_description||{}}},methods:{updateValue(t,e){this.$emit("update:setting",{key:t,value:e}),this.settingsChanged!==void 0&&this.$emit("settings-changed",!0)},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e}),this.settingsChanged!==void 0&&this.$emit("settings-changed",!0)}}},QAn={class:"user-settings-panel space-y-6"},vAn={class:"space-y-4"},yAn={class:"toggle-item border-t border-blue-200 dark:border-blue-700 pt-3 mt-2"},bAn=["value","disabled"];function EAn(t,e,n,o,r,i){const s=We("ToggleSwitch"),a=We("DictManager");return N(),H("div",QAn,[e[8]||(e[8]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Smart Routing Configuration ",-1)),S("div",vAn,[S("div",yAn,[e[4]||(e[4]=S("label",{for:"use_smart_routing",class:"toggle-label"},[Oe(" Enable Smart Routing "),S("span",{class:"toggle-description"}," Allow LoLLMs to automatically select the best model for a given task based on descriptions. ")],-1)),ne(s,{id:"use_smart_routing",checked:i.useSmartRouting,"onUpdate:checked":e[0]||(e[0]=l=>i.updateBoolean("use_smart_routing",l))},null,8,["checked"])]),S("div",{class:Ee(["toggle-item border-t border-blue-200 dark:border-blue-700 pt-3 mt-2",i.useSmartRouting?"":"opacity-50 pointer-events-none"])},[e[5]||(e[5]=S("label",{for:"restore_model_after_smart_routing",class:"toggle-label"},[Oe(" Restore Original Model After Routing "),S("span",{class:"toggle-description"}," Automatically switch back to the originally selected model after the routed task is complete. ")],-1)),ne(s,{id:"restore_model_after_smart_routing",checked:i.restoreModelAfterRouting,"onUpdate:checked":e[1]||(e[1]=l=>i.updateBoolean("restore_model_after_smart_routing",l)),disabled:!i.useSmartRouting},null,8,["checked","disabled"])],2),S("div",{class:Ee(["setting-item border-t border-blue-200 dark:border-blue-700 pt-3 mt-2",i.useSmartRouting?"":"opacity-50 pointer-events-none"])},[e[6]||(e[6]=S("label",{for:"smart_routing_router_model",class:"setting-label"},[Oe(" Router Model Name "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"}," The model responsible for deciding which specialized model to use. (e.g., `mistralai/Mistral-7B-Instruct-v0.2`) ")],-1)),S("input",{type:"text",id:"smart_routing_router_model",value:i.routerModel,onInput:e[2]||(e[2]=l=>i.updateValue("smart_routing_router_model",l.target.value)),disabled:!i.useSmartRouting,class:"input flex-grow",placeholder:"Enter the router model name"},null,40,bAn)],2),S("div",{class:Ee(["space-y-2 border-t border-blue-200 dark:border-blue-700 pt-3 mt-2",i.useSmartRouting?"":"opacity-50 pointer-events-none"])},[e[7]||(e[7]=S("label",{class:"label mb-1"},[Oe(" Specialized Models & Descriptions "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"}," Define the models that the router can choose from and provide a clear description of their capabilities. ")],-1)),ne(a,{modelValue:i.modelsDescription,"onUpdate:modelValue":e[3]||(e[3]=l=>i.updateValue("smart_routing_models_description",l)),"key-name":"Model Path / Name","value-name":"Model Description (Task Capabilities)","key-placeholder":"Enter model name (e.g., openai/gpt-4) or path","value-placeholder":"Describe what this model is good at (e.g., 'Excellent for coding tasks and complex reasoning')",disabled:!i.useSmartRouting,class:"flex-grow panels-color p-2 rounded"},null,8,["modelValue","disabled"])],2)])])}const CO=ze(_An,[["render",EAn],["__scopeId","data-v-29a3f94a"]]),SAn=["for"],xAn=["id","checked","disabled"],LAn={__name:"ToggleSwitch",props:{id:{type:String,required:!0},checked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:checked"],setup(t){return(e,n)=>(N(),H("label",{for:t.id,class:Ee(["relative inline-flex items-center cursor-pointer",{"opacity-50 cursor-not-allowed":t.disabled}])},[S("input",{type:"checkbox",id:t.id,checked:t.checked,disabled:t.disabled,onChange:n[0]||(n[0]=o=>e.$emit("update:checked",o.target.checked)),class:"sr-only peer"},null,40,xAn),n[1]||(n[1]=S("div",{class:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600"},null,-1)),_n(e.$slots,"default",{},void 0,!0)],10,SAn))}},n6=ze(LAn,[["__scopeId","data-v-8b2e5a8e"]]),Wi="/assets/logo-6TyToX4A.png",CAn={name:"MainConfigSettings",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1},settingsChanged:{type:Boolean,default:!1},api_post_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["update:setting","settings-changed"],data(){return{isUploadingLogo:!1,showAddThinkingPresetForm:!1,thinkingPresets:[],localThinkingPresets:[],newPreset:{name:"",description:"",author:"",prompt:""},selectedPresetName:""}},computed:{logoSrc(){if(this.$store.state.config.app_custom_logo){const t=(fe.defaults.baseURL||"").replace(/\/$/,""),e=(this.$store.state.config.app_custom_logo||"").replace(/^\//,"");return`${t}/user_infos/${e}`}return Wi},full_template(){if(!this.$store.state.config)return"";const t=this.$store.state.config;return[t.start_header_id_template,t.system_message_template,t.end_header_id_template," system message",t.separator_template,t.start_user_header_id_template,"user name",t.end_user_header_id_template," User prompt",t.separator_template,t.end_user_message_id_template,t.separator_template,t.start_ai_header_id_template,"ai personality",t.end_ai_header_id_template,"ai response",t.end_ai_message_id_template].map(n=>n||"").join("").replace(/\n/g,"
")},allThinkingPresets(){const t=[...this.localThinkingPresets],e=new Set(this.localThinkingPresets.map(n=>n.name));return this.thinkingPresets.forEach(n=>{e.has(n.name)||t.push(n)}),t.sort((n,o)=>n.name.localeCompare(o.name))}},methods:{updateValue(t,e){this.$emit("update:setting",{key:t,value:e}),this.$emit("settings-changed",!0),t==="thinking_prompt"&&(this.selectedPresetName="")},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e}),this.$emit("settings-changed",!0)},async uploadLogo(t){var o,r;const e=t.target.files[0];if(!e)return;this.isUploadingLogo=!0;const n=new FormData;n.append("logo",e),n.append("client_id",this.client_id);try{const i=await fe.post("/upload_logo",n,{headers:{"Content-Type":"multipart/form-data"}});i.data&&i.data.status?(this.show_toast("Logo uploaded successfully!",4,!0),this.$emit("update:setting",{key:"app_custom_logo",value:i.data.filename}),this.$emit("settings-changed",!0)):this.show_toast(`Logo upload failed: ${i.data.error||"Unknown error"}`,4,!1)}catch(i){console.error("Error uploading logo:",i),this.show_toast(`Error uploading logo: ${((r=(o=i.response)==null?void 0:o.data)==null?void 0:r.error)||i.message||"Unknown error"}`,4,!1)}finally{this.isUploadingLogo=!1,t.target&&(t.target.value=null)}},async removeLogo(){var t,e;this.isUploadingLogo=!0;try{const n=await this.api_post_req("/remove_logo",{client_id:this.client_id});n.status?(this.show_toast("Logo removed successfully!",4,!0),this.$emit("update:setting",{key:"app_custom_logo",value:null}),this.$emit("settings-changed",!0)):this.show_toast(`Failed to remove logo: ${n.error||"Unknown error"}`,4,!1)}catch(n){console.error("Error removing logo:",n),this.show_toast(`Error removing logo: ${((e=(t=n.response)==null?void 0:t.data)==null?void 0:e.error)||n.message||"Unknown error"}`,4,!1)}finally{this.isUploadingLogo=!1}},handleTemplateSelection(t){const e=t.target.value;let n={};e==="lollms"?n={start_header_id_template:"!@>",system_message_template:"system",end_header_id_template:": ",separator_template:` `,start_user_header_id_template:"!@>",end_user_header_id_template:": ",end_user_message_id_template:"",start_ai_header_id_template:"!@>",end_ai_header_id_template:": ",end_ai_message_id_template:""}:e==="lollms_simplified"?n={start_header_id_template:"@>",system_message_template:"system",end_header_id_template:": ",separator_template:` `,start_user_header_id_template:"@>",end_user_header_id_template:": ",end_user_message_id_template:"",start_ai_header_id_template:"@>",end_ai_header_id_template:": ",end_ai_message_id_template:""}:e==="bare"?n={start_header_id_template:"",system_message_template:"system",end_header_id_template:": ",separator_template:` `,start_user_header_id_template:"",end_user_header_id_template:": ",end_user_message_id_template:"",start_ai_header_id_template:"",end_ai_header_id_template:": ",end_ai_message_id_template:""}:e==="llama3"?n={start_header_id_template:"<|start_header_id|>",system_message_template:"system",end_header_id_template:"<|end_header_id|>",separator_template:"<|eot_id|>",start_user_header_id_template:"<|start_header_id|>",end_user_header_id_template:"<|end_header_id|>",end_user_message_id_template:"",start_ai_header_id_template:"<|start_header_id|>",end_ai_header_id_template:"<|end_header_id|>",end_ai_message_id_template:""}:e==="lucie"?n={start_header_id_template:"<|start_header_id|>",system_message_template:"system",end_header_id_template:`<|end_header_id|> @@ -253,20 +253,20 @@ Please report this to https://github.com/markedjs/marked.`,e){const r="

An err `,end_user_message_id_template:"",start_ai_header_id_template:"Assistant: ",end_ai_header_id_template:` `,end_ai_message_id_template:"<|end_of_sentence|>"}),Object.entries(n).forEach(([o,r])=>{this.$emit("update:setting",{key:o,value:r})}),this.$emit("settings-changed",!0)},async loadThinkingPresets(){this.loadLocalPresets();try{const t=await fe.post("/get_thinking_methods",{client_id:this.client_id});if(t.data.status==="success"){this.thinkingPresets=t.data.thinking_methods;const e=this.$store.state.config.thinking_prompt,n=this.allThinkingPresets.find(o=>o.prompt===e);this.selectedPresetName=n?n.name:""}else console.error("Failed to load thinking methods from backend:",t.data.error)}catch(t){console.error("Error loading thinking methods:",t),this.show_toast("Failed to load thinking methods from server.",4,!1)}},loadLocalPresets(){const t=localStorage.getItem("localThinkingPresets");if(t)try{this.localThinkingPresets=JSON.parse(t)}catch(e){console.error("Failed to parse local thinking presets:",e),localStorage.removeItem("localThinkingPresets"),this.localThinkingPresets=[]}else this.localThinkingPresets=[]},saveLocalPresets(){try{localStorage.setItem("localThinkingPresets",JSON.stringify(this.localThinkingPresets))}catch(t){console.error("Failed to save local thinking presets:",t),this.show_toast("Could not save the new preset locally.",4,!1)}},selectPreset(t){if(!t)return;const e=this.allThinkingPresets.find(n=>n.name===t);e&&(this.$emit("update:setting",{key:"thinking_prompt",value:e.prompt}),this.selectedPresetName=e.name,this.$emit("settings-changed",!0))},saveNewPreset(){if(!this.newPreset.name||!this.newPreset.description||!this.newPreset.author||!this.newPreset.prompt){this.show_toast("Please fill in all fields for the new preset.",4,!1);return}let t=this.newPreset.prompt.trim();t.startsWith("")||(t=` ${t}`),t.endsWith("")||(t=`${t} -`);const e={name:this.newPreset.name.trim(),description:this.newPreset.description.trim(),author:this.newPreset.author.trim(),prompt:t,isLocal:!0};if(this.allThinkingPresets.find(o=>o.name.toLowerCase()===e.name.toLowerCase())){this.show_toast("A preset with this name already exists. Please choose a different name.",4,!1);return}this.localThinkingPresets.push(e),this.saveLocalPresets(),this.show_toast("New thinking preset added successfully.",4,!0),this.$nextTick(()=>{this.selectPreset(e.name)}),this.newPreset={name:"",description:"",author:"",prompt:""},this.showAddThinkingPresetForm=!1,this.$emit("settings-changed",!0)},replaceFeatherIcons(){be(()=>{try{Le.replace()}catch(t){console.error("Feather icons replacement failed:",t)}})}},mounted(){this.replaceFeatherIcons(),this.loadThinkingPresets()},updated(){this.replaceFeatherIcons()}},CAn={class:"user-settings-panel space-y-6"},AAn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},wAn={class:"setting-item"},OAn=["value"],MAn={class:"setting-item"},RAn=["value"],NAn={class:"setting-item items-start"},DAn={class:"flex-1 flex items-center gap-4"},IAn={class:"w-12 h-12 rounded-full overflow-hidden bg-blue-200 dark:bg-blue-700 ring-2 ring-offset-2 dark:ring-offset-blue-900 ring-blue-300 dark:ring-blue-600"},kAn=["src"],HAn={class:"flex gap-2"},PAn={class:"btn btn-secondary btn-sm cursor-pointer"},$An=["disabled"],VAn=["disabled"],BAn={key:0,class:"text-xs text-blue-500 dark:text-blue-400 italic ml-2"},FAn={class:"setting-item items-start"},UAn=["value"],qAn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},GAn={class:"toggle-item"},jAn={class:"toggle-item"},zAn={class:"toggle-item"},YAn={class:"toggle-item"},WAn={class:"toggle-item"},KAn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},ZAn={class:"setting-item items-start p-4 bg-red-100 dark:bg-red-900/30 rounded-lg border border-red-300 dark:border-red-700"},XAn={class:"flex justify-between items-start w-full"},JAn={class:"toggle-item"},ewn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},twn={class:"grid gap-6 bg-white dark:bg-gray-800 p-6 rounded-lg shadow-md border border-gray-200 dark:border-gray-600"},nwn={class:"setting-item"},rwn={class:"grid md:grid-cols-2 gap-4"},iwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},own=["value"],swn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},awn=["value"],lwn={class:"grid md:grid-cols-2 gap-4"},cwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},uwn=["value"],dwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},Twn=["value"],fwn={class:"grid md:grid-cols-2 gap-4"},pwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},hwn=["value"],mwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},gwn=["value"],_wn={class:"grid md:grid-cols-2 gap-4"},Qwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},vwn=["value"],ywn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},bwn=["value"],Ewn={class:"setting-item items-start"},Swn=["value"],xwn={class:"setting-item"},Lwn=["value"],Cwn={class:"setting-item items-start"},Awn={class:"p-4 bg-gray-100 dark:bg-gray-900 rounded-md flex-grow border border-gray-200 dark:border-gray-700 overflow-x-auto text-sm"},wwn=["innerHTML"],Own={class:"toggle-item"},Mwn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},Rwn={class:"grid gap-6 bg-white dark:bg-gray-800 p-6 rounded-lg shadow-md border border-gray-200 dark:border-gray-600"},Nwn={class:"space-y-4"},Dwn={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 mb-2"},Iwn={class:"flex items-center gap-2 flex-wrap"},kwn=["selected"],Hwn=["value","selected"],Pwn=["value"],$wn={key:0,class:"mt-4 p-4 border border-gray-300 dark:border-gray-600 rounded-lg bg-gray-50 dark:bg-gray-700 space-y-4"},Vwn={class:"setting-item !py-0"},Bwn={class:"setting-item !py-0"},Fwn={class:"setting-item !py-0"},Uwn={class:"setting-item !py-0 items-start"};function qwn(t,e,n,o,r,i){const s=We("ToggleSwitch");return N(),H("div",CAn,[e[70]||(e[70]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Main Configuration ",-1)),S("div",AAn,[e[37]||(e[37]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Application Branding",-1)),S("div",wAn,[e[32]||(e[32]=S("label",{for:"app_custom_name",class:"setting-label"},"Application Name",-1)),S("input",{type:"text",id:"app_custom_name",value:t.$store.state.config.app_custom_name,onInput:e[0]||(e[0]=a=>i.updateValue("app_custom_name",a.target.value)),class:"input flex-grow",placeholder:"Default: LoLLMs"},null,40,OAn)]),S("div",MAn,[e[33]||(e[33]=S("label",{for:"app_custom_slogan",class:"setting-label"},"Application Slogan",-1)),S("input",{type:"text",id:"app_custom_slogan",value:t.$store.state.config.app_custom_slogan,onInput:e[1]||(e[1]=a=>i.updateValue("app_custom_slogan",a.target.value)),class:"input flex-grow",placeholder:"Default: Lord of Large Language Models"},null,40,RAn)]),S("div",NAn,[e[35]||(e[35]=S("label",{class:"setting-label pt-2"},"Application Logo",-1)),S("div",DAn,[S("div",IAn,[S("img",{src:i.logoSrc,class:"w-full h-full object-cover",alt:"App Logo"},null,8,kAn)]),S("div",HAn,[S("label",PAn,[e[34]||(e[34]=Oe(" Upload Logo ")),S("input",{type:"file",onChange:e[2]||(e[2]=(...a)=>i.uploadLogo&&i.uploadLogo(...a)),accept:"image/*",class:"hidden",disabled:r.isUploadingLogo},null,40,$An)]),t.$store.state.config.app_custom_logo?(N(),H("button",{key:0,onClick:e[3]||(e[3]=(...a)=>i.removeLogo&&i.removeLogo(...a)),class:"btn btn-secondary btn-sm text-red-500 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-700",disabled:r.isUploadingLogo}," Remove Logo ",8,VAn)):Z("",!0)]),r.isUploadingLogo?(N(),H("span",BAn,"Uploading...")):Z("",!0)])]),S("div",FAn,[e[36]||(e[36]=S("label",{for:"app_custom_welcome_message",class:"setting-label pt-2"},"Custom Welcome Message",-1)),S("textarea",{id:"app_custom_welcome_message",value:t.$store.state.config.app_custom_welcome_message,onInput:e[4]||(e[4]=a=>i.updateValue("app_custom_welcome_message",a.target.value)),class:"input flex-grow min-h-[80px] resize-y",placeholder:"Enter a custom welcome message shown on the main page (leave blank for default)."},null,40,UAn)])]),S("div",qAn,[e[43]||(e[43]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"UI & Behavior",-1)),S("div",GAn,[e[38]||(e[38]=S("label",{for:"auto_title",class:"toggle-label"},[Oe(" Automatic Discussion Naming "),S("span",{class:"toggle-description"},"Let AI name your discussions automatically based on the first message.")],-1)),ne(s,{id:"auto_title",checked:t.$store.state.config.auto_title,"onUpdate:checked":e[5]||(e[5]=a=>i.updateBoolean("auto_title",a))},null,8,["checked"])]),S("div",jAn,[e[39]||(e[39]=S("label",{for:"auto_show_browser",class:"toggle-label"},[Oe(" Auto-launch Browser "),S("span",{class:"toggle-description"},"Open the default web browser automatically when LoLLMs starts.")],-1)),ne(s,{id:"auto_show_browser",checked:t.$store.state.config.auto_show_browser,"onUpdate:checked":e[6]||(e[6]=a=>i.updateBoolean("auto_show_browser",a))},null,8,["checked"])]),S("div",zAn,[e[40]||(e[40]=S("label",{for:"app_show_changelogs",class:"toggle-label"},[Oe(" Show Startup Changelog "),S("span",{class:"toggle-description"},"Display the changelog modal window when the application starts after an update.")],-1)),ne(s,{id:"app_show_changelogs",checked:t.$store.state.config.app_show_changelogs,"onUpdate:checked":e[7]||(e[7]=a=>i.updateBoolean("app_show_changelogs",a))},null,8,["checked"])]),S("div",YAn,[e[41]||(e[41]=S("label",{for:"app_show_fun_facts",class:"toggle-label"},[Oe(" Show Fun Facts "),S("span",{class:"toggle-description"},"Display fun facts related to AI and LLMs while loading or waiting.")],-1)),ne(s,{id:"app_show_fun_facts",checked:t.$store.state.config.app_show_fun_facts,"onUpdate:checked":e[8]||(e[8]=a=>i.updateBoolean("app_show_fun_facts",a))},null,8,["checked"])]),S("div",WAn,[e[42]||(e[42]=S("label",{for:"copy_to_clipboard_add_all_details",class:"toggle-label"},[Oe(" Enhanced Message Copy "),S("span",{class:"toggle-description"},"Include metadata (sender, model, etc.) when copying messages from discussions.")],-1)),ne(s,{id:"copy_to_clipboard_add_all_details",checked:t.$store.state.config.copy_to_clipboard_add_all_details,"onUpdate:checked":e[9]||(e[9]=a=>i.updateBoolean("copy_to_clipboard_add_all_details",a))},null,8,["checked"])])]),S("div",KAn,[e[46]||(e[46]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Server & Access",-1)),S("div",ZAn,[S("div",XAn,[e[44]||(e[44]=tr('

Warning: Enabling this allows connections from any device on your network (or potentially the internet if port-forwarded). Only enable if you understand the risks and have secured your network.

',1)),ne(s,{id:"force_accept_remote_access",checked:t.$store.state.config.force_accept_remote_access,"onUpdate:checked":e[10]||(e[10]=a=>i.updateBoolean("force_accept_remote_access",a))},null,8,["checked"])])]),S("div",JAn,[e[45]||(e[45]=S("label",{for:"headless_server_mode",class:"toggle-label"},[Oe(" Headless Server Mode "),S("span",{class:"toggle-description"},"Run LoLLMs without the Web UI. Useful for server deployments or API-only usage. This setting requires a restart.")],-1)),ne(s,{id:"headless_server_mode",checked:t.$store.state.config.headless_server_mode,"onUpdate:checked":e[11]||(e[11]=a=>i.updateBoolean("headless_server_mode",a))},null,8,["checked"])])]),S("div",ewn,[e[61]||(e[61]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Model Template Configuration",-1)),S("div",twn,[S("div",nwn,[e[48]||(e[48]=S("label",{for:"template_type_select",class:"setting-label"},"Template Type",-1)),S("select",{id:"template_type_select",onChange:e[12]||(e[12]=(...a)=>i.handleTemplateSelection&&i.handleTemplateSelection(...a)),class:"input form-select flex-grow"},e[47]||(e[47]=[tr('',7)]),32)]),S("div",rwn,[S("div",iwn,[e[49]||(e[49]=S("label",{for:"start_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"Start Header Template",-1)),S("input",{type:"text",id:"start_header_id_template",value:t.$store.state.config.start_header_id_template,onInput:e[13]||(e[13]=a=>i.updateValue("start_header_id_template",a.target.value)),class:"input flex-grow"},null,40,own)]),S("div",swn,[e[50]||(e[50]=S("label",{for:"end_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"End Header Template",-1)),S("input",{type:"text",id:"end_header_id_template",value:t.$store.state.config.end_header_id_template,onInput:e[14]||(e[14]=a=>i.updateValue("end_header_id_template",a.target.value)),class:"input flex-grow"},null,40,awn)])]),S("div",lwn,[S("div",cwn,[e[51]||(e[51]=S("label",{for:"start_user_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"Start User Header Template",-1)),S("input",{type:"text",id:"start_user_header_id_template",value:t.$store.state.config.start_user_header_id_template,onInput:e[15]||(e[15]=a=>i.updateValue("start_user_header_id_template",a.target.value)),class:"input flex-grow"},null,40,uwn)]),S("div",dwn,[e[52]||(e[52]=S("label",{for:"end_user_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"End User Header Template",-1)),S("input",{type:"text",id:"end_user_header_id_template",value:t.$store.state.config.end_user_header_id_template,onInput:e[16]||(e[16]=a=>i.updateValue("end_user_header_id_template",a.target.value)),class:"input flex-grow"},null,40,Twn)])]),S("div",fwn,[S("div",pwn,[e[53]||(e[53]=S("label",{for:"start_ai_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"Start AI Header Template",-1)),S("input",{type:"text",id:"start_ai_header_id_template",value:t.$store.state.config.start_ai_header_id_template,onInput:e[17]||(e[17]=a=>i.updateValue("start_ai_header_id_template",a.target.value)),class:"input flex-grow"},null,40,hwn)]),S("div",mwn,[e[54]||(e[54]=S("label",{for:"end_ai_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"End AI Header Template",-1)),S("input",{type:"text",id:"end_ai_header_id_template",value:t.$store.state.config.end_ai_header_id_template,onInput:e[18]||(e[18]=a=>i.updateValue("end_ai_header_id_template",a.target.value)),class:"input flex-grow"},null,40,gwn)])]),S("div",_wn,[S("div",Qwn,[e[55]||(e[55]=S("label",{for:"end_user_message_id_template",class:"setting-label !w-auto md:!w-1/3"},"End User Message Template",-1)),S("input",{type:"text",id:"end_user_message_id_template",value:t.$store.state.config.end_user_message_id_template,onInput:e[19]||(e[19]=a=>i.updateValue("end_user_message_id_template",a.target.value)),class:"input flex-grow"},null,40,vwn)]),S("div",ywn,[e[56]||(e[56]=S("label",{for:"end_ai_message_id_template",class:"setting-label !w-auto md:!w-1/3"},"End AI Message Template",-1)),S("input",{type:"text",id:"end_ai_message_id_template",value:t.$store.state.config.end_ai_message_id_template,onInput:e[20]||(e[20]=a=>i.updateValue("end_ai_message_id_template",a.target.value)),class:"input flex-grow"},null,40,bwn)])]),S("div",Ewn,[e[57]||(e[57]=S("label",{for:"separator_template",class:"setting-label pt-2"},"Separator Template",-1)),S("textarea",{id:"separator_template",value:t.$store.state.config.separator_template,onInput:e[21]||(e[21]=a=>i.updateValue("separator_template",a.target.value)),class:"input flex-grow min-h-[60px] resize-y"}," ",40,Swn)]),S("div",xwn,[e[58]||(e[58]=S("label",{for:"system_message_template",class:"setting-label"},"System Message Template",-1)),S("input",{type:"text",id:"system_message_template",value:t.$store.state.config.system_message_template,onInput:e[22]||(e[22]=a=>i.updateValue("system_message_template",a.target.value)),class:"input flex-grow"},null,40,Lwn)]),S("div",Cwn,[e[59]||(e[59]=S("label",{class:"setting-label pt-2"},"Full Template Preview",-1)),S("div",Awn,[S("div",{innerHTML:i.full_template,class:"whitespace-pre-wrap break-words"},null,8,wwn)])]),S("div",Own,[e[60]||(e[60]=S("label",{for:"use_continue_message",class:"toggle-label"},[Oe(" Use Continue Message "),S("span",{class:"toggle-description"},"If supported by the model, use a specific token or phrase to indicate the AI should continue its response.")],-1)),ne(s,{id:"use_continue_message",checked:t.$store.state.config.use_continue_message,"onUpdate:checked":e[23]||(e[23]=a=>i.updateBoolean("use_continue_message",a))},null,8,["checked"])])])]),S("div",Mwn,[e[69]||(e[69]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Thinking Methods",-1)),S("div",Rwn,[S("div",Nwn,[S("div",Dwn,[e[62]||(e[62]=S("label",{for:"thinking_prompt_textarea",class:"setting-label !w-auto sm:!w-1/3"},[Oe(" Thinking Prompt "),S("span",{class:"block text-xs text-gray-500 dark:text-gray-400 mt-1 font-normal"},"Prompt used by the AI to structure its thought process. Use `thinking` tags.")],-1)),S("div",Iwn,[S("select",{id:"thinking_preset_select",onChange:e[24]||(e[24]=a=>i.selectPreset(a.target.value)),class:"input form-select flex-grow min-w-[150px]"},[S("option",{value:"",disabled:"",selected:!r.selectedPresetName},"-- Select Preset --",8,kwn),(N(!0),H(Ae,null,Ue(i.allThinkingPresets,a=>(N(),H("option",{key:a.name,value:a.name,selected:a.name===r.selectedPresetName},J(a.name)+" "+J(a.isLocal?"(Local)":""),9,Hwn))),128))],32),S("button",{onClick:e[25]||(e[25]=a=>r.showAddThinkingPresetForm=!r.showAddThinkingPresetForm),class:"btn btn-secondary btn-sm whitespace-nowrap"},J(r.showAddThinkingPresetForm?"Cancel Add":"Add New Preset"),1)])]),S("textarea",{id:"thinking_prompt_textarea",value:t.$store.state.config.thinking_prompt,onInput:e[26]||(e[26]=a=>i.updateValue("thinking_prompt",a.target.value)),class:"input w-full p-4 bg-gray-100 dark:bg-gray-900 rounded-md text-sm min-h-[150px] resize-y font-mono border border-gray-200 dark:border-gray-700",placeholder:"..."},null,40,Pwn)]),r.showAddThinkingPresetForm?(N(),H("div",$wn,[e[68]||(e[68]=S("h4",{class:"text-md font-semibold text-gray-800 dark:text-gray-200"},"Add New Local Preset",-1)),S("form",{onSubmit:e[31]||(e[31]=oe((...a)=>i.saveNewPreset&&i.saveNewPreset(...a),["prevent"])),class:"space-y-4"},[S("div",Vwn,[e[63]||(e[63]=S("label",{for:"new_preset_name",class:"setting-label"},[Oe("Name "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("input",{id:"new_preset_name","onUpdate:modelValue":e[27]||(e[27]=a=>r.newPreset.name=a),class:"input flex-grow",required:""},null,512),[[Je,r.newPreset.name]])]),S("div",Bwn,[e[64]||(e[64]=S("label",{for:"new_preset_desc",class:"setting-label"},[Oe("Description "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("input",{id:"new_preset_desc","onUpdate:modelValue":e[28]||(e[28]=a=>r.newPreset.description=a),class:"input flex-grow",required:""},null,512),[[Je,r.newPreset.description]])]),S("div",Fwn,[e[65]||(e[65]=S("label",{for:"new_preset_author",class:"setting-label"},[Oe("Author "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("input",{id:"new_preset_author","onUpdate:modelValue":e[29]||(e[29]=a=>r.newPreset.author=a),class:"input flex-grow",required:""},null,512),[[Je,r.newPreset.author]])]),S("div",Uwn,[e[66]||(e[66]=S("label",{for:"new_preset_prompt",class:"setting-label pt-2"},[Oe("Thinking Prompt "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("textarea",{id:"new_preset_prompt","onUpdate:modelValue":e[30]||(e[30]=a=>r.newPreset.prompt=a),class:"input w-full min-h-[100px] resize-y font-mono flex-grow",required:"",placeholder:"Enter the thinking prompt. Use ... tags."},null,512),[[Je,r.newPreset.prompt]])]),e[67]||(e[67]=S("div",{class:"flex justify-end space-x-2"},[S("button",{type:"submit",class:"btn btn-primary btn-sm"},"Save Preset")],-1))],32)])):Z("",!0)])])])}const AO=ze(LAn,[["render",qwn],["__scopeId","data-v-3760efd0"]]),Gwn={name:"DataManagementSettings",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1},api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["settings-changed"],data(){return{fileInputs:[],serverStatuses:pr({})}},methods:{updateDataLake(t,e,n){const o=JSON.parse(JSON.stringify(this.$store.state.config.datalakes||[]));o[t]?(o[t][e]=n,e==="type"&&(n==="lollmsvectordb"?o[t].url="":o[t].path=""),this.$store.state.config.datalakes=o):console.error("Attempted to update non-existent datalake at index:",t)},addDataLake(){const t=this.$store.state.config.datalakes?[...this.$store.state.config.datalakes]:[];t.push({alias:"New DataLake",type:"lollmsvectordb",url:"",path:"",key:"",mounted:!1}),this.$store.state.config.datalakes=t,be(()=>Le.replace())},removeDataLake(t){const e=this.$store.state.config.datalakes.filter((n,o)=>o!==t);this.$store.state.config.datalakes=e},async vectorizeFolder(t){const e=this.$store.state.config.datalakes[t];if(!e||e.type!=="lollmsvectordb"||!e.path){this.show_toast("Please ensure a valid path is set for the LoLLMs VectorDB.",4,!1);return}this.show_toast(`Starting vectorization for: ${e.alias}`,5,!0);try{await this.api_post_req("vectorize_folder",{rag_database:e})}catch(n){this.show_toast(`Vectorization failed for ${e.alias}: ${n.message||n}`,4,!1)}},async selectLollmsVectordbFolder(t){try{const e=n=>{if(n&&n.path&&n.datalake_name){const o=JSON.parse(JSON.stringify(this.$store.state.config.datalakes||[]));o[t]&&(o[t].path=n.path,o[t].alias=n.datalake_name,this.$store.state.config.datalakes=o,this.show_toast(`Folder selected for Data Lake: ${n.path}`,4,!0))}else this.show_toast("Folder selection failed or returned invalid data.",4,!1);Ye.off("lollmsvectordb_datalake_added",e)};Ye.on("lollmsvectordb_datalake_added",e),await this.api_post_req("select_lollmsvectordb_input_folder")}catch(e){this.show_toast(`Failed to initiate folder selection: ${e.message||e}`,4,!1),Ye.off("lollmsvectordb_datalake_added")}},triggerFileInput(t){this.fileInputs[t]?this.fileInputs[t].click():console.warn("File input ref not found for index:",t)},async handleFileUpload(t,e){var r,i,s;const n=Array.from(t.target.files),o=this.$store.state.config.datalakes[e];if(!(!n.length||o.type!=="lightrag")){this.show_toast(`Uploading ${n.length} file(s) to ${o.alias}...`,n.length*2,!0);for(const a of n){const l=new FormData;l.append("file",a),l.append("client_id",this.client_id);const c={"Content-Type":"multipart/form-data"};o.key&&(c["X-API-Key"]=o.key);try{const u=await fe.post(`${o.url.replace(/\/+$/,"")}/documents/upload`,l,{headers:c});u.data&&(u.status===200||u.status===201)?this.show_toast(`${a.name} uploaded successfully to ${o.alias}`,4,!0):this.show_toast(`Failed to upload ${a.name}: ${((r=u.data)==null?void 0:r.detail)||"Server error"}`,4,!1)}catch(u){console.error(`Error uploading ${a.name}:`,u),this.show_toast(`Error uploading ${a.name}: ${((s=(i=u.response)==null?void 0:i.data)==null?void 0:s.detail)||u.message||u}`,4,!1)}}t.target&&(t.target.value=null)}},updateServer(t,e,n){const o=JSON.parse(JSON.stringify(this.$store.state.config.rag_local_services||[]));o[t]?(o[t][e]=n,this.$store.state.config.rag_local_services=o):console.error("Attempted to update non-existent server at index:",t)},addDatabaseService(){const t=this.$store.state.config.rag_local_services?[...this.$store.state.config.rag_local_services]:[];t.push({alias:"New RAG Server",type:"lightrag",url:"http://localhost:9621/",key:"",input_path:"",working_path:"",start_at_startup:!1}),this.$store.state.config.rag_local_services=t,be(()=>Le.replace())},removeDatabaseService(t){const e=this.$store.state.config.rag_local_services.filter((n,o)=>o!==t);this.$store.state.config.rag_local_services=e},async startRagServer(t){const e=this.$store.state.config.rag_local_services[t];this.show_toast(`Attempting to start server: ${e.alias}...`,4,!0);try{const n=await this.api_post_req("start_rag_server",{server_index:t});n.status?(this.show_toast(`Start command sent for ${e.alias}. Check status shortly.`,4,!0),setTimeout(()=>this.checkServerHealth(t),5e3)):this.show_toast(`Failed to send start command for ${e.alias}: ${n.error||"Unknown error"}`,4,!1)}catch(n){this.show_toast(`Error starting server ${e.alias}: ${n.message||n}`,4,!1)}},async checkServerHealth(t){if(!this.$store.state.config.rag_local_services||!this.$store.state.config.rag_local_services[t]){console.warn(`Tried to check health for non-existent server index: ${t}`);return}const e=this.$store.state.config.rag_local_services[t];if(!e||e.type!=="lightrag"){this.serverStatuses[t]={status:"unknown",loading:!1,details:null,dotClass:"bg-gray-400",title:"Unsupported",text:"Unsupported Type"};return}this.serverStatuses[t]={status:"loading",loading:!0,details:null,dotClass:"bg-yellow-400 animate-pulse",title:"Checking...",text:"Checking..."};try{const n=`${e.url.replace(/\/+$/,"")}/health`,o={};e.key&&(o["X-API-Key"]=e.key);const r=await fetch(n,{headers:o});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);const i=await r.json();this.serverStatuses[t]={status:"healthy",loading:!1,details:i,dotClass:"bg-green-500",title:"Healthy",text:"Healthy"},this.show_toast(`${e.alias} is healthy.`,3,!0)}catch(n){console.error(`Health check failed for ${e.alias}:`,n),this.serverStatuses[t]={status:"unhealthy",loading:!1,details:null,dotClass:"bg-red-500",title:"Unhealthy",text:"Unhealthy"},this.show_toast(`${e.alias} health check failed: ${n.message||n}`,4,!1)}},showLightRagWebUI(t){const e=this.$store.state.config.rag_local_services[t];if(e&&e.type==="lightrag"&&e.url){const n=`${e.url.replace(/\/+$/,"")}/webui`;window.open(n,"_blank")}else this.show_toast("Cannot open WebUI. Invalid server configuration.",4,!1)},async selectLightragFolder(t,e){const n=e==="input"?"select_lightrag_input_folder":"select_lightrag_output_folder",o=e==="input"?"lightrag_input_folder_added":"lightrag_output_folder_added",r=e==="input"?"input_path":"working_path";try{const i=s=>{if(s&&s.path){const a=JSON.parse(JSON.stringify(this.$store.state.config.rag_local_services||[]));a[t]&&(a[t][r]=s.path,this.$store.state.config.rag_local_services=a,this.show_toast(`${e.charAt(0).toUpperCase()+e.slice(1)} folder selected: ${s.path}`,4,!0))}else this.show_toast(`Folder selection failed for ${e}.`,4,!1);Ye.off(o,i)};Ye.on(o,i),await this.api_post_req(n,{server_index:t})}catch(i){this.show_toast(`Failed to initiate ${e} folder selection: ${i.message||i}`,4,!1),Ye.off(o)}},refreshFeatherIcons(){be(()=>{Le.replace()})}},mounted(){this.refreshFeatherIcons(),this.$store.state.config.rag_local_services&&this.$store.state.config.rag_local_services.forEach((t,e)=>this.checkServerHealth(e)),this.$store.state.config.datalakes&&(this.fileInputs=new Array(this.$store.state.config.datalakes.length).fill(null))},updated(){if(this.refreshFeatherIcons(),this.$store.state.config.datalakes&&this.fileInputs.length!==this.$store.state.config.datalakes.length){const t=this.$store.state.config.datalakes.length,e=this.fileInputs.length;t>e?this.fileInputs.push(...new Array(t-e).fill(null)):this.fileInputs.splice(t)}},watch:{"config.datalakes.length"(t,e){t>e?this.fileInputs.push(...new Array(t-e).fill(null)):t(N(),H("div",{key:`datalake-${l}`,class:"p-4 bg-blue-100 dark:bg-blue-800/60 border border-blue-200 dark:border-blue-700 rounded-lg shadow-sm space-y-4 relative group"},[S("button",{onClick:c=>i.removeDataLake(l),class:"absolute top-2 right-2 p-1 rounded-full text-red-500 hover:bg-red-100 dark:hover:bg-red-800 opacity-0 group-hover:opacity-100 transition-opacity duration-200 svg-button",title:"Remove Data Lake"},e[15]||(e[15]=[S("i",{"data-feather":"x-circle",class:"w-5 h-5"},null,-1)]),8,Kwn),S("div",Zwn,[S("div",null,[S("label",{for:`dl-alias-${l}`,class:"label mb-1"},"Alias",8,Xwn),S("input",{type:"text",id:`dl-alias-${l}`,value:a.alias,onInput:c=>i.updateDataLake(l,"alias",c.target.value),class:"input input-sm w-full",placeholder:"Enter alias (e.g., 'Project Docs')"},null,40,Jwn)]),S("div",null,[S("label",{for:`dl-type-${l}`,class:"label mb-1"},"Type",8,eOn),S("select",{id:`dl-type-${l}`,required:"",value:a.type,onChange:c=>i.updateDataLake(l,"type",c.target.value),class:"input input-sm w-full"},e[16]||(e[16]=[S("option",{value:"lollmsvectordb"},"LoLLMs VectorDB",-1),S("option",{value:"lightrag"},"LightRAG",-1),S("option",{value:"elasticsearch"},"Elasticsearch",-1)]),40,tOn)]),S("div",nOn,[S("label",{for:`dl-pathurl-${l}`,class:"label mb-1"},J(a.type==="lollmsvectordb"?"Database Path":a.type==="lightrag"?"LightRAG URL":"Elasticsearch URL"),9,rOn),S("input",{type:"text",id:`dl-pathurl-${l}`,value:a.type==="lollmsvectordb"?a.path:a.url,onInput:c=>i.updateDataLake(l,a.type==="lollmsvectordb"?"path":"url",c.target.value),class:"input input-sm w-full",placeholder:a.type==="lollmsvectordb"?"Path to database folder":"http://host:port/"},null,40,iOn)]),a.type==="lightrag"||a.type==="elasticsearch"?(N(),H("div",oOn,[S("label",{for:`dl-key-${l}`,class:"label mb-1"},"API Key (Optional)",8,sOn),S("input",{type:"password",id:`dl-key-${l}`,value:a.key,onInput:c=>i.updateDataLake(l,"key",c.target.value),class:"input input-sm w-full",placeholder:"Enter API key if required"},null,40,aOn)])):Z("",!0)]),S("div",lOn,[S("div",cOn,[ne(s,{id:`dl-mounted-${l}`,checked:a.mounted,"onUpdate:checked":c=>i.updateDataLake(l,"mounted",c)},null,8,["id","checked","onUpdate:checked"]),S("label",{for:`dl-mounted-${l}`,class:"label !mb-0 text-sm cursor-pointer"}," Mounted ",8,uOn)]),S("div",dOn,[a.type==="lollmsvectordb"?(N(),H(Ae,{key:0},[S("button",{onClick:c=>i.vectorizeFolder(l),class:"btn btn-secondary btn-sm",title:"Vectorize or re-vectorize the selected folder"},e[17]||(e[17]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4 mr-1"},null,-1),Oe(" Vectorize ")]),8,TOn),S("button",{onClick:c=>i.selectLollmsVectordbFolder(l),class:"btn btn-primary btn-sm",title:"Select folder containing documents to vectorize"},e[18]||(e[18]=[S("i",{"data-feather":"folder-plus",class:"w-4 h-4 mr-1"},null,-1),Oe(" Select Folder ")]),8,fOn)],64)):Z("",!0),a.type==="lightrag"?(N(),H(Ae,{key:1},[S("button",{onClick:c=>i.triggerFileInput(l),class:"btn btn-success btn-sm",title:"Upload supported files (.txt, .md, .pdf, .docx, .pptx, .xlsx)"},e[19]||(e[19]=[S("i",{"data-feather":"upload",class:"w-4 h-4 mr-1"},null,-1),Oe(" Upload Files ")]),8,pOn),S("input",{type:"file",ref_for:!0,ref:c=>{c&&(r.fileInputs[l]=c)},onChange:c=>i.handleFileUpload(c,l),accept:".txt,.md,.pdf,.docx,.pptx,.xlsx",class:"hidden",multiple:""},null,40,hOn)],64)):Z("",!0)])])]))),128))]),S("div",mOn,[S("button",{onClick:e[0]||(e[0]=(...a)=>i.addDataLake&&i.addDataLake(...a)),class:"btn btn-primary w-full md:w-auto"},e[20]||(e[20]=[S("i",{"data-feather":"plus-circle",class:"w-5 h-5 mr-2"},null,-1),Oe(" Add New Data Lake ")]))])]),S("section",gOn,[e[33]||(e[33]=S("h3",{class:"text-xl font-medium text-blue-600 dark:text-blue-300 mb-2"},"Self-Hosted RAG Servers",-1)),e[34]||(e[34]=S("p",{class:"text-sm text-blue-500 dark:text-blue-400 mb-4"}," Configure and manage local RAG server instances (like LightRAG) running on your machine. ",-1)),S("div",_On,[!t.$store.state.config.rag_local_services||t.$store.state.config.rag_local_services.length===0?(N(),H("div",QOn," No RAG Servers configured. ")):Z("",!0),(N(!0),H(Ae,null,Ue(t.$store.state.config.rag_local_services,(a,l)=>{var c,u,d,f,T,h,g,_;return N(),H("div",{key:`server-${l}`,class:"p-4 bg-blue-100 dark:bg-blue-800/60 border border-blue-200 dark:border-blue-700 rounded-lg shadow-sm space-y-4 relative group"},[S("button",{onClick:m=>i.removeDatabaseService(l),class:"absolute top-2 right-2 p-1 rounded-full text-red-500 hover:bg-red-100 dark:hover:bg-red-800 opacity-0 group-hover:opacity-100 transition-opacity duration-200 svg-button",title:"Remove Server"},e[23]||(e[23]=[S("i",{"data-feather":"x-circle",class:"w-5 h-5"},null,-1)]),8,vOn),S("div",yOn,[S("div",null,[S("label",{for:`srv-alias-${l}`,class:"label mb-1"},"Alias",8,bOn),S("input",{type:"text",id:`srv-alias-${l}`,value:a.alias,onInput:m=>i.updateServer(l,"alias",m.target.value),class:"input input-sm w-full",placeholder:"Server Alias"},null,40,EOn)]),S("div",null,[S("label",{for:`srv-type-${l}`,class:"label mb-1"},"Type",8,SOn),S("select",{id:`srv-type-${l}`,required:"",value:a.type,onChange:m=>i.updateServer(l,"type",m.target.value),class:"input input-sm w-full"},e[24]||(e[24]=[S("option",{value:"lightrag"},"LightRAG",-1)]),40,xOn)]),S("div",LOn,[S("label",{for:`srv-url-${l}`,class:"label mb-1"},"Server URL",8,COn),S("input",{type:"text",id:`srv-url-${l}`,value:a.url,onInput:m=>i.updateServer(l,"url",m.target.value),class:"input input-sm w-full",placeholder:"http://localhost:port"},null,40,AOn)]),S("div",null,[S("label",{for:`srv-key-${l}`,class:"label mb-1"},"API Key (Optional)",8,wOn),S("input",{type:"password",id:`srv-key-${l}`,value:a.key,onInput:m=>i.updateServer(l,"key",m.target.value),class:"input input-sm w-full",placeholder:"API Key if needed"},null,40,OOn)]),S("div",MOn,[S("div",ROn,[ne(s,{id:`srv-startup-${l}`,checked:a.start_at_startup,"onUpdate:checked":m=>i.updateServer(l,"start_at_startup",m)},null,8,["id","checked","onUpdate:checked"]),S("label",{for:`srv-startup-${l}`,class:"label !mb-0 text-sm cursor-pointer"},"Start at Startup",8,NOn)])]),S("div",null,[S("label",{for:`srv-input-${l}`,class:"label mb-1"},"Input Folder Path",8,DOn),S("div",IOn,[S("input",{type:"text",id:`srv-input-${l}`,value:a.input_path,onInput:m=>i.updateServer(l,"input_path",m.target.value),class:"input input-sm w-full rounded-r-none",placeholder:"Path to watch for new files"},null,40,kOn),S("button",{onClick:m=>i.selectLightragFolder(l,"input"),class:"btn btn-secondary btn-sm rounded-l-none flex-shrink-0",title:"Select Input Folder"},e[25]||(e[25]=[S("i",{"data-feather":"folder",class:"w-4 h-4"},null,-1)]),8,HOn)])]),S("div",null,[S("label",{for:`srv-work-${l}`,class:"label mb-1"},"Working Folder Path",8,POn),S("div",$On,[S("input",{type:"text",id:`srv-work-${l}`,value:a.working_path,onInput:m=>i.updateServer(l,"working_path",m.target.value),class:"input input-sm w-full rounded-r-none",placeholder:"Path for database files"},null,40,VOn),S("button",{onClick:m=>i.selectLightragFolder(l,"output"),class:"btn btn-secondary btn-sm rounded-l-none flex-shrink-0",title:"Select Working Folder"},e[26]||(e[26]=[S("i",{"data-feather":"folder",class:"w-4 h-4"},null,-1)]),8,BOn)])])]),S("div",FOn,[S("div",UOn,[S("span",{class:Ee(["w-3 h-3 rounded-full",((c=r.serverStatuses[l])==null?void 0:c.dotClass)||"bg-status-unknown"]),title:((u=r.serverStatuses[l])==null?void 0:u.title)||"Unknown"},null,10,qOn),S("span",GOn,J(((d=r.serverStatuses[l])==null?void 0:d.text)||"Status Unknown"),1),S("button",{onClick:m=>i.checkServerHealth(l),class:"btn btn-secondary btn-sm !p-1",title:"Check Server Status",disabled:(f=r.serverStatuses[l])==null?void 0:f.loading},[S("i",{"data-feather":"refresh-cw",class:Ee(["w-4 h-4",(T=r.serverStatuses[l])!=null&&T.loading?"animate-spin":""])},null,2)],8,jOn)]),S("div",zOn,[S("button",{onClick:m=>i.startRagServer(l),class:"btn btn-success btn-sm",title:"Start this RAG server instance"},e[27]||(e[27]=[S("i",{"data-feather":"play",class:"w-4 h-4 mr-1"},null,-1),Oe(" Start Server ")]),8,YOn),a.type==="lightrag"&&((h=r.serverStatuses[l])==null?void 0:h.status)==="healthy"?(N(),H("button",{key:0,onClick:m=>i.showLightRagWebUI(l),class:"btn btn-primary btn-sm",title:"Open LightRAG Web UI"},e[28]||(e[28]=[S("i",{"data-feather":"external-link",class:"w-4 h-4 mr-1"},null,-1),Oe(" Show WebUI ")]),8,WOn)):Z("",!0)])]),a.type==="lightrag"&&r.serverStatuses[l]&&r.serverStatuses[l].status==="healthy"&&r.serverStatuses[l].details?(N(),H("div",KOn,[S("div",null,[e[29]||(e[29]=S("b",{class:"text-blue-600 dark:text-blue-300"},"Indexed Files:",-1)),Oe(" "+J(r.serverStatuses[l].details.indexed_files_count??"N/A"),1)]),S("div",null,[e[30]||(e[30]=S("b",{class:"text-blue-600 dark:text-blue-300"},"Model:",-1)),Oe(" "+J(((g=r.serverStatuses[l].details.configuration)==null?void 0:g.llm_model)||"N/A"),1)]),S("div",null,[e[31]||(e[31]=S("b",{class:"text-blue-600 dark:text-blue-300"},"Embedding:",-1)),Oe(" "+J(((_=r.serverStatuses[l].details.configuration)==null?void 0:_.embedding_model)||"N/A"),1)])])):Z("",!0)])}),128))]),S("div",ZOn,[S("button",{onClick:e[1]||(e[1]=(...a)=>i.addDatabaseService&&i.addDatabaseService(...a)),class:"btn btn-primary w-full md:w-auto"},e[32]||(e[32]=[S("i",{"data-feather":"plus-circle",class:"w-5 h-5 mr-2"},null,-1),Oe(" Add New RAG Server ")]))])]),S("section",XOn,[e[46]||(e[46]=S("h3",{class:"text-xl font-medium text-blue-600 dark:text-blue-300 mb-3"},"LoLLMs VectorDB Settings",-1)),S("div",JOn,[S("div",null,[e[36]||(e[36]=S("label",{for:"rag_vectorizer",class:"label mb-1"},"Vectorizer Engine",-1)),S("select",{id:"rag_vectorizer",required:"",value:t.$store.state.config.rag_vectorizer,onChange:e[2]||(e[2]=a=>t.$store.state.config.rag_vectorizer=a.target.value),class:"input input-sm w-full"},e[35]||(e[35]=[S("option",{value:"semantic"},"Sentence Transformer (Recommended)",-1),S("option",{value:"tfidf"},"TF-IDF (Fast, Less Accurate)",-1),S("option",{value:"openai"},"OpenAI Ada",-1),S("option",{value:"ollama"},"Ollama Embedding",-1)]),40,eMn)]),S("div",tMn,[S("div",nMn,[ne(s,{id:"rag_vectorizer_execute_remote_code",checked:t.$store.state.config.rag_vectorizer_execute_remote_code,"onUpdate:checked":e[3]||(e[3]=a=>t.$store.state.config.rag_vectorizer_execute_remote_code=!!a)},null,8,["checked"]),e[37]||(e[37]=S("label",{for:"rag_vectorizer_execute_remote_code",class:"label !mb-0 text-sm cursor-pointer"},"Allow Remote Code Execution",-1)),e[38]||(e[38]=S("i",{"data-feather":"alert-triangle",class:"w-4 h-4 text-red-500 dark:text-red-400 ml-1",title:"Security Risk: Only enable if using a trusted custom vectorizer source."},null,-1))])]),S("div",rMn,[e[42]||(e[42]=S("label",{for:"rag_vectorizer_model",class:"label mb-1"},"Vectorizer Model",-1)),S("select",{id:"rag_vectorizer_model",value:t.$store.state.config.rag_vectorizer_model,onChange:e[4]||(e[4]=a=>t.$store.state.config.rag_vectorizer_model=a.target.value),class:"input input-sm w-full mb-1",disabled:t.$store.state.config.rag_vectorizer==="tfidf"},[t.$store.state.config.rag_vectorizer==="tfidf"?(N(),H("option",oMn,"N/A for TF-IDF")):Z("",!0),t.$store.state.config.rag_vectorizer==="semantic"?(N(),H("optgroup",sMn,e[39]||(e[39]=[S("option",{value:"BAAI/bge-m3"},"BAAI/bge-m3",-1),S("option",{value:"nvidia/NV-Embed-v2"},"nvidia/NV-Embed-v2",-1),S("option",{value:"sentence-transformers/all-MiniLM-L6-v2"},"all-MiniLM-L6-v2",-1),S("option",{value:"sentence-transformers/all-mpnet-base-v2"},"all-mpnet-base-v2",-1)]))):Z("",!0),t.$store.state.config.rag_vectorizer==="openai"?(N(),H("optgroup",aMn,e[40]||(e[40]=[S("option",{value:"text-embedding-3-large"},"text-embedding-3-large",-1),S("option",{value:"text-embedding-3-small"},"text-embedding-3-small",-1),S("option",{value:"text-embedding-ada-002"},"text-embedding-ada-002 (Legacy)",-1)]))):Z("",!0),t.$store.state.config.rag_vectorizer==="ollama"?(N(),H("optgroup",lMn,e[41]||(e[41]=[S("option",{value:"mxbai-embed-large"},"mxbai-embed-large",-1),S("option",{value:"nomic-embed-text"},"nomic-embed-text",-1),S("option",{value:"all-minilm"},"all-minilm",-1),S("option",{value:"snowflake-arctic-embed"},"snowflake-arctic-embed",-1)]))):Z("",!0)],40,iMn),S("input",{type:"text",value:t.$store.state.config.rag_vectorizer_model,onInput:e[5]||(e[5]=a=>t.$store.state.config.rag_vectorizer_model=a.target.value),class:"input input-sm w-full",placeholder:"Or enter custom model name/path",disabled:t.$store.state.config.rag_vectorizer==="tfidf"},null,40,cMn)]),t.$store.state.config.rag_vectorizer==="ollama"||t.$store.state.config.rag_vectorizer==="openai"?(N(),H("div",uMn,[S("label",dMn,J(t.$store.state.config.rag_vectorizer==="ollama"?"Ollama Server URL":"OpenAI API Base URL"),1),S("input",{type:"text",id:"rag_service_url",value:t.$store.state.config.rag_service_url,onInput:e[6]||(e[6]=a=>t.$store.state.config.rag_service_url=a.target.value),class:"input input-sm w-full",placeholder:t.$store.state.config.rag_vectorizer==="ollama"?"http://localhost:11434":"https://api.openai.com/v1"},null,40,TMn)])):Z("",!0)]),S("div",fMn,[e[43]||(e[43]=S("label",{for:"rag_chunk_size-range",class:"setting-label"},"Chunk Size",-1)),S("div",pMn,[S("input",{id:"rag_chunk_size-range",value:t.$store.state.config.rag_chunk_size,onInput:e[7]||(e[7]=a=>t.$store.state.config.rag_chunk_size=parseInt(a.target.value)),type:"range",min:"100",max:"2000",step:"50",class:"range-input flex-grow"},null,40,hMn),S("input",{id:"rag_chunk_size-number",value:t.$store.state.config.rag_chunk_size,onInput:e[8]||(e[8]=a=>t.$store.state.config.rag_chunk_size=parseInt(a.target.value)),type:"number",min:"100",max:"2000",step:"50",class:"input input-sm w-24 text-center"},null,40,mMn)])]),S("div",gMn,[e[44]||(e[44]=S("label",{for:"rag_overlap_size-range",class:"setting-label"},"Overlap Size",-1)),S("div",_Mn,[S("input",{id:"rag_overlap_size-range",value:t.$store.state.config.rag_overlap_size,onInput:e[9]||(e[9]=a=>t.$store.state.config.rag_overlap_size=parseInt(a.target.value)),type:"range",min:"0",max:"500",step:"10",class:"range-input flex-grow"},null,40,QMn),S("input",{id:"rag_overlap_size-number",value:t.$store.state.config.rag_overlap_size,onInput:e[10]||(e[10]=a=>t.$store.state.config.rag_overlap_size=parseInt(a.target.value)),type:"number",min:"0",max:"500",step:"10",class:"input input-sm w-24 text-center"},null,40,vMn)])]),S("div",yMn,[ne(s,{id:"rag_clean_chunks",checked:t.$store.state.config.rag_clean_chunks,"onUpdate:checked":e[11]||(e[11]=a=>t.$store.state.config.rag_clean_chunks=!!a)},null,8,["checked"]),e[45]||(e[45]=S("label",{for:"rag_clean_chunks",class:"toggle-label !flex-none"},[Oe(" Clean Chunks "),S("span",{class:"toggle-description"},"Attempt to remove redundant whitespace and formatting from text chunks before vectorization.")],-1))])]),S("section",bMn,[e[50]||(e[50]=S("h3",{class:"text-xl font-medium text-blue-600 dark:text-blue-300 mb-3"},"RAG Query Settings",-1)),S("div",EMn,[e[47]||(e[47]=S("label",{for:"rag_build_keys_words",class:"toggle-label"},[Oe(" Reformulate Query with Keywords "),S("span",{class:"toggle-description"},"Let the AI extract keywords from your prompt to potentially improve database search relevance.")],-1)),ne(s,{id:"rag_build_keys_words",checked:t.$store.state.config.rag_build_keys_words,"onUpdate:checked":e[12]||(e[12]=a=>t.$store.state.config.rag_build_keys_words=!!a)},null,8,["checked"])]),S("div",SMn,[e[48]||(e[48]=S("label",{for:"rag_put_chunk_informations_into_context",class:"toggle-label"},[Oe(" Include Chunk Source Info in Context "),S("span",{class:"toggle-description"},"Prepend retrieved text chunks with source information (e.g., filename) when adding to the LLM context.")],-1)),ne(s,{id:"rag_put_chunk_informations_into_context",checked:t.$store.state.config.rag_put_chunk_informations_into_context,"onUpdate:checked":e[13]||(e[13]=a=>t.$store.state.config.rag_put_chunk_informations_into_context=!!a)},null,8,["checked"])]),S("div",xMn,[e[49]||(e[49]=S("label",{for:"data_vectorization_save_db",class:"toggle-label"},[Oe(" Persist Vector Database "),S("span",{class:"toggle-description"},"Save the vectorized data to disk. If disabled, the database is in-memory only and lost on restart. (Applies mainly to LoLLMs VectorDB).")],-1)),ne(s,{id:"data_vectorization_save_db",checked:t.$store.state.config.data_vectorization_save_db,"onUpdate:checked":e[14]||(e[14]=a=>t.$store.state.config.data_vectorization_save_db=!!a)},null,8,["checked"])])])])}const wO=ze(Gwn,[["render",LMn],["__scopeId","data-v-52537129"]]),CMn={name:"InternetSettings",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1}},emits:["update:setting"],data(){return{}},methods:{updateValue(t,e){const o=["internet_nb_search_pages","internet_vectorization_chunk_size","internet_vectorization_overlap_size","internet_vectorization_nb_chunks"].includes(t)?Number(e)||0:e;this.$emit("update:setting",{key:t,value:o})},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e})},replaceFeatherIcons(){be(()=>{try{typeof Le<"u"&&Le&&typeof Le.replace=="function"&&Le.replace()}catch(t){console.error("Feather icons replacement failed:",t)}})}},mounted(){this.replaceFeatherIcons()},updated(){this.replaceFeatherIcons()}},AMn={class:"user-settings-panel space-y-6"},wMn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},OMn={class:"toggle-item"},MMn={class:"setting-item"},RMn={class:"flex-1 flex items-center gap-4"},NMn=["value","disabled"],DMn=["value","disabled"],IMn={class:"setting-item"},kMn={class:"flex-1 flex items-center gap-4"},HMn=["value","disabled"],PMn=["value","disabled"],$Mn={class:"setting-item"},VMn={class:"flex-1 flex items-center gap-4"},BMn=["value","disabled"],FMn=["value","disabled"],UMn={class:"setting-item"},qMn={class:"flex-1 flex items-center gap-4"},GMn=["value","disabled"],jMn=["value","disabled"];function zMn(t,e,n,o,r,i){const s=We("ToggleSwitch");return N(),H("div",AMn,[e[22]||(e[22]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Internet Search ",-1)),e[23]||(e[23]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400 mb-4"}," Configure how LoLLMs interacts with the internet to answer questions or find information. Requires a model capable of function calling or specific instruction following. ",-1)),S("section",wMn,[e[16]||(e[16]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Activation & Behavior",-1)),S("div",OMn,[e[12]||(e[12]=S("label",{for:"activate_internet_search",class:"toggle-label"},[Oe(" Enable Automatic Internet Search "),S("span",{class:"toggle-description"},"Allow the AI to decide when to search the internet based on the prompt.")],-1)),ne(s,{id:"activate_internet_search",checked:t.$store.state.config.activate_internet_search,"onUpdate:checked":e[0]||(e[0]=a=>i.updateBoolean("activate_internet_search",a))},null,8,["checked"])]),S("div",{class:Ee(["toggle-item",{"opacity-50 pointer-events-none":!t.$store.state.config.activate_internet_search}])},[e[13]||(e[13]=S("label",{for:"internet_activate_search_decision",class:"toggle-label"},[Oe(" Enable Explicit Search Decision "),S("span",{class:"toggle-description"},"Make the AI explicitly state whether it needs to search the internet before performing the search.")],-1)),ne(s,{id:"internet_activate_search_decision",checked:t.$store.state.config.internet_activate_search_decision,"onUpdate:checked":e[1]||(e[1]=a=>i.updateBoolean("internet_activate_search_decision",a)),disabled:!t.$store.state.config.activate_internet_search},null,8,["checked","disabled"])],2),S("div",{class:Ee(["toggle-item",{"opacity-50 pointer-events-none":!t.$store.state.config.activate_internet_search}])},[e[14]||(e[14]=S("label",{for:"activate_internet_pages_judgement",class:"toggle-label"},[Oe(" Enable Search Result Evaluation "),S("span",{class:"toggle-description"},"Allow the AI to evaluate the relevance and quality of search result snippets before using them.")],-1)),ne(s,{id:"activate_internet_pages_judgement",checked:t.$store.state.config.activate_internet_pages_judgement,"onUpdate:checked":e[2]||(e[2]=a=>i.updateBoolean("activate_internet_pages_judgement",a)),disabled:!t.$store.state.config.activate_internet_search},null,8,["checked","disabled"])],2),S("div",{class:Ee(["toggle-item",{"opacity-50 pointer-events-none":!t.$store.state.config.activate_internet_search}])},[e[15]||(e[15]=S("label",{for:"internet_quick_search",class:"toggle-label"},[Oe(" Enable Quick Search "),S("span",{class:"toggle-description"},"Perform a faster search potentially using fewer results or less processing, might be less accurate.")],-1)),ne(s,{id:"internet_quick_search",checked:t.$store.state.config.internet_quick_search,"onUpdate:checked":e[3]||(e[3]=a=>i.updateBoolean("internet_quick_search",a)),disabled:!t.$store.state.config.activate_internet_search},null,8,["checked","disabled"])],2)]),S("section",{class:Ee(["space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color",t.$store.state.config.activate_internet_search?"":"opacity-50 pointer-events-none"])},[e[21]||(e[21]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Search Parameters",-1)),S("div",MMn,[e[17]||(e[17]=S("label",{for:"internet_nb_search_pages",class:"setting-label"},[Oe(" Number of Search Results "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Controls how many search result snippets are initially retrieved.")],-1)),S("div",RMn,[S("input",{id:"internet_nb_search_pages-range",value:t.$store.state.config.internet_nb_search_pages,onInput:e[4]||(e[4]=a=>i.updateValue("internet_nb_search_pages",a.target.value)),type:"range",min:"1",max:"20",step:"1",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,NMn),S("input",{id:"internet_nb_search_pages-number",value:t.$store.state.config.internet_nb_search_pages,onInput:e[5]||(e[5]=a=>i.updateValue("internet_nb_search_pages",a.target.value)),type:"number",min:"1",max:"20",step:"1",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,DMn)])]),S("div",IMn,[e[18]||(e[18]=S("label",{for:"internet_vectorization_chunk_size",class:"setting-label"},[Oe(" Content Chunk Size "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Size of text chunks when processing content from searched web pages (if applicable).")],-1)),S("div",kMn,[S("input",{id:"internet_vectorization_chunk_size-range",value:t.$store.state.config.internet_vectorization_chunk_size,onInput:e[6]||(e[6]=a=>i.updateValue("internet_vectorization_chunk_size",a.target.value)),type:"range",min:"100",max:"1000",step:"50",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,HMn),S("input",{id:"internet_vectorization_chunk_size-number",value:t.$store.state.config.internet_vectorization_chunk_size,onInput:e[7]||(e[7]=a=>i.updateValue("internet_vectorization_chunk_size",a.target.value)),type:"number",min:"100",max:"1000",step:"50",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,PMn)])]),S("div",$Mn,[e[19]||(e[19]=S("label",{for:"internet_vectorization_overlap_size",class:"setting-label"},[Oe(" Content Overlap Size "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Overlap between text chunks when processing web page content.")],-1)),S("div",VMn,[S("input",{id:"internet_vectorization_overlap_size-range",value:t.$store.state.config.internet_vectorization_overlap_size,onInput:e[8]||(e[8]=a=>i.updateValue("internet_vectorization_overlap_size",a.target.value)),type:"range",min:"0",max:"200",step:"10",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,BMn),S("input",{id:"internet_vectorization_overlap_size-number",value:t.$store.state.config.internet_vectorization_overlap_size,onInput:e[9]||(e[9]=a=>i.updateValue("internet_vectorization_overlap_size",a.target.value)),type:"number",min:"0",max:"200",step:"10",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,FMn)])]),S("div",UMn,[e[20]||(e[20]=S("label",{for:"internet_vectorization_nb_chunks",class:"setting-label"},[Oe(" Number of Content Chunks to Use "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Maximum number of processed text chunks from web pages to include in the context.")],-1)),S("div",qMn,[S("input",{id:"internet_vectorization_nb_chunks-range",value:t.$store.state.config.internet_vectorization_nb_chunks,onInput:e[10]||(e[10]=a=>i.updateValue("internet_vectorization_nb_chunks",a.target.value)),type:"range",min:"1",max:"20",step:"1",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,GMn),S("input",{id:"internet_vectorization_nb_chunks-number",value:t.$store.state.config.internet_vectorization_nb_chunks,onInput:e[11]||(e[11]=a=>i.updateValue("internet_vectorization_nb_chunks",a.target.value)),type:"number",min:"1",max:"20",step:"1",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,jMn)])])],2)])}const OO=ze(CMn,[["render",zMn],["__scopeId","data-v-4777608e"]]),YMn={class:"user-settings-panel space-y-6"},WMn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},KMn={class:"grid grid-cols-1 gap-4"},ZMn={class:"setting-item"},XMn={class:"flex items-center gap-2 flex-grow"},JMn=["value"],eRn=["value"],tRn=["disabled"],nRn={class:"setting-item"},rRn={class:"flex items-center gap-2 flex-grow"},iRn=["value"],oRn=["value"],sRn=["disabled"],aRn={class:"setting-item"},lRn={class:"flex items-center gap-2 flex-grow"},cRn=["value"],uRn=["value"],dRn=["disabled"],TRn={class:"setting-item"},fRn={class:"flex items-center gap-2 flex-grow"},pRn=["value"],hRn=["value"],mRn=["disabled"],gRn={class:"setting-item"},_Rn={class:"flex items-center gap-2 flex-grow"},QRn=["value"],vRn=["value"],yRn=["disabled"],bRn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},ERn={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-4"},SRn={class:"setting-item !items-center"},xRn=["value"],LRn={class:"setting-item !items-center"},CRn=["value"],ARn={class:"setting-item !items-center"},wRn=["value"],ORn={class:"setting-item !items-center"},MRn=["value"],RRn={class:"setting-item !items-center"},NRn=["value"],DRn={class:"setting-item !items-center"},IRn=["value"],kRn={class:"setting-item !items-center"},HRn=["value"],PRn={class:"toggle-item md:col-span-2"},$Rn=["value","disabled"],VRn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},BRn={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},FRn={class:"setting-item"},URn=["value"],qRn=["value"],GRn={class:"setting-item"},jRn=["value"],zRn=["value"],YRn={__name:"ServicesZooSettings",props:{loading:{type:Boolean,default:!1},api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},show_universal_form:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["settings-changed"],setup(t,{emit:e}){const n=t,o=e,r=ke([]),i=ke([]),s=ke([]),a=ke([]),l=ke([]),c=ke([]),u=ke([]),d=ke([]),f=ke([]),T=(v,b)=>{o("settings-changed")},h=(v,b)=>{o("settings-changed")},g=async()=>{try{const[v,b,y,E,x]=await Promise.all([n.api_post_req("list_tts_services"),n.api_post_req("list_stt_services"),n.api_post_req("list_tti_services"),n.api_post_req("list_ttm_services"),n.api_post_req("list_ttv_services")]);r.value=v||[],i.value=b||[],s.value=y||[],a.value=E||[],l.value=x||[]}catch(v){n.show_toast("Failed to fetch service lists.",4,!1),console.error("Error fetching service lists:",v)}},_=async()=>{try{const[v,b]=await Promise.all([n.api_get_req("get_snd_input_devices"),n.api_get_req("get_snd_output_devices")]);c.value=(v==null?void 0:v.device_names)||[],u.value=(v==null?void 0:v.device_indexes)||[],d.value=(b==null?void 0:b.device_names)||[],f.value=(b==null?void 0:b.device_indexes)||[]}catch(v){n.show_toast("Failed to fetch audio devices.",4,!1),console.error("Error fetching audio devices:",v)}},m=()=>{n.show_toast("Refreshing audio devices...",2,!0),_()},Q=async(v,b)=>{if(!b||b==="None"||b==="browser"){n.show_toast(`No configurable settings for '${b}'.`,3,!1);return}const y={tts:"get_active_tts_settings",stt:"get_active_stt_settings",tti:"get_active_tti_settings",ttm:"get_active_ttm_settings",ttv:"get_active_ttv_settings"},E={tts:"set_active_tts_settings",stt:"set_active_stt_settings",tti:"set_active_tti_settings",ttm:"set_active_ttm_settings",ttv:"set_active_ttv_settings"},x=y[v],L=E[v];if(!(!x||!L))try{const C=await n.api_post_req(x);if(C&&Object.keys(C).length>0){const A=await n.show_universal_form(C,`${b} Settings`,"Save","Cancel"),O=await n.api_post_req(L,{settings:A});O&&O.status?n.show_toast(`${b} settings updated successfully!`,4,!0):n.show_toast(`Failed to update ${b} settings: ${(O==null?void 0:O.error)||"Unknown error"}`,4,!1)}else n.show_toast(`${b} has no configurable settings.`,4,!1)}catch(C){n.show_toast(`Error fetching/setting ${b} settings: ${C.message}`,4,!1),console.error(`Error with ${b} settings:`,C)}};return hr(()=>{g(),_(),be(()=>{Le.replace()})}),Dl(()=>{be(()=>{Le.replace()})}),(v,b)=>(N(),H("div",YMn,[b[53]||(b[53]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Services Zoo & Audio ",-1)),S("section",WMn,[b[37]||(b[37]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Default Service Selection",-1)),b[38]||(b[38]=S("p",{class:"text-xs text-blue-500 dark:text-blue-400 mb-4"}," Choose the default services LoLLMs will use for various tasks. Specific personalities might override these. ",-1)),S("div",KMn,[S("div",ZMn,[b[24]||(b[24]=S("label",{for:"active_tts_service",class:"setting-label"},"Text-to-Speech (TTS)",-1)),S("div",XMn,[S("select",{id:"active_tts_service",value:v.$store.state.config.active_tts_service,onChange:b[0]||(b[0]=y=>T("active_tts_service",y.target.value)),class:"input flex-grow"},[b[21]||(b[21]=S("option",{value:"None"},"None",-1)),b[22]||(b[22]=S("option",{value:"browser"},"Browser TTS",-1)),(N(!0),H(Ae,null,Ue(r.value,y=>(N(),H("option",{key:`tts-${y.name}`,value:y.name},J(y.caption||y.name),9,eRn))),128))],40,JMn),S("button",{onClick:b[1]||(b[1]=y=>Q("tts",v.$store.state.config.active_tts_service)),disabled:!v.$store.state.config.active_tts_service||v.$store.state.config.active_tts_service==="None"||v.$store.state.config.active_tts_service==="browser",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTS Service"},b[23]||(b[23]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,tRn)])]),S("div",nRn,[b[27]||(b[27]=S("label",{for:"active_stt_service",class:"setting-label"},"Speech-to-Text (STT)",-1)),S("div",rRn,[S("select",{id:"active_stt_service",value:v.$store.state.config.active_stt_service,onChange:b[2]||(b[2]=y=>T("active_stt_service",y.target.value)),class:"input flex-grow"},[b[25]||(b[25]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(i.value,y=>(N(),H("option",{key:`stt-${y.name}`,value:y.name},J(y.caption||y.name),9,oRn))),128))],40,iRn),S("button",{onClick:b[3]||(b[3]=y=>Q("stt",v.$store.state.config.active_stt_service)),disabled:!v.$store.state.config.active_stt_service||v.$store.state.config.active_stt_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected STT Service"},b[26]||(b[26]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,sRn)])]),S("div",aRn,[b[30]||(b[30]=S("label",{for:"active_tti_service",class:"setting-label"},"Text-to-Image (TTI)",-1)),S("div",lRn,[S("select",{id:"active_tti_service",value:v.$store.state.config.active_tti_service,onChange:b[4]||(b[4]=y=>T("active_tti_service",y.target.value)),class:"input flex-grow"},[b[28]||(b[28]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(s.value,y=>(N(),H("option",{key:`tti-${y.name}`,value:y.name},J(y.caption||y.name),9,uRn))),128))],40,cRn),S("button",{onClick:b[5]||(b[5]=y=>Q("tti",v.$store.state.config.active_tti_service)),disabled:!v.$store.state.config.active_tti_service||v.$store.state.config.active_tti_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTI Service"},b[29]||(b[29]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,dRn)])]),S("div",TRn,[b[33]||(b[33]=S("label",{for:"active_ttm_service",class:"setting-label"},"Text-to-Music (TTM)",-1)),S("div",fRn,[S("select",{id:"active_ttm_service",value:v.$store.state.config.active_ttm_service,onChange:b[6]||(b[6]=y=>T("active_ttm_service",y.target.value)),class:"input flex-grow"},[b[31]||(b[31]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(a.value,y=>(N(),H("option",{key:`ttm-${y.name}`,value:y.name},J(y.caption||y.name),9,hRn))),128))],40,pRn),S("button",{onClick:b[7]||(b[7]=y=>Q("ttm",v.$store.state.config.active_ttm_service)),disabled:!v.$store.state.config.active_ttm_service||v.$store.state.config.active_ttm_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTM Service"},b[32]||(b[32]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,mRn)])]),S("div",gRn,[b[36]||(b[36]=S("label",{for:"active_ttv_service",class:"setting-label"},"Text-to-Video (TTV)",-1)),S("div",_Rn,[S("select",{id:"active_ttv_service",value:v.$store.state.config.active_ttv_service,onChange:b[8]||(b[8]=y=>T("active_ttv_service",y.target.value)),class:"input flex-grow"},[b[34]||(b[34]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(l.value,y=>(N(),H("option",{key:`ttv-${y.name}`,value:y.name},J(y.caption||y.name),9,vRn))),128))],40,QRn),S("button",{onClick:b[9]||(b[9]=y=>Q("ttv",v.$store.state.config.active_ttv_service)),disabled:!v.$store.state.config.active_ttv_service||v.$store.state.config.active_ttv_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTV Service"},b[35]||(b[35]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,yRn)])])])]),S("section",bRn,[b[48]||(b[48]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Audio Input / STT Settings",-1)),S("div",ERn,[S("div",SRn,[b[39]||(b[39]=S("label",{for:"stt_listening_threshold",class:"setting-label"},"Listening Threshold",-1)),S("input",{id:"stt_listening_threshold",value:v.$store.state.config.stt_listening_threshold,onInput:b[10]||(b[10]=y=>T("stt_listening_threshold",parseInt(y.target.value))),type:"number",min:"0",step:"10",class:"input-sm w-24"},null,40,xRn)]),S("div",LRn,[b[40]||(b[40]=S("label",{for:"stt_silence_duration",class:"setting-label"},"Silence Duration (s)",-1)),S("input",{id:"stt_silence_duration",value:v.$store.state.config.stt_silence_duration,onInput:b[11]||(b[11]=y=>T("stt_silence_duration",parseInt(y.target.value))),type:"number",min:"0",step:"1",class:"input-sm w-24"},null,40,CRn)]),S("div",ARn,[b[41]||(b[41]=S("label",{for:"stt_sound_threshold_percentage",class:"setting-label"},"Min Sound Percentage",-1)),S("input",{id:"stt_sound_threshold_percentage",value:v.$store.state.config.stt_sound_threshold_percentage,onInput:b[12]||(b[12]=y=>T("stt_sound_threshold_percentage",parseInt(y.target.value))),type:"number",min:"0",max:"100",step:"1",class:"input-sm w-24"},null,40,wRn)]),S("div",ORn,[b[42]||(b[42]=S("label",{for:"stt_gain",class:"setting-label"},"Volume Amplification",-1)),S("input",{id:"stt_gain",value:v.$store.state.config.stt_gain,onInput:b[13]||(b[13]=y=>T("stt_gain",parseInt(y.target.value))),type:"number",min:"0",step:"1",class:"input-sm w-24"},null,40,MRn)]),S("div",RRn,[b[43]||(b[43]=S("label",{for:"stt_rate",class:"setting-label"},"Audio Rate (Hz)",-1)),S("input",{id:"stt_rate",value:v.$store.state.config.stt_rate,onInput:b[14]||(b[14]=y=>T("stt_rate",parseInt(y.target.value))),type:"number",min:"8000",step:"1000",class:"input-sm w-24"},null,40,NRn)]),S("div",DRn,[b[44]||(b[44]=S("label",{for:"stt_channels",class:"setting-label"},"Channels",-1)),S("input",{id:"stt_channels",value:v.$store.state.config.stt_channels,onInput:b[15]||(b[15]=y=>T("stt_channels",parseInt(y.target.value))),type:"number",min:"1",max:"2",step:"1",class:"input-sm w-24"},null,40,IRn)]),S("div",kRn,[b[45]||(b[45]=S("label",{for:"stt_buffer_size",class:"setting-label"},"Buffer Size",-1)),S("input",{id:"stt_buffer_size",value:v.$store.state.config.stt_buffer_size,onInput:b[16]||(b[16]=y=>T("stt_buffer_size",parseInt(y.target.value))),type:"number",min:"512",step:"512",class:"input-sm w-24"},null,40,HRn)]),S("div",PRn,[b[46]||(b[46]=S("label",{for:"stt_activate_word_detection",class:"toggle-label"},"Activate Wake Word Detection",-1)),ne(n6,{id:"stt_activate_word_detection",checked:v.$store.state.config.stt_activate_word_detection,"onUpdate:checked":b[17]||(b[17]=y=>h())},null,8,["checked"])]),S("div",{class:Ee(["setting-item md:col-span-2",{"opacity-50 pointer-events-none":!v.$store.state.config.stt_activate_word_detection}])},[b[47]||(b[47]=S("label",{for:"stt_word_detection_file",class:"setting-label"},"Wake Word File (.wav)",-1)),S("input",{type:"text",id:"stt_word_detection_file",value:v.$store.state.config.stt_word_detection_file,onInput:b[18]||(b[18]=y=>T("stt_word_detection_file",y.target.value)),class:"input flex-grow",placeholder:"Path to wake word wav file",disabled:!v.$store.state.config.stt_activate_word_detection},null,40,$Rn)],2)])]),S("section",VRn,[b[52]||(b[52]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Audio Devices",-1)),S("button",{onClick:m,class:"btn btn-secondary btn-sm mb-2",title:"Rescan for audio devices"},b[49]||(b[49]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 mr-1 feather feather-refresh-cw"},[S("polyline",{points:"23 4 23 10 17 10"}),S("polyline",{points:"1 20 1 14 7 14"}),S("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})],-1),Oe(" Refresh Devices ")])),S("div",BRn,[S("div",FRn,[b[50]||(b[50]=S("label",{for:"stt_input_device",class:"setting-label"},"Audio Input Device",-1)),S("select",{id:"stt_input_device",value:v.$store.state.config.stt_input_device,onChange:b[19]||(b[19]=y=>T("stt_input_device",parseInt(y.target.value))),class:"input flex-grow"},[(N(!0),H(Ae,null,Ue(c.value,(y,E)=>(N(),H("option",{key:`in-${E}`,value:u.value[E]},J(y),9,qRn))),128))],40,URn)]),S("div",GRn,[b[51]||(b[51]=S("label",{for:"tts_output_device",class:"setting-label"},"Audio Output Device",-1)),S("select",{id:"tts_output_device",value:v.$store.state.config.tts_output_device,onChange:b[20]||(b[20]=y=>T("tts_output_device",parseInt(y.target.value))),class:"input flex-grow"},[(N(!0),H(Ae,null,Ue(d.value,(y,E)=>(N(),H("option",{key:`out-${E}`,value:f.value[E]},J(y),9,zRn))),128))],40,jRn)])])])]))}},MO=ze(YRn,[["__scopeId","data-v-7b97b998"]]),t0="/assets/logo-CQZwS0X1.svg",WRn={name:"DynamicUIRenderer",props:{ui:{type:String,required:!0},instanceId:{type:String,required:!0}},data(){return{containerId:`dynamic-ui-${this.instanceId}`}},watch:{ui:{immediate:!0,handler(t){console.log(`UI prop changed for instance ${this.instanceId}:`,t),this.$nextTick(()=>{this.renderContent()})}}},methods:{renderContent(){console.log(`Rendering content for instance ${this.instanceId}...`);const t=this.$refs.container,n=new DOMParser().parseFromString(this.ui,"text/html"),o=n.getElementsByTagName("style");Array.from(o).forEach(i=>{const s=document.createElement("style");s.textContent=this.scopeCSS(i.textContent),document.head.appendChild(s)}),t.innerHTML=n.body.innerHTML;const r=n.getElementsByTagName("script");Array.from(r).forEach(i=>{const s=document.createElement("script");s.textContent=i.textContent,t.appendChild(s)})},scopeCSS(t){return t.replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g,`#${this.containerId} $1$2`)}}},KRn=["id"];function ZRn(t,e,n,o,r,i){return N(),H("div",{id:r.containerId,ref:"container"},null,8,KRn)}const Mk=ze(WRn,[["render",ZRn]]),ZT="/",XRn={name:"BindingEntry",components:{DynamicUIRenderer:Mk},props:{binding:{type:Object,required:!0},selected:{type:Boolean,default:!1},isProcessing:{type:Boolean,default:!1}},emits:["select","install","uninstall","reinstall","settings","reload-binding"],mounted(){this.updateIcons()},updated(){this.updateIcons()},methods:{updateIcons(){be(()=>{try{Le.replace({width:"1em",height:"1em"})}catch(t){console.error("Feather icons replacement failed:",t)}})},copyToClipBoard(t){if(!t){console.warn("Attempted to copy empty text.");return}navigator.clipboard?navigator.clipboard.writeText(t).then(()=>{console.log("Copied to clipboard:",t)}).catch(e=>{console.error("Failed to copy text using navigator.clipboard: ",e),this.fallbackCopyToClipboard(t)}):(console.warn("Clipboard API not available, attempting fallback."),this.fallbackCopyToClipboard(t))},fallbackCopyToClipboard(t){const e=document.createElement("textarea");e.value=t,e.style.position="absolute",e.style.left="-9999px",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")?console.log("Fallback copy successful:",t):console.error("Fallback copy command failed.")}catch(n){console.error("Error during fallback copy command:",n)}document.body.removeChild(e)},getImgUrl(){return!this.binding||typeof this.binding.icon!="string"||this.binding.icon.trim()===""?t0:/^(https?:)?\/\//.test(this.binding.icon)||this.binding.icon.startsWith("/")?this.binding.icon:(ZT.endsWith("/")?ZT:`${ZT}/`)+this.binding.icon},defaultImg(t){t.target.src!==t0&&(t.target.src=t0)},emitSelect(){this.isProcessing||this.$emit("select",this.binding)},emitInstall(){this.isProcessing||this.$emit("install",this.binding)},emitUninstall(){this.isProcessing||this.$emit("uninstall",this.binding)},emitReinstall(){this.isProcessing||this.$emit("reinstall",this.binding)},emitReloadBinding(){this.isProcessing||this.$emit("reload-binding",this.binding)},emitSettings(){this.isProcessing||this.$emit("settings",this.binding)}},watch:{selected(){this.updateIcons()},isProcessing(){this.updateIcons()},"binding.installed"(){this.updateIcons()},"binding.ui"(){this.updateIcons()}}},JRn=["title"],eNn={class:"flex flex-row items-center gap-3 mb-2"},tNn=["src"],nNn={class:"font-bold text-lg truncate text-gray-800 dark:text-white flex-grow"},rNn={key:0,class:"ml-2 text-xs font-medium text-green-600 dark:text-green-400"},iNn={key:1,class:"ml-2 text-xs font-medium text-yellow-600 dark:text-yellow-400"},oNn={class:"flex-none flex items-center gap-1"},sNn={class:"text-sm text-gray-600 dark:text-gray-400 space-y-1 mb-3"},aNn={class:"flex items-center"},lNn={class:"truncate"},cNn={class:"flex items-center"},uNn={class:"truncate font-mono text-xs bg-gray-100 dark:bg-gray-700 px-1 py-0.5 rounded"},dNn=["disabled"],TNn={class:"flex items-center"},fNn={class:"flex items-center"},pNn=["href"],hNn={class:"flex items-start pt-1"},mNn=["title","innerHTML"],gNn={class:"flex items-center justify-end gap-2 border-t border-gray-200 dark:border-gray-700 pt-3 min-h-[44px]"},_Nn={key:0,class:"flex items-center justify-center text-gray-500 dark:text-gray-400 w-full"};function QNn(t,e,n,o,r,i){const s=We("DynamicUIRenderer");return N(),H("div",{class:Ee(["items-start p-4 rounded-lg mb-2 shadow-lg border-2 cursor-pointer select-none transition-all duration-150 ease-in-out group",{"border-primary bg-primary-light dark:bg-primary-dark":n.selected,"hover:bg-gray-100 dark:hover:bg-gray-700":!n.selected&&!n.isProcessing,"border-transparent bg-white dark:bg-gray-800":!n.selected,"opacity-70 cursor-wait":n.isProcessing}]),title:n.binding.description||n.binding.name,onClick:e[8]||(e[8]=oe(a=>n.isProcessing?null:i.emitSelect(),["stop"]))},[S("div",null,[S("div",eNn,[S("img",{ref:"imgElement",src:i.getImgUrl(),onError:e[0]||(e[0]=a=>i.defaultImg(a)),class:Ee(["w-10 h-10 rounded-full object-fill flex-shrink-0 border border-gray-200 dark:border-gray-600",{"ring-2 ring-offset-2 ring-green-500 dark:ring-offset-gray-800":n.binding.installed&&!n.isProcessing,"ring-2 ring-offset-2 ring-yellow-500 dark:ring-offset-gray-800 animate-pulse":n.isProcessing}])},null,42,tNn),S("h3",nNn,[Oe(J(n.binding.name)+" ",1),n.binding.installed&&!n.isProcessing?(N(),H("span",rNn,"(Installed)")):Z("",!0),n.isProcessing?(N(),H("span",iNn,"(Processing...)")):Z("",!0)]),S("div",oNn,[n.selected&&n.binding.installed&&!n.isProcessing?(N(),H("button",{key:0,type:"button",title:"Reload binding",onClick:e[1]||(e[1]=oe((...a)=>i.emitReloadBinding&&i.emitReloadBinding(...a),["stop"])),class:"text-gray-500 hover:text-secondary dark:text-gray-400 dark:hover:text-secondary-light duration-150 active:scale-90 font-medium rounded-lg text-sm p-1.5 text-center inline-flex items-center focus:outline-none focus:ring-2 focus:ring-gray-300 dark:focus:ring-gray-600"},e[9]||(e[9]=[S("i",{"data-feather":"refresh-cw",class:"w-5 h-5"},null,-1),S("span",{class:"sr-only"},"Reload Binding",-1)]))):Z("",!0)])]),n.binding.ui?(N(),it(s,{key:0,class:"w-full h-full mb-3 border-t pt-3 border-gray-200 dark:border-gray-700",code:n.binding.ui},null,8,["code"])):Z("",!0),S("div",sNn,[S("div",aNn,[e[10]||(e[10]=S("i",{"data-feather":"user",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[11]||(e[11]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Author:",-1)),S("span",lNn,J(n.binding.author),1)]),S("div",cNn,[e[13]||(e[13]=S("i",{"data-feather":"folder",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[14]||(e[14]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Folder:",-1)),S("span",uNn,J(n.binding.folder),1),e[15]||(e[15]=S("div",{class:"flex-grow"},null,-1)),S("button",{class:"ml-2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 duration-150 active:scale-90 p-1 rounded disabled:opacity-50",title:"Copy folder path to clipboard",onClick:e[2]||(e[2]=oe(a=>i.copyToClipBoard(n.binding.folder),["stop"])),disabled:n.isProcessing},e[12]||(e[12]=[S("i",{"data-feather":"clipboard",class:"w-4 h-4"},null,-1),S("span",{class:"sr-only"},"Copy folder path",-1)]),8,dNn)]),S("div",TNn,[e[16]||(e[16]=S("i",{"data-feather":"git-merge",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[17]||(e[17]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Version:",-1)),S("span",null,J(n.binding.version),1)]),S("div",fNn,[e[18]||(e[18]=S("i",{"data-feather":"github",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[19]||(e[19]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Link:",-1)),S("a",{href:n.binding.link,target:"_blank",rel:"noopener noreferrer",class:Ee(["text-blue-600 dark:text-blue-400 hover:underline truncate",{"pointer-events-none opacity-70":n.isProcessing}]),onClick:e[3]||(e[3]=oe(()=>{},["stop"]))},J(n.binding.link),11,pNn)]),S("div",hNn,[e[21]||(e[21]=S("i",{"data-feather":"info",class:"w-4 h-4 mr-2 mt-0.5 flex-shrink-0"},null,-1)),S("div",null,[e[20]||(e[20]=S("b",{class:"font-medium text-gray-700 dark:text-gray-300"},"Description:",-1)),S("p",{class:"opacity-90 line-clamp-3",title:n.binding.description,innerHTML:n.binding.description},null,8,mNn)])])]),S("div",gNn,[n.isProcessing?(N(),H("div",_Nn,e[22]||(e[22]=[S("div",{class:"animate-spin rounded-full h-5 w-5 border-b-2 border-current mr-2"},null,-1),Oe(" Processing... ")]))):Z("",!0),n.isProcessing?Z("",!0):(N(),H(Ae,{key:1},[n.binding.installed?Z("",!0):(N(),H("button",{key:0,title:"Click to install",type:"button",onClick:e[4]||(e[4]=oe((...a)=>i.emitInstall&&i.emitInstall(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-blue-600 rounded-lg shadow-sm hover:bg-blue-700 focus:ring-4 focus:ring-blue-300 focus:outline-none dark:bg-blue-500 dark:hover:bg-blue-600 dark:focus:ring-blue-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[23]||(e[23]=[S("i",{"data-feather":"download-cloud",class:"w-4 h-4"},null,-1)]))),n.binding.installed?(N(),H("button",{key:1,title:"Click to Reinstall binding",type:"button",onClick:e[5]||(e[5]=oe((...a)=>i.emitReinstall&&i.emitReinstall(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-green-600 rounded-lg shadow-sm hover:bg-green-700 focus:ring-4 focus:ring-green-300 focus:outline-none dark:bg-green-500 dark:hover:bg-green-600 dark:focus:ring-green-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[24]||(e[24]=[S("i",{"data-feather":"refresh-ccw",class:"w-4 h-4"},null,-1)]))):Z("",!0),n.binding.installed?(N(),H("button",{key:2,title:"Click to Uninstall binding",type:"button",onClick:e[6]||(e[6]=oe((...a)=>i.emitUninstall&&i.emitUninstall(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-red-600 rounded-lg shadow-sm hover:bg-red-700 focus:ring-4 focus:ring-red-300 focus:outline-none dark:bg-red-500 dark:hover:bg-red-600 dark:focus:ring-red-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[25]||(e[25]=[S("i",{"data-feather":"trash-2",class:"w-4 h-4"},null,-1)]))):Z("",!0),n.selected&&n.binding.installed?(N(),H("button",{key:3,title:"Click to open Settings",type:"button",onClick:e[7]||(e[7]=oe((...a)=>i.emitSettings&&i.emitSettings(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-gray-600 rounded-lg shadow-sm hover:bg-gray-700 focus:ring-4 focus:ring-gray-300 focus:outline-none dark:bg-gray-500 dark:hover:bg-gray-600 dark:focus:ring-gray-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[26]||(e[26]=[S("i",{"data-feather":"settings",class:"w-4 h-4"},null,-1)]))):Z("",!0)],64))])])],10,JRn)}const vNn=ze(XRn,[["render",QNn],["__scopeId","data-v-720de39c"]]),RO="/assets/logo-6TyToX4A.png",yNn={name:"BindingZooSettings",components:{BindingEntry:vNn},props:{loading:{type:Boolean,default:!1},api_get_req:{type:Function,required:!0},api_post_req:{type:Function,required:!0},refresh_config:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},show_message_box:{type:Function,required:!0},client_id:{type:String,required:!0},show_universal_form:{type:Function,required:!0}},emits:["settings-changed"],data(){return{bindings:[],isLoadingBindings:!1,isLoadingAction:!1,sortOption:"name",searchTerm:""}},computed:{...BR({allBindings:t=>t.bindingsZoo||[],selectedBindingName:t=>t.config.binding_name,processingBindings:t=>t.processingBindingFolders||{}}),bindingsToDisplay(){return this.sortedBindings},currentBindingInfo(){return!this.$store.state.config||!this.$store.state.config.binding_name||this.bindings.length===0?null:this.bindings.find(e=>e.folder===this.$store.state.config.binding_name)},sortedBindings(){if(!this.bindings)return[];let t=[...this.bindings];if(this.searchTerm){const e=this.searchTerm.toLowerCase();t=t.filter(n=>{var o,r,i,s;return((o=n.name)==null?void 0:o.toLowerCase().includes(e))||((r=n.author)==null?void 0:r.toLowerCase().includes(e))||((i=n.description)==null?void 0:i.toLowerCase().includes(e))||((s=n.folder)==null?void 0:s.toLowerCase().includes(e))})}return t.sort((e,n)=>{const o=e.folder===this.selectedBindingName,r=n.folder===this.selectedBindingName;if(o&&!r)return-1;if(!o&&r)return 1;switch(this.sortOption){case"status":return e.installed&&!n.installed?-1:!e.installed&&n.installed?1:(e.name||"").localeCompare(n.name||"");case"author":return(e.author||"").localeCompare(n.author||"");case"name":default:return(e.name||"").localeCompare(n.name||"")}}),t}},methods:{isBindingSelected(t){return t.folder===this.selectedBindingName},isBindingProcessing(t){return!!this.processingBindings[t.folder]},getIconPath(t){if(console.log(`iconRelativePath: ${t}`),!t)return RO;if(t.startsWith("http"))return t;const e="/"+t.replace(/\\/g,"/");return console.log(`icon: ${e}`),e},imgPlaceholder(t){t.target.src=RO},async internal_api_get_req(t,e={}){try{const n={client_id:this.client_id,...e};return await this.api_get_req(t,n)}catch(n){throw console.error(`API GET error for ${t}:`,n),this.show_toast(`API Error: ${n.message||"Failed to fetch data"}`,4,!1),n}},async internal_api_post_req(t,e={}){try{const n={client_id:this.client_id,...e};return await this.api_post_req(t,n)}catch(n){throw console.error(`API POST error for ${t}:`,n),this.show_toast(`API Error: ${n.message||"Action failed"}`,4,!1),n}},async fetchBindings(){this.isLoadingBindings=!0;try{const t=await this.internal_api_get_req("list_bindings");this.bindings=(t||[]).map(e=>({...e,isProcessing:!1}))}catch{this.bindings=[]}finally{this.isLoadingBindings=!1,be(Le.replace)}},setBindingProcessing(t,e){const n=this.bindings.findIndex(o=>o.folder===t);n!==-1&&(this.bindings[n].isProcessing=e)},async handleSelect(t){if(console.log("received selection of binding"),console.log(t),!t||!t.folder){console.error("Invalid binding data received in handleSelect:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}if(!t.installed){this.show_toast(`Binding "${t.name}" is not installed.`,3,!1);return}this.$store.state.config.binding_name!==t.folder&&(this.$store.state.config.binding_name=t.folder,this.$store.state.config.model_name=null,await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),this.$emit("settings-changed",!0),this.show_toast(`Selected binding: ${t.name}`,3,!0))},async handleInstall(t){if(!t||!t.folder){console.error("Invalid binding data received in handleInstall:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}let e=!0;if(t.disclaimer&&(e=await this.show_yes_no_dialog(`Disclaimer for ${t.name}: +`);const e={name:this.newPreset.name.trim(),description:this.newPreset.description.trim(),author:this.newPreset.author.trim(),prompt:t,isLocal:!0};if(this.allThinkingPresets.find(o=>o.name.toLowerCase()===e.name.toLowerCase())){this.show_toast("A preset with this name already exists. Please choose a different name.",4,!1);return}this.localThinkingPresets.push(e),this.saveLocalPresets(),this.show_toast("New thinking preset added successfully.",4,!0),this.$nextTick(()=>{this.selectPreset(e.name)}),this.newPreset={name:"",description:"",author:"",prompt:""},this.showAddThinkingPresetForm=!1,this.$emit("settings-changed",!0)},replaceFeatherIcons(){be(()=>{try{Le.replace()}catch(t){console.error("Feather icons replacement failed:",t)}})}},mounted(){this.replaceFeatherIcons(),this.loadThinkingPresets()},updated(){this.replaceFeatherIcons()}},AAn={class:"user-settings-panel space-y-6"},wAn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},OAn={class:"setting-item"},MAn=["value"],RAn={class:"setting-item"},NAn=["value"],DAn={class:"setting-item items-start"},IAn={class:"flex-1 flex items-center gap-4"},kAn={class:"w-12 h-12 rounded-full overflow-hidden bg-blue-200 dark:bg-blue-700 ring-2 ring-offset-2 dark:ring-offset-blue-900 ring-blue-300 dark:ring-blue-600"},HAn=["src"],PAn={class:"flex gap-2"},$An={class:"btn btn-secondary btn-sm cursor-pointer"},VAn=["disabled"],BAn=["disabled"],FAn={key:0,class:"text-xs text-blue-500 dark:text-blue-400 italic ml-2"},UAn={class:"setting-item items-start"},qAn=["value"],GAn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},jAn={class:"toggle-item"},zAn={class:"toggle-item"},YAn={class:"toggle-item"},WAn={class:"toggle-item"},KAn={class:"toggle-item"},ZAn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},XAn={class:"setting-item items-start p-4 bg-red-100 dark:bg-red-900/30 rounded-lg border border-red-300 dark:border-red-700"},JAn={class:"flex justify-between items-start w-full"},ewn={class:"toggle-item"},twn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},nwn={class:"grid gap-6 bg-white dark:bg-gray-800 p-6 rounded-lg shadow-md border border-gray-200 dark:border-gray-600"},rwn={class:"setting-item"},iwn={class:"grid md:grid-cols-2 gap-4"},own={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},swn=["value"],awn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},lwn=["value"],cwn={class:"grid md:grid-cols-2 gap-4"},uwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},dwn=["value"],Twn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},fwn=["value"],pwn={class:"grid md:grid-cols-2 gap-4"},hwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},mwn=["value"],gwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},_wn=["value"],Qwn={class:"grid md:grid-cols-2 gap-4"},vwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},ywn=["value"],bwn={class:"setting-item !flex-col !items-start md:!flex-row md:!items-center"},Ewn=["value"],Swn={class:"setting-item items-start"},xwn=["value"],Lwn={class:"setting-item"},Cwn=["value"],Awn={class:"setting-item items-start"},wwn={class:"p-4 bg-gray-100 dark:bg-gray-900 rounded-md flex-grow border border-gray-200 dark:border-gray-700 overflow-x-auto text-sm"},Own=["innerHTML"],Mwn={class:"toggle-item"},Rwn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},Nwn={class:"grid gap-6 bg-white dark:bg-gray-800 p-6 rounded-lg shadow-md border border-gray-200 dark:border-gray-600"},Dwn={class:"space-y-4"},Iwn={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 mb-2"},kwn={class:"flex items-center gap-2 flex-wrap"},Hwn=["selected"],Pwn=["value","selected"],$wn=["value"],Vwn={key:0,class:"mt-4 p-4 border border-gray-300 dark:border-gray-600 rounded-lg bg-gray-50 dark:bg-gray-700 space-y-4"},Bwn={class:"setting-item !py-0"},Fwn={class:"setting-item !py-0"},Uwn={class:"setting-item !py-0"},qwn={class:"setting-item !py-0 items-start"};function Gwn(t,e,n,o,r,i){const s=We("ToggleSwitch");return N(),H("div",AAn,[e[70]||(e[70]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Main Configuration ",-1)),S("div",wAn,[e[37]||(e[37]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Application Branding",-1)),S("div",OAn,[e[32]||(e[32]=S("label",{for:"app_custom_name",class:"setting-label"},"Application Name",-1)),S("input",{type:"text",id:"app_custom_name",value:t.$store.state.config.app_custom_name,onInput:e[0]||(e[0]=a=>i.updateValue("app_custom_name",a.target.value)),class:"input flex-grow",placeholder:"Default: LoLLMs"},null,40,MAn)]),S("div",RAn,[e[33]||(e[33]=S("label",{for:"app_custom_slogan",class:"setting-label"},"Application Slogan",-1)),S("input",{type:"text",id:"app_custom_slogan",value:t.$store.state.config.app_custom_slogan,onInput:e[1]||(e[1]=a=>i.updateValue("app_custom_slogan",a.target.value)),class:"input flex-grow",placeholder:"Default: Lord of Large Language Models"},null,40,NAn)]),S("div",DAn,[e[35]||(e[35]=S("label",{class:"setting-label pt-2"},"Application Logo",-1)),S("div",IAn,[S("div",kAn,[S("img",{src:i.logoSrc,class:"w-full h-full object-cover",alt:"App Logo"},null,8,HAn)]),S("div",PAn,[S("label",$An,[e[34]||(e[34]=Oe(" Upload Logo ")),S("input",{type:"file",onChange:e[2]||(e[2]=(...a)=>i.uploadLogo&&i.uploadLogo(...a)),accept:"image/*",class:"hidden",disabled:r.isUploadingLogo},null,40,VAn)]),t.$store.state.config.app_custom_logo?(N(),H("button",{key:0,onClick:e[3]||(e[3]=(...a)=>i.removeLogo&&i.removeLogo(...a)),class:"btn btn-secondary btn-sm text-red-500 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-700",disabled:r.isUploadingLogo}," Remove Logo ",8,BAn)):Z("",!0)]),r.isUploadingLogo?(N(),H("span",FAn,"Uploading...")):Z("",!0)])]),S("div",UAn,[e[36]||(e[36]=S("label",{for:"app_custom_welcome_message",class:"setting-label pt-2"},"Custom Welcome Message",-1)),S("textarea",{id:"app_custom_welcome_message",value:t.$store.state.config.app_custom_welcome_message,onInput:e[4]||(e[4]=a=>i.updateValue("app_custom_welcome_message",a.target.value)),class:"input flex-grow min-h-[80px] resize-y",placeholder:"Enter a custom welcome message shown on the main page (leave blank for default)."},null,40,qAn)])]),S("div",GAn,[e[43]||(e[43]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"UI & Behavior",-1)),S("div",jAn,[e[38]||(e[38]=S("label",{for:"auto_title",class:"toggle-label"},[Oe(" Automatic Discussion Naming "),S("span",{class:"toggle-description"},"Let AI name your discussions automatically based on the first message.")],-1)),ne(s,{id:"auto_title",checked:t.$store.state.config.auto_title,"onUpdate:checked":e[5]||(e[5]=a=>i.updateBoolean("auto_title",a))},null,8,["checked"])]),S("div",zAn,[e[39]||(e[39]=S("label",{for:"auto_show_browser",class:"toggle-label"},[Oe(" Auto-launch Browser "),S("span",{class:"toggle-description"},"Open the default web browser automatically when LoLLMs starts.")],-1)),ne(s,{id:"auto_show_browser",checked:t.$store.state.config.auto_show_browser,"onUpdate:checked":e[6]||(e[6]=a=>i.updateBoolean("auto_show_browser",a))},null,8,["checked"])]),S("div",YAn,[e[40]||(e[40]=S("label",{for:"app_show_changelogs",class:"toggle-label"},[Oe(" Show Startup Changelog "),S("span",{class:"toggle-description"},"Display the changelog modal window when the application starts after an update.")],-1)),ne(s,{id:"app_show_changelogs",checked:t.$store.state.config.app_show_changelogs,"onUpdate:checked":e[7]||(e[7]=a=>i.updateBoolean("app_show_changelogs",a))},null,8,["checked"])]),S("div",WAn,[e[41]||(e[41]=S("label",{for:"app_show_fun_facts",class:"toggle-label"},[Oe(" Show Fun Facts "),S("span",{class:"toggle-description"},"Display fun facts related to AI and LLMs while loading or waiting.")],-1)),ne(s,{id:"app_show_fun_facts",checked:t.$store.state.config.app_show_fun_facts,"onUpdate:checked":e[8]||(e[8]=a=>i.updateBoolean("app_show_fun_facts",a))},null,8,["checked"])]),S("div",KAn,[e[42]||(e[42]=S("label",{for:"copy_to_clipboard_add_all_details",class:"toggle-label"},[Oe(" Enhanced Message Copy "),S("span",{class:"toggle-description"},"Include metadata (sender, model, etc.) when copying messages from discussions.")],-1)),ne(s,{id:"copy_to_clipboard_add_all_details",checked:t.$store.state.config.copy_to_clipboard_add_all_details,"onUpdate:checked":e[9]||(e[9]=a=>i.updateBoolean("copy_to_clipboard_add_all_details",a))},null,8,["checked"])])]),S("div",ZAn,[e[46]||(e[46]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Server & Access",-1)),S("div",XAn,[S("div",JAn,[e[44]||(e[44]=tr('',1)),ne(s,{id:"force_accept_remote_access",checked:t.$store.state.config.force_accept_remote_access,"onUpdate:checked":e[10]||(e[10]=a=>i.updateBoolean("force_accept_remote_access",a))},null,8,["checked"])])]),S("div",ewn,[e[45]||(e[45]=S("label",{for:"headless_server_mode",class:"toggle-label"},[Oe(" Headless Server Mode "),S("span",{class:"toggle-description"},"Run LoLLMs without the Web UI. Useful for server deployments or API-only usage. This setting requires a restart.")],-1)),ne(s,{id:"headless_server_mode",checked:t.$store.state.config.headless_server_mode,"onUpdate:checked":e[11]||(e[11]=a=>i.updateBoolean("headless_server_mode",a))},null,8,["checked"])])]),S("div",twn,[e[61]||(e[61]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Model Template Configuration",-1)),S("div",nwn,[S("div",rwn,[e[48]||(e[48]=S("label",{for:"template_type_select",class:"setting-label"},"Template Type",-1)),S("select",{id:"template_type_select",onChange:e[12]||(e[12]=(...a)=>i.handleTemplateSelection&&i.handleTemplateSelection(...a)),class:"input form-select flex-grow"},e[47]||(e[47]=[tr('',7)]),32)]),S("div",iwn,[S("div",own,[e[49]||(e[49]=S("label",{for:"start_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"Start Header Template",-1)),S("input",{type:"text",id:"start_header_id_template",value:t.$store.state.config.start_header_id_template,onInput:e[13]||(e[13]=a=>i.updateValue("start_header_id_template",a.target.value)),class:"input flex-grow"},null,40,swn)]),S("div",awn,[e[50]||(e[50]=S("label",{for:"end_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"End Header Template",-1)),S("input",{type:"text",id:"end_header_id_template",value:t.$store.state.config.end_header_id_template,onInput:e[14]||(e[14]=a=>i.updateValue("end_header_id_template",a.target.value)),class:"input flex-grow"},null,40,lwn)])]),S("div",cwn,[S("div",uwn,[e[51]||(e[51]=S("label",{for:"start_user_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"Start User Header Template",-1)),S("input",{type:"text",id:"start_user_header_id_template",value:t.$store.state.config.start_user_header_id_template,onInput:e[15]||(e[15]=a=>i.updateValue("start_user_header_id_template",a.target.value)),class:"input flex-grow"},null,40,dwn)]),S("div",Twn,[e[52]||(e[52]=S("label",{for:"end_user_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"End User Header Template",-1)),S("input",{type:"text",id:"end_user_header_id_template",value:t.$store.state.config.end_user_header_id_template,onInput:e[16]||(e[16]=a=>i.updateValue("end_user_header_id_template",a.target.value)),class:"input flex-grow"},null,40,fwn)])]),S("div",pwn,[S("div",hwn,[e[53]||(e[53]=S("label",{for:"start_ai_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"Start AI Header Template",-1)),S("input",{type:"text",id:"start_ai_header_id_template",value:t.$store.state.config.start_ai_header_id_template,onInput:e[17]||(e[17]=a=>i.updateValue("start_ai_header_id_template",a.target.value)),class:"input flex-grow"},null,40,mwn)]),S("div",gwn,[e[54]||(e[54]=S("label",{for:"end_ai_header_id_template",class:"setting-label !w-auto md:!w-1/3"},"End AI Header Template",-1)),S("input",{type:"text",id:"end_ai_header_id_template",value:t.$store.state.config.end_ai_header_id_template,onInput:e[18]||(e[18]=a=>i.updateValue("end_ai_header_id_template",a.target.value)),class:"input flex-grow"},null,40,_wn)])]),S("div",Qwn,[S("div",vwn,[e[55]||(e[55]=S("label",{for:"end_user_message_id_template",class:"setting-label !w-auto md:!w-1/3"},"End User Message Template",-1)),S("input",{type:"text",id:"end_user_message_id_template",value:t.$store.state.config.end_user_message_id_template,onInput:e[19]||(e[19]=a=>i.updateValue("end_user_message_id_template",a.target.value)),class:"input flex-grow"},null,40,ywn)]),S("div",bwn,[e[56]||(e[56]=S("label",{for:"end_ai_message_id_template",class:"setting-label !w-auto md:!w-1/3"},"End AI Message Template",-1)),S("input",{type:"text",id:"end_ai_message_id_template",value:t.$store.state.config.end_ai_message_id_template,onInput:e[20]||(e[20]=a=>i.updateValue("end_ai_message_id_template",a.target.value)),class:"input flex-grow"},null,40,Ewn)])]),S("div",Swn,[e[57]||(e[57]=S("label",{for:"separator_template",class:"setting-label pt-2"},"Separator Template",-1)),S("textarea",{id:"separator_template",value:t.$store.state.config.separator_template,onInput:e[21]||(e[21]=a=>i.updateValue("separator_template",a.target.value)),class:"input flex-grow min-h-[60px] resize-y"}," ",40,xwn)]),S("div",Lwn,[e[58]||(e[58]=S("label",{for:"system_message_template",class:"setting-label"},"System Message Template",-1)),S("input",{type:"text",id:"system_message_template",value:t.$store.state.config.system_message_template,onInput:e[22]||(e[22]=a=>i.updateValue("system_message_template",a.target.value)),class:"input flex-grow"},null,40,Cwn)]),S("div",Awn,[e[59]||(e[59]=S("label",{class:"setting-label pt-2"},"Full Template Preview",-1)),S("div",wwn,[S("div",{innerHTML:i.full_template,class:"whitespace-pre-wrap break-words"},null,8,Own)])]),S("div",Mwn,[e[60]||(e[60]=S("label",{for:"use_continue_message",class:"toggle-label"},[Oe(" Use Continue Message "),S("span",{class:"toggle-description"},"If supported by the model, use a specific token or phrase to indicate the AI should continue its response.")],-1)),ne(s,{id:"use_continue_message",checked:t.$store.state.config.use_continue_message,"onUpdate:checked":e[23]||(e[23]=a=>i.updateBoolean("use_continue_message",a))},null,8,["checked"])])])]),S("div",Rwn,[e[69]||(e[69]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Thinking Methods",-1)),S("div",Nwn,[S("div",Dwn,[S("div",Iwn,[e[62]||(e[62]=S("label",{for:"thinking_prompt_textarea",class:"setting-label !w-auto sm:!w-1/3"},[Oe(" Thinking Prompt "),S("span",{class:"block text-xs text-gray-500 dark:text-gray-400 mt-1 font-normal"},"Prompt used by the AI to structure its thought process. Use `thinking` tags.")],-1)),S("div",kwn,[S("select",{id:"thinking_preset_select",onChange:e[24]||(e[24]=a=>i.selectPreset(a.target.value)),class:"input form-select flex-grow min-w-[150px]"},[S("option",{value:"",disabled:"",selected:!r.selectedPresetName},"-- Select Preset --",8,Hwn),(N(!0),H(Ae,null,Ue(i.allThinkingPresets,a=>(N(),H("option",{key:a.name,value:a.name,selected:a.name===r.selectedPresetName},J(a.name)+" "+J(a.isLocal?"(Local)":""),9,Pwn))),128))],32),S("button",{onClick:e[25]||(e[25]=a=>r.showAddThinkingPresetForm=!r.showAddThinkingPresetForm),class:"btn btn-secondary btn-sm whitespace-nowrap"},J(r.showAddThinkingPresetForm?"Cancel Add":"Add New Preset"),1)])]),S("textarea",{id:"thinking_prompt_textarea",value:t.$store.state.config.thinking_prompt,onInput:e[26]||(e[26]=a=>i.updateValue("thinking_prompt",a.target.value)),class:"input w-full p-4 bg-gray-100 dark:bg-gray-900 rounded-md text-sm min-h-[150px] resize-y font-mono border border-gray-200 dark:border-gray-700",placeholder:"..."},null,40,$wn)]),r.showAddThinkingPresetForm?(N(),H("div",Vwn,[e[68]||(e[68]=S("h4",{class:"text-md font-semibold text-gray-800 dark:text-gray-200"},"Add New Local Preset",-1)),S("form",{onSubmit:e[31]||(e[31]=oe((...a)=>i.saveNewPreset&&i.saveNewPreset(...a),["prevent"])),class:"space-y-4"},[S("div",Bwn,[e[63]||(e[63]=S("label",{for:"new_preset_name",class:"setting-label"},[Oe("Name "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("input",{id:"new_preset_name","onUpdate:modelValue":e[27]||(e[27]=a=>r.newPreset.name=a),class:"input flex-grow",required:""},null,512),[[Je,r.newPreset.name]])]),S("div",Fwn,[e[64]||(e[64]=S("label",{for:"new_preset_desc",class:"setting-label"},[Oe("Description "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("input",{id:"new_preset_desc","onUpdate:modelValue":e[28]||(e[28]=a=>r.newPreset.description=a),class:"input flex-grow",required:""},null,512),[[Je,r.newPreset.description]])]),S("div",Uwn,[e[65]||(e[65]=S("label",{for:"new_preset_author",class:"setting-label"},[Oe("Author "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("input",{id:"new_preset_author","onUpdate:modelValue":e[29]||(e[29]=a=>r.newPreset.author=a),class:"input flex-grow",required:""},null,512),[[Je,r.newPreset.author]])]),S("div",qwn,[e[66]||(e[66]=S("label",{for:"new_preset_prompt",class:"setting-label pt-2"},[Oe("Thinking Prompt "),S("span",{class:"text-red-500"},"*")],-1)),Ce(S("textarea",{id:"new_preset_prompt","onUpdate:modelValue":e[30]||(e[30]=a=>r.newPreset.prompt=a),class:"input w-full min-h-[100px] resize-y font-mono flex-grow",required:"",placeholder:"Enter the thinking prompt. Use ... tags."},null,512),[[Je,r.newPreset.prompt]])]),e[67]||(e[67]=S("div",{class:"flex justify-end space-x-2"},[S("button",{type:"submit",class:"btn btn-primary btn-sm"},"Save Preset")],-1))],32)])):Z("",!0)])])])}const AO=ze(CAn,[["render",Gwn],["__scopeId","data-v-3760efd0"]]),jwn={name:"DataManagementSettings",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1},api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["settings-changed"],data(){return{fileInputs:[],serverStatuses:pr({})}},methods:{updateDataLake(t,e,n){const o=JSON.parse(JSON.stringify(this.$store.state.config.datalakes||[]));o[t]?(o[t][e]=n,e==="type"&&(n==="lollmsvectordb"?o[t].url="":o[t].path=""),this.$store.state.config.datalakes=o):console.error("Attempted to update non-existent datalake at index:",t)},addDataLake(){const t=this.$store.state.config.datalakes?[...this.$store.state.config.datalakes]:[];t.push({alias:"New DataLake",type:"lollmsvectordb",url:"",path:"",key:"",mounted:!1}),this.$store.state.config.datalakes=t,be(()=>Le.replace())},removeDataLake(t){const e=this.$store.state.config.datalakes.filter((n,o)=>o!==t);this.$store.state.config.datalakes=e},async vectorizeFolder(t){const e=this.$store.state.config.datalakes[t];if(!e||e.type!=="lollmsvectordb"||!e.path){this.show_toast("Please ensure a valid path is set for the LoLLMs VectorDB.",4,!1);return}this.show_toast(`Starting vectorization for: ${e.alias}`,5,!0);try{await this.api_post_req("vectorize_folder",{rag_database:e})}catch(n){this.show_toast(`Vectorization failed for ${e.alias}: ${n.message||n}`,4,!1)}},async selectLollmsVectordbFolder(t){try{const e=n=>{if(n&&n.path&&n.datalake_name){const o=JSON.parse(JSON.stringify(this.$store.state.config.datalakes||[]));o[t]&&(o[t].path=n.path,o[t].alias=n.datalake_name,this.$store.state.config.datalakes=o,this.show_toast(`Folder selected for Data Lake: ${n.path}`,4,!0))}else this.show_toast("Folder selection failed or returned invalid data.",4,!1);Ye.off("lollmsvectordb_datalake_added",e)};Ye.on("lollmsvectordb_datalake_added",e),await this.api_post_req("select_lollmsvectordb_input_folder")}catch(e){this.show_toast(`Failed to initiate folder selection: ${e.message||e}`,4,!1),Ye.off("lollmsvectordb_datalake_added")}},triggerFileInput(t){this.fileInputs[t]?this.fileInputs[t].click():console.warn("File input ref not found for index:",t)},async handleFileUpload(t,e){var r,i,s;const n=Array.from(t.target.files),o=this.$store.state.config.datalakes[e];if(!(!n.length||o.type!=="lightrag")){this.show_toast(`Uploading ${n.length} file(s) to ${o.alias}...`,n.length*2,!0);for(const a of n){const l=new FormData;l.append("file",a),l.append("client_id",this.client_id);const c={"Content-Type":"multipart/form-data"};o.key&&(c["X-API-Key"]=o.key);try{const u=await fe.post(`${o.url.replace(/\/+$/,"")}/documents/upload`,l,{headers:c});u.data&&(u.status===200||u.status===201)?this.show_toast(`${a.name} uploaded successfully to ${o.alias}`,4,!0):this.show_toast(`Failed to upload ${a.name}: ${((r=u.data)==null?void 0:r.detail)||"Server error"}`,4,!1)}catch(u){console.error(`Error uploading ${a.name}:`,u),this.show_toast(`Error uploading ${a.name}: ${((s=(i=u.response)==null?void 0:i.data)==null?void 0:s.detail)||u.message||u}`,4,!1)}}t.target&&(t.target.value=null)}},updateServer(t,e,n){const o=JSON.parse(JSON.stringify(this.$store.state.config.rag_local_services||[]));o[t]?(o[t][e]=n,this.$store.state.config.rag_local_services=o):console.error("Attempted to update non-existent server at index:",t)},addDatabaseService(){const t=this.$store.state.config.rag_local_services?[...this.$store.state.config.rag_local_services]:[];t.push({alias:"New RAG Server",type:"lightrag",url:"http://localhost:9621/",key:"",input_path:"",working_path:"",start_at_startup:!1}),this.$store.state.config.rag_local_services=t,be(()=>Le.replace())},removeDatabaseService(t){const e=this.$store.state.config.rag_local_services.filter((n,o)=>o!==t);this.$store.state.config.rag_local_services=e},async startRagServer(t){const e=this.$store.state.config.rag_local_services[t];this.show_toast(`Attempting to start server: ${e.alias}...`,4,!0);try{const n=await this.api_post_req("start_rag_server",{server_index:t});n.status?(this.show_toast(`Start command sent for ${e.alias}. Check status shortly.`,4,!0),setTimeout(()=>this.checkServerHealth(t),5e3)):this.show_toast(`Failed to send start command for ${e.alias}: ${n.error||"Unknown error"}`,4,!1)}catch(n){this.show_toast(`Error starting server ${e.alias}: ${n.message||n}`,4,!1)}},async checkServerHealth(t){if(!this.$store.state.config.rag_local_services||!this.$store.state.config.rag_local_services[t]){console.warn(`Tried to check health for non-existent server index: ${t}`);return}const e=this.$store.state.config.rag_local_services[t];if(!e||e.type!=="lightrag"){this.serverStatuses[t]={status:"unknown",loading:!1,details:null,dotClass:"bg-gray-400",title:"Unsupported",text:"Unsupported Type"};return}this.serverStatuses[t]={status:"loading",loading:!0,details:null,dotClass:"bg-yellow-400 animate-pulse",title:"Checking...",text:"Checking..."};try{const n=`${e.url.replace(/\/+$/,"")}/health`,o={};e.key&&(o["X-API-Key"]=e.key);const r=await fetch(n,{headers:o});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);const i=await r.json();this.serverStatuses[t]={status:"healthy",loading:!1,details:i,dotClass:"bg-green-500",title:"Healthy",text:"Healthy"},this.show_toast(`${e.alias} is healthy.`,3,!0)}catch(n){console.error(`Health check failed for ${e.alias}:`,n),this.serverStatuses[t]={status:"unhealthy",loading:!1,details:null,dotClass:"bg-red-500",title:"Unhealthy",text:"Unhealthy"},this.show_toast(`${e.alias} health check failed: ${n.message||n}`,4,!1)}},showLightRagWebUI(t){const e=this.$store.state.config.rag_local_services[t];if(e&&e.type==="lightrag"&&e.url){const n=`${e.url.replace(/\/+$/,"")}/webui`;window.open(n,"_blank")}else this.show_toast("Cannot open WebUI. Invalid server configuration.",4,!1)},async selectLightragFolder(t,e){const n=e==="input"?"select_lightrag_input_folder":"select_lightrag_output_folder",o=e==="input"?"lightrag_input_folder_added":"lightrag_output_folder_added",r=e==="input"?"input_path":"working_path";try{const i=s=>{if(s&&s.path){const a=JSON.parse(JSON.stringify(this.$store.state.config.rag_local_services||[]));a[t]&&(a[t][r]=s.path,this.$store.state.config.rag_local_services=a,this.show_toast(`${e.charAt(0).toUpperCase()+e.slice(1)} folder selected: ${s.path}`,4,!0))}else this.show_toast(`Folder selection failed for ${e}.`,4,!1);Ye.off(o,i)};Ye.on(o,i),await this.api_post_req(n,{server_index:t})}catch(i){this.show_toast(`Failed to initiate ${e} folder selection: ${i.message||i}`,4,!1),Ye.off(o)}},refreshFeatherIcons(){be(()=>{Le.replace()})}},mounted(){this.refreshFeatherIcons(),this.$store.state.config.rag_local_services&&this.$store.state.config.rag_local_services.forEach((t,e)=>this.checkServerHealth(e)),this.$store.state.config.datalakes&&(this.fileInputs=new Array(this.$store.state.config.datalakes.length).fill(null))},updated(){if(this.refreshFeatherIcons(),this.$store.state.config.datalakes&&this.fileInputs.length!==this.$store.state.config.datalakes.length){const t=this.$store.state.config.datalakes.length,e=this.fileInputs.length;t>e?this.fileInputs.push(...new Array(t-e).fill(null)):this.fileInputs.splice(t)}},watch:{"config.datalakes.length"(t,e){t>e?this.fileInputs.push(...new Array(t-e).fill(null)):t(N(),H("div",{key:`datalake-${l}`,class:"p-4 bg-blue-100 dark:bg-blue-800/60 border border-blue-200 dark:border-blue-700 rounded-lg shadow-sm space-y-4 relative group"},[S("button",{onClick:c=>i.removeDataLake(l),class:"absolute top-2 right-2 p-1 rounded-full text-red-500 hover:bg-red-100 dark:hover:bg-red-800 opacity-0 group-hover:opacity-100 transition-opacity duration-200 svg-button",title:"Remove Data Lake"},e[15]||(e[15]=[S("i",{"data-feather":"x-circle",class:"w-5 h-5"},null,-1)]),8,Zwn),S("div",Xwn,[S("div",null,[S("label",{for:`dl-alias-${l}`,class:"label mb-1"},"Alias",8,Jwn),S("input",{type:"text",id:`dl-alias-${l}`,value:a.alias,onInput:c=>i.updateDataLake(l,"alias",c.target.value),class:"input input-sm w-full",placeholder:"Enter alias (e.g., 'Project Docs')"},null,40,eOn)]),S("div",null,[S("label",{for:`dl-type-${l}`,class:"label mb-1"},"Type",8,tOn),S("select",{id:`dl-type-${l}`,required:"",value:a.type,onChange:c=>i.updateDataLake(l,"type",c.target.value),class:"input input-sm w-full"},e[16]||(e[16]=[S("option",{value:"lollmsvectordb"},"LoLLMs VectorDB",-1),S("option",{value:"lightrag"},"LightRAG",-1),S("option",{value:"elasticsearch"},"Elasticsearch",-1)]),40,nOn)]),S("div",rOn,[S("label",{for:`dl-pathurl-${l}`,class:"label mb-1"},J(a.type==="lollmsvectordb"?"Database Path":a.type==="lightrag"?"LightRAG URL":"Elasticsearch URL"),9,iOn),S("input",{type:"text",id:`dl-pathurl-${l}`,value:a.type==="lollmsvectordb"?a.path:a.url,onInput:c=>i.updateDataLake(l,a.type==="lollmsvectordb"?"path":"url",c.target.value),class:"input input-sm w-full",placeholder:a.type==="lollmsvectordb"?"Path to database folder":"http://host:port/"},null,40,oOn)]),a.type==="lightrag"||a.type==="elasticsearch"?(N(),H("div",sOn,[S("label",{for:`dl-key-${l}`,class:"label mb-1"},"API Key (Optional)",8,aOn),S("input",{type:"password",id:`dl-key-${l}`,value:a.key,onInput:c=>i.updateDataLake(l,"key",c.target.value),class:"input input-sm w-full",placeholder:"Enter API key if required"},null,40,lOn)])):Z("",!0)]),S("div",cOn,[S("div",uOn,[ne(s,{id:`dl-mounted-${l}`,checked:a.mounted,"onUpdate:checked":c=>i.updateDataLake(l,"mounted",c)},null,8,["id","checked","onUpdate:checked"]),S("label",{for:`dl-mounted-${l}`,class:"label !mb-0 text-sm cursor-pointer"}," Mounted ",8,dOn)]),S("div",TOn,[a.type==="lollmsvectordb"?(N(),H(Ae,{key:0},[S("button",{onClick:c=>i.vectorizeFolder(l),class:"btn btn-secondary btn-sm",title:"Vectorize or re-vectorize the selected folder"},e[17]||(e[17]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4 mr-1"},null,-1),Oe(" Vectorize ")]),8,fOn),S("button",{onClick:c=>i.selectLollmsVectordbFolder(l),class:"btn btn-primary btn-sm",title:"Select folder containing documents to vectorize"},e[18]||(e[18]=[S("i",{"data-feather":"folder-plus",class:"w-4 h-4 mr-1"},null,-1),Oe(" Select Folder ")]),8,pOn)],64)):Z("",!0),a.type==="lightrag"?(N(),H(Ae,{key:1},[S("button",{onClick:c=>i.triggerFileInput(l),class:"btn btn-success btn-sm",title:"Upload supported files (.txt, .md, .pdf, .docx, .pptx, .xlsx)"},e[19]||(e[19]=[S("i",{"data-feather":"upload",class:"w-4 h-4 mr-1"},null,-1),Oe(" Upload Files ")]),8,hOn),S("input",{type:"file",ref_for:!0,ref:c=>{c&&(r.fileInputs[l]=c)},onChange:c=>i.handleFileUpload(c,l),accept:".txt,.md,.pdf,.docx,.pptx,.xlsx",class:"hidden",multiple:""},null,40,mOn)],64)):Z("",!0)])])]))),128))]),S("div",gOn,[S("button",{onClick:e[0]||(e[0]=(...a)=>i.addDataLake&&i.addDataLake(...a)),class:"btn btn-primary w-full md:w-auto"},e[20]||(e[20]=[S("i",{"data-feather":"plus-circle",class:"w-5 h-5 mr-2"},null,-1),Oe(" Add New Data Lake ")]))])]),S("section",_On,[e[33]||(e[33]=S("h3",{class:"text-xl font-medium text-blue-600 dark:text-blue-300 mb-2"},"Self-Hosted RAG Servers",-1)),e[34]||(e[34]=S("p",{class:"text-sm text-blue-500 dark:text-blue-400 mb-4"}," Configure and manage local RAG server instances (like LightRAG) running on your machine. ",-1)),S("div",QOn,[!t.$store.state.config.rag_local_services||t.$store.state.config.rag_local_services.length===0?(N(),H("div",vOn," No RAG Servers configured. ")):Z("",!0),(N(!0),H(Ae,null,Ue(t.$store.state.config.rag_local_services,(a,l)=>{var c,u,d,f,T,h,g,_;return N(),H("div",{key:`server-${l}`,class:"p-4 bg-blue-100 dark:bg-blue-800/60 border border-blue-200 dark:border-blue-700 rounded-lg shadow-sm space-y-4 relative group"},[S("button",{onClick:m=>i.removeDatabaseService(l),class:"absolute top-2 right-2 p-1 rounded-full text-red-500 hover:bg-red-100 dark:hover:bg-red-800 opacity-0 group-hover:opacity-100 transition-opacity duration-200 svg-button",title:"Remove Server"},e[23]||(e[23]=[S("i",{"data-feather":"x-circle",class:"w-5 h-5"},null,-1)]),8,yOn),S("div",bOn,[S("div",null,[S("label",{for:`srv-alias-${l}`,class:"label mb-1"},"Alias",8,EOn),S("input",{type:"text",id:`srv-alias-${l}`,value:a.alias,onInput:m=>i.updateServer(l,"alias",m.target.value),class:"input input-sm w-full",placeholder:"Server Alias"},null,40,SOn)]),S("div",null,[S("label",{for:`srv-type-${l}`,class:"label mb-1"},"Type",8,xOn),S("select",{id:`srv-type-${l}`,required:"",value:a.type,onChange:m=>i.updateServer(l,"type",m.target.value),class:"input input-sm w-full"},e[24]||(e[24]=[S("option",{value:"lightrag"},"LightRAG",-1)]),40,LOn)]),S("div",COn,[S("label",{for:`srv-url-${l}`,class:"label mb-1"},"Server URL",8,AOn),S("input",{type:"text",id:`srv-url-${l}`,value:a.url,onInput:m=>i.updateServer(l,"url",m.target.value),class:"input input-sm w-full",placeholder:"http://localhost:port"},null,40,wOn)]),S("div",null,[S("label",{for:`srv-key-${l}`,class:"label mb-1"},"API Key (Optional)",8,OOn),S("input",{type:"password",id:`srv-key-${l}`,value:a.key,onInput:m=>i.updateServer(l,"key",m.target.value),class:"input input-sm w-full",placeholder:"API Key if needed"},null,40,MOn)]),S("div",ROn,[S("div",NOn,[ne(s,{id:`srv-startup-${l}`,checked:a.start_at_startup,"onUpdate:checked":m=>i.updateServer(l,"start_at_startup",m)},null,8,["id","checked","onUpdate:checked"]),S("label",{for:`srv-startup-${l}`,class:"label !mb-0 text-sm cursor-pointer"},"Start at Startup",8,DOn)])]),S("div",null,[S("label",{for:`srv-input-${l}`,class:"label mb-1"},"Input Folder Path",8,IOn),S("div",kOn,[S("input",{type:"text",id:`srv-input-${l}`,value:a.input_path,onInput:m=>i.updateServer(l,"input_path",m.target.value),class:"input input-sm w-full rounded-r-none",placeholder:"Path to watch for new files"},null,40,HOn),S("button",{onClick:m=>i.selectLightragFolder(l,"input"),class:"btn btn-secondary btn-sm rounded-l-none flex-shrink-0",title:"Select Input Folder"},e[25]||(e[25]=[S("i",{"data-feather":"folder",class:"w-4 h-4"},null,-1)]),8,POn)])]),S("div",null,[S("label",{for:`srv-work-${l}`,class:"label mb-1"},"Working Folder Path",8,$On),S("div",VOn,[S("input",{type:"text",id:`srv-work-${l}`,value:a.working_path,onInput:m=>i.updateServer(l,"working_path",m.target.value),class:"input input-sm w-full rounded-r-none",placeholder:"Path for database files"},null,40,BOn),S("button",{onClick:m=>i.selectLightragFolder(l,"output"),class:"btn btn-secondary btn-sm rounded-l-none flex-shrink-0",title:"Select Working Folder"},e[26]||(e[26]=[S("i",{"data-feather":"folder",class:"w-4 h-4"},null,-1)]),8,FOn)])])]),S("div",UOn,[S("div",qOn,[S("span",{class:Ee(["w-3 h-3 rounded-full",((c=r.serverStatuses[l])==null?void 0:c.dotClass)||"bg-status-unknown"]),title:((u=r.serverStatuses[l])==null?void 0:u.title)||"Unknown"},null,10,GOn),S("span",jOn,J(((d=r.serverStatuses[l])==null?void 0:d.text)||"Status Unknown"),1),S("button",{onClick:m=>i.checkServerHealth(l),class:"btn btn-secondary btn-sm !p-1",title:"Check Server Status",disabled:(f=r.serverStatuses[l])==null?void 0:f.loading},[S("i",{"data-feather":"refresh-cw",class:Ee(["w-4 h-4",(T=r.serverStatuses[l])!=null&&T.loading?"animate-spin":""])},null,2)],8,zOn)]),S("div",YOn,[S("button",{onClick:m=>i.startRagServer(l),class:"btn btn-success btn-sm",title:"Start this RAG server instance"},e[27]||(e[27]=[S("i",{"data-feather":"play",class:"w-4 h-4 mr-1"},null,-1),Oe(" Start Server ")]),8,WOn),a.type==="lightrag"&&((h=r.serverStatuses[l])==null?void 0:h.status)==="healthy"?(N(),H("button",{key:0,onClick:m=>i.showLightRagWebUI(l),class:"btn btn-primary btn-sm",title:"Open LightRAG Web UI"},e[28]||(e[28]=[S("i",{"data-feather":"external-link",class:"w-4 h-4 mr-1"},null,-1),Oe(" Show WebUI ")]),8,KOn)):Z("",!0)])]),a.type==="lightrag"&&r.serverStatuses[l]&&r.serverStatuses[l].status==="healthy"&&r.serverStatuses[l].details?(N(),H("div",ZOn,[S("div",null,[e[29]||(e[29]=S("b",{class:"text-blue-600 dark:text-blue-300"},"Indexed Files:",-1)),Oe(" "+J(r.serverStatuses[l].details.indexed_files_count??"N/A"),1)]),S("div",null,[e[30]||(e[30]=S("b",{class:"text-blue-600 dark:text-blue-300"},"Model:",-1)),Oe(" "+J(((g=r.serverStatuses[l].details.configuration)==null?void 0:g.llm_model)||"N/A"),1)]),S("div",null,[e[31]||(e[31]=S("b",{class:"text-blue-600 dark:text-blue-300"},"Embedding:",-1)),Oe(" "+J(((_=r.serverStatuses[l].details.configuration)==null?void 0:_.embedding_model)||"N/A"),1)])])):Z("",!0)])}),128))]),S("div",XOn,[S("button",{onClick:e[1]||(e[1]=(...a)=>i.addDatabaseService&&i.addDatabaseService(...a)),class:"btn btn-primary w-full md:w-auto"},e[32]||(e[32]=[S("i",{"data-feather":"plus-circle",class:"w-5 h-5 mr-2"},null,-1),Oe(" Add New RAG Server ")]))])]),S("section",JOn,[e[46]||(e[46]=S("h3",{class:"text-xl font-medium text-blue-600 dark:text-blue-300 mb-3"},"LoLLMs VectorDB Settings",-1)),S("div",eMn,[S("div",null,[e[36]||(e[36]=S("label",{for:"rag_vectorizer",class:"label mb-1"},"Vectorizer Engine",-1)),S("select",{id:"rag_vectorizer",required:"",value:t.$store.state.config.rag_vectorizer,onChange:e[2]||(e[2]=a=>t.$store.state.config.rag_vectorizer=a.target.value),class:"input input-sm w-full"},e[35]||(e[35]=[S("option",{value:"semantic"},"Sentence Transformer (Recommended)",-1),S("option",{value:"tfidf"},"TF-IDF (Fast, Less Accurate)",-1),S("option",{value:"openai"},"OpenAI Ada",-1),S("option",{value:"ollama"},"Ollama Embedding",-1)]),40,tMn)]),S("div",nMn,[S("div",rMn,[ne(s,{id:"rag_vectorizer_execute_remote_code",checked:t.$store.state.config.rag_vectorizer_execute_remote_code,"onUpdate:checked":e[3]||(e[3]=a=>t.$store.state.config.rag_vectorizer_execute_remote_code=!!a)},null,8,["checked"]),e[37]||(e[37]=S("label",{for:"rag_vectorizer_execute_remote_code",class:"label !mb-0 text-sm cursor-pointer"},"Allow Remote Code Execution",-1)),e[38]||(e[38]=S("i",{"data-feather":"alert-triangle",class:"w-4 h-4 text-red-500 dark:text-red-400 ml-1",title:"Security Risk: Only enable if using a trusted custom vectorizer source."},null,-1))])]),S("div",iMn,[e[42]||(e[42]=S("label",{for:"rag_vectorizer_model",class:"label mb-1"},"Vectorizer Model",-1)),S("select",{id:"rag_vectorizer_model",value:t.$store.state.config.rag_vectorizer_model,onChange:e[4]||(e[4]=a=>t.$store.state.config.rag_vectorizer_model=a.target.value),class:"input input-sm w-full mb-1",disabled:t.$store.state.config.rag_vectorizer==="tfidf"},[t.$store.state.config.rag_vectorizer==="tfidf"?(N(),H("option",sMn,"N/A for TF-IDF")):Z("",!0),t.$store.state.config.rag_vectorizer==="semantic"?(N(),H("optgroup",aMn,e[39]||(e[39]=[S("option",{value:"BAAI/bge-m3"},"BAAI/bge-m3",-1),S("option",{value:"nvidia/NV-Embed-v2"},"nvidia/NV-Embed-v2",-1),S("option",{value:"sentence-transformers/all-MiniLM-L6-v2"},"all-MiniLM-L6-v2",-1),S("option",{value:"sentence-transformers/all-mpnet-base-v2"},"all-mpnet-base-v2",-1)]))):Z("",!0),t.$store.state.config.rag_vectorizer==="openai"?(N(),H("optgroup",lMn,e[40]||(e[40]=[S("option",{value:"text-embedding-3-large"},"text-embedding-3-large",-1),S("option",{value:"text-embedding-3-small"},"text-embedding-3-small",-1),S("option",{value:"text-embedding-ada-002"},"text-embedding-ada-002 (Legacy)",-1)]))):Z("",!0),t.$store.state.config.rag_vectorizer==="ollama"?(N(),H("optgroup",cMn,e[41]||(e[41]=[S("option",{value:"mxbai-embed-large"},"mxbai-embed-large",-1),S("option",{value:"nomic-embed-text"},"nomic-embed-text",-1),S("option",{value:"all-minilm"},"all-minilm",-1),S("option",{value:"snowflake-arctic-embed"},"snowflake-arctic-embed",-1)]))):Z("",!0)],40,oMn),S("input",{type:"text",value:t.$store.state.config.rag_vectorizer_model,onInput:e[5]||(e[5]=a=>t.$store.state.config.rag_vectorizer_model=a.target.value),class:"input input-sm w-full",placeholder:"Or enter custom model name/path",disabled:t.$store.state.config.rag_vectorizer==="tfidf"},null,40,uMn)]),t.$store.state.config.rag_vectorizer==="ollama"||t.$store.state.config.rag_vectorizer==="openai"?(N(),H("div",dMn,[S("label",TMn,J(t.$store.state.config.rag_vectorizer==="ollama"?"Ollama Server URL":"OpenAI API Base URL"),1),S("input",{type:"text",id:"rag_service_url",value:t.$store.state.config.rag_service_url,onInput:e[6]||(e[6]=a=>t.$store.state.config.rag_service_url=a.target.value),class:"input input-sm w-full",placeholder:t.$store.state.config.rag_vectorizer==="ollama"?"http://localhost:11434":"https://api.openai.com/v1"},null,40,fMn)])):Z("",!0)]),S("div",pMn,[e[43]||(e[43]=S("label",{for:"rag_chunk_size-range",class:"setting-label"},"Chunk Size",-1)),S("div",hMn,[S("input",{id:"rag_chunk_size-range",value:t.$store.state.config.rag_chunk_size,onInput:e[7]||(e[7]=a=>t.$store.state.config.rag_chunk_size=parseInt(a.target.value)),type:"range",min:"100",max:"2000",step:"50",class:"range-input flex-grow"},null,40,mMn),S("input",{id:"rag_chunk_size-number",value:t.$store.state.config.rag_chunk_size,onInput:e[8]||(e[8]=a=>t.$store.state.config.rag_chunk_size=parseInt(a.target.value)),type:"number",min:"100",max:"2000",step:"50",class:"input input-sm w-24 text-center"},null,40,gMn)])]),S("div",_Mn,[e[44]||(e[44]=S("label",{for:"rag_overlap_size-range",class:"setting-label"},"Overlap Size",-1)),S("div",QMn,[S("input",{id:"rag_overlap_size-range",value:t.$store.state.config.rag_overlap_size,onInput:e[9]||(e[9]=a=>t.$store.state.config.rag_overlap_size=parseInt(a.target.value)),type:"range",min:"0",max:"500",step:"10",class:"range-input flex-grow"},null,40,vMn),S("input",{id:"rag_overlap_size-number",value:t.$store.state.config.rag_overlap_size,onInput:e[10]||(e[10]=a=>t.$store.state.config.rag_overlap_size=parseInt(a.target.value)),type:"number",min:"0",max:"500",step:"10",class:"input input-sm w-24 text-center"},null,40,yMn)])]),S("div",bMn,[ne(s,{id:"rag_clean_chunks",checked:t.$store.state.config.rag_clean_chunks,"onUpdate:checked":e[11]||(e[11]=a=>t.$store.state.config.rag_clean_chunks=!!a)},null,8,["checked"]),e[45]||(e[45]=S("label",{for:"rag_clean_chunks",class:"toggle-label !flex-none"},[Oe(" Clean Chunks "),S("span",{class:"toggle-description"},"Attempt to remove redundant whitespace and formatting from text chunks before vectorization.")],-1))])]),S("section",EMn,[e[50]||(e[50]=S("h3",{class:"text-xl font-medium text-blue-600 dark:text-blue-300 mb-3"},"RAG Query Settings",-1)),S("div",SMn,[e[47]||(e[47]=S("label",{for:"rag_build_keys_words",class:"toggle-label"},[Oe(" Reformulate Query with Keywords "),S("span",{class:"toggle-description"},"Let the AI extract keywords from your prompt to potentially improve database search relevance.")],-1)),ne(s,{id:"rag_build_keys_words",checked:t.$store.state.config.rag_build_keys_words,"onUpdate:checked":e[12]||(e[12]=a=>t.$store.state.config.rag_build_keys_words=!!a)},null,8,["checked"])]),S("div",xMn,[e[48]||(e[48]=S("label",{for:"rag_put_chunk_informations_into_context",class:"toggle-label"},[Oe(" Include Chunk Source Info in Context "),S("span",{class:"toggle-description"},"Prepend retrieved text chunks with source information (e.g., filename) when adding to the LLM context.")],-1)),ne(s,{id:"rag_put_chunk_informations_into_context",checked:t.$store.state.config.rag_put_chunk_informations_into_context,"onUpdate:checked":e[13]||(e[13]=a=>t.$store.state.config.rag_put_chunk_informations_into_context=!!a)},null,8,["checked"])]),S("div",LMn,[e[49]||(e[49]=S("label",{for:"data_vectorization_save_db",class:"toggle-label"},[Oe(" Persist Vector Database "),S("span",{class:"toggle-description"},"Save the vectorized data to disk. If disabled, the database is in-memory only and lost on restart. (Applies mainly to LoLLMs VectorDB).")],-1)),ne(s,{id:"data_vectorization_save_db",checked:t.$store.state.config.data_vectorization_save_db,"onUpdate:checked":e[14]||(e[14]=a=>t.$store.state.config.data_vectorization_save_db=!!a)},null,8,["checked"])])])])}const wO=ze(jwn,[["render",CMn],["__scopeId","data-v-52537129"]]),AMn={name:"InternetSettings",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1}},emits:["update:setting"],data(){return{}},methods:{updateValue(t,e){const o=["internet_nb_search_pages","internet_vectorization_chunk_size","internet_vectorization_overlap_size","internet_vectorization_nb_chunks"].includes(t)?Number(e)||0:e;this.$emit("update:setting",{key:t,value:o})},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e})},replaceFeatherIcons(){be(()=>{try{typeof Le<"u"&&Le&&typeof Le.replace=="function"&&Le.replace()}catch(t){console.error("Feather icons replacement failed:",t)}})}},mounted(){this.replaceFeatherIcons()},updated(){this.replaceFeatherIcons()}},wMn={class:"user-settings-panel space-y-6"},OMn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},MMn={class:"toggle-item"},RMn={class:"setting-item"},NMn={class:"flex-1 flex items-center gap-4"},DMn=["value","disabled"],IMn=["value","disabled"],kMn={class:"setting-item"},HMn={class:"flex-1 flex items-center gap-4"},PMn=["value","disabled"],$Mn=["value","disabled"],VMn={class:"setting-item"},BMn={class:"flex-1 flex items-center gap-4"},FMn=["value","disabled"],UMn=["value","disabled"],qMn={class:"setting-item"},GMn={class:"flex-1 flex items-center gap-4"},jMn=["value","disabled"],zMn=["value","disabled"];function YMn(t,e,n,o,r,i){const s=We("ToggleSwitch");return N(),H("div",wMn,[e[22]||(e[22]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Internet Search ",-1)),e[23]||(e[23]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400 mb-4"}," Configure how LoLLMs interacts with the internet to answer questions or find information. Requires a model capable of function calling or specific instruction following. ",-1)),S("section",OMn,[e[16]||(e[16]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Activation & Behavior",-1)),S("div",MMn,[e[12]||(e[12]=S("label",{for:"activate_internet_search",class:"toggle-label"},[Oe(" Enable Automatic Internet Search "),S("span",{class:"toggle-description"},"Allow the AI to decide when to search the internet based on the prompt.")],-1)),ne(s,{id:"activate_internet_search",checked:t.$store.state.config.activate_internet_search,"onUpdate:checked":e[0]||(e[0]=a=>i.updateBoolean("activate_internet_search",a))},null,8,["checked"])]),S("div",{class:Ee(["toggle-item",{"opacity-50 pointer-events-none":!t.$store.state.config.activate_internet_search}])},[e[13]||(e[13]=S("label",{for:"internet_activate_search_decision",class:"toggle-label"},[Oe(" Enable Explicit Search Decision "),S("span",{class:"toggle-description"},"Make the AI explicitly state whether it needs to search the internet before performing the search.")],-1)),ne(s,{id:"internet_activate_search_decision",checked:t.$store.state.config.internet_activate_search_decision,"onUpdate:checked":e[1]||(e[1]=a=>i.updateBoolean("internet_activate_search_decision",a)),disabled:!t.$store.state.config.activate_internet_search},null,8,["checked","disabled"])],2),S("div",{class:Ee(["toggle-item",{"opacity-50 pointer-events-none":!t.$store.state.config.activate_internet_search}])},[e[14]||(e[14]=S("label",{for:"activate_internet_pages_judgement",class:"toggle-label"},[Oe(" Enable Search Result Evaluation "),S("span",{class:"toggle-description"},"Allow the AI to evaluate the relevance and quality of search result snippets before using them.")],-1)),ne(s,{id:"activate_internet_pages_judgement",checked:t.$store.state.config.activate_internet_pages_judgement,"onUpdate:checked":e[2]||(e[2]=a=>i.updateBoolean("activate_internet_pages_judgement",a)),disabled:!t.$store.state.config.activate_internet_search},null,8,["checked","disabled"])],2),S("div",{class:Ee(["toggle-item",{"opacity-50 pointer-events-none":!t.$store.state.config.activate_internet_search}])},[e[15]||(e[15]=S("label",{for:"internet_quick_search",class:"toggle-label"},[Oe(" Enable Quick Search "),S("span",{class:"toggle-description"},"Perform a faster search potentially using fewer results or less processing, might be less accurate.")],-1)),ne(s,{id:"internet_quick_search",checked:t.$store.state.config.internet_quick_search,"onUpdate:checked":e[3]||(e[3]=a=>i.updateBoolean("internet_quick_search",a)),disabled:!t.$store.state.config.activate_internet_search},null,8,["checked","disabled"])],2)]),S("section",{class:Ee(["space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color",t.$store.state.config.activate_internet_search?"":"opacity-50 pointer-events-none"])},[e[21]||(e[21]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Search Parameters",-1)),S("div",RMn,[e[17]||(e[17]=S("label",{for:"internet_nb_search_pages",class:"setting-label"},[Oe(" Number of Search Results "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Controls how many search result snippets are initially retrieved.")],-1)),S("div",NMn,[S("input",{id:"internet_nb_search_pages-range",value:t.$store.state.config.internet_nb_search_pages,onInput:e[4]||(e[4]=a=>i.updateValue("internet_nb_search_pages",a.target.value)),type:"range",min:"1",max:"20",step:"1",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,DMn),S("input",{id:"internet_nb_search_pages-number",value:t.$store.state.config.internet_nb_search_pages,onInput:e[5]||(e[5]=a=>i.updateValue("internet_nb_search_pages",a.target.value)),type:"number",min:"1",max:"20",step:"1",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,IMn)])]),S("div",kMn,[e[18]||(e[18]=S("label",{for:"internet_vectorization_chunk_size",class:"setting-label"},[Oe(" Content Chunk Size "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Size of text chunks when processing content from searched web pages (if applicable).")],-1)),S("div",HMn,[S("input",{id:"internet_vectorization_chunk_size-range",value:t.$store.state.config.internet_vectorization_chunk_size,onInput:e[6]||(e[6]=a=>i.updateValue("internet_vectorization_chunk_size",a.target.value)),type:"range",min:"100",max:"1000",step:"50",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,PMn),S("input",{id:"internet_vectorization_chunk_size-number",value:t.$store.state.config.internet_vectorization_chunk_size,onInput:e[7]||(e[7]=a=>i.updateValue("internet_vectorization_chunk_size",a.target.value)),type:"number",min:"100",max:"1000",step:"50",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,$Mn)])]),S("div",VMn,[e[19]||(e[19]=S("label",{for:"internet_vectorization_overlap_size",class:"setting-label"},[Oe(" Content Overlap Size "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Overlap between text chunks when processing web page content.")],-1)),S("div",BMn,[S("input",{id:"internet_vectorization_overlap_size-range",value:t.$store.state.config.internet_vectorization_overlap_size,onInput:e[8]||(e[8]=a=>i.updateValue("internet_vectorization_overlap_size",a.target.value)),type:"range",min:"0",max:"200",step:"10",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,FMn),S("input",{id:"internet_vectorization_overlap_size-number",value:t.$store.state.config.internet_vectorization_overlap_size,onInput:e[9]||(e[9]=a=>i.updateValue("internet_vectorization_overlap_size",a.target.value)),type:"number",min:"0",max:"200",step:"10",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,UMn)])]),S("div",qMn,[e[20]||(e[20]=S("label",{for:"internet_vectorization_nb_chunks",class:"setting-label"},[Oe(" Number of Content Chunks to Use "),S("span",{class:"block text-xs font-normal text-blue-500 dark:text-blue-400 mt-1"},"Maximum number of processed text chunks from web pages to include in the context.")],-1)),S("div",GMn,[S("input",{id:"internet_vectorization_nb_chunks-range",value:t.$store.state.config.internet_vectorization_nb_chunks,onInput:e[10]||(e[10]=a=>i.updateValue("internet_vectorization_nb_chunks",a.target.value)),type:"range",min:"1",max:"20",step:"1",class:"range-input",disabled:!t.$store.state.config.activate_internet_search},null,40,jMn),S("input",{id:"internet_vectorization_nb_chunks-number",value:t.$store.state.config.internet_vectorization_nb_chunks,onInput:e[11]||(e[11]=a=>i.updateValue("internet_vectorization_nb_chunks",a.target.value)),type:"number",min:"1",max:"20",step:"1",class:"input-sm w-20 text-center",disabled:!t.$store.state.config.activate_internet_search},null,40,zMn)])])],2)])}const OO=ze(AMn,[["render",YMn],["__scopeId","data-v-4777608e"]]),WMn={class:"user-settings-panel space-y-6"},KMn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},ZMn={class:"grid grid-cols-1 gap-4"},XMn={class:"setting-item"},JMn={class:"flex items-center gap-2 flex-grow"},eRn=["value"],tRn=["value"],nRn=["disabled"],rRn={class:"setting-item"},iRn={class:"flex items-center gap-2 flex-grow"},oRn=["value"],sRn=["value"],aRn=["disabled"],lRn={class:"setting-item"},cRn={class:"flex items-center gap-2 flex-grow"},uRn=["value"],dRn=["value"],TRn=["disabled"],fRn={class:"setting-item"},pRn={class:"flex items-center gap-2 flex-grow"},hRn=["value"],mRn=["value"],gRn=["disabled"],_Rn={class:"setting-item"},QRn={class:"flex items-center gap-2 flex-grow"},vRn=["value"],yRn=["value"],bRn=["disabled"],ERn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},SRn={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-4"},xRn={class:"setting-item !items-center"},LRn=["value"],CRn={class:"setting-item !items-center"},ARn=["value"],wRn={class:"setting-item !items-center"},ORn=["value"],MRn={class:"setting-item !items-center"},RRn=["value"],NRn={class:"setting-item !items-center"},DRn=["value"],IRn={class:"setting-item !items-center"},kRn=["value"],HRn={class:"setting-item !items-center"},PRn=["value"],$Rn={class:"toggle-item md:col-span-2"},VRn=["value","disabled"],BRn={class:"space-y-4 p-4 border border-blue-300 dark:border-blue-600 rounded-lg panels-color"},FRn={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},URn={class:"setting-item"},qRn=["value"],GRn=["value"],jRn={class:"setting-item"},zRn=["value"],YRn=["value"],WRn={__name:"ServicesZooSettings",props:{loading:{type:Boolean,default:!1},api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},show_universal_form:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["settings-changed"],setup(t,{emit:e}){const n=t,o=e,r=ke([]),i=ke([]),s=ke([]),a=ke([]),l=ke([]),c=ke([]),u=ke([]),d=ke([]),f=ke([]),T=(v,b)=>{o("settings-changed")},h=(v,b)=>{o("settings-changed")},g=async()=>{try{const[v,b,y,E,x]=await Promise.all([n.api_post_req("list_tts_services"),n.api_post_req("list_stt_services"),n.api_post_req("list_tti_services"),n.api_post_req("list_ttm_services"),n.api_post_req("list_ttv_services")]);r.value=v||[],i.value=b||[],s.value=y||[],a.value=E||[],l.value=x||[]}catch(v){n.show_toast("Failed to fetch service lists.",4,!1),console.error("Error fetching service lists:",v)}},_=async()=>{try{const[v,b]=await Promise.all([n.api_get_req("get_snd_input_devices"),n.api_get_req("get_snd_output_devices")]);c.value=(v==null?void 0:v.device_names)||[],u.value=(v==null?void 0:v.device_indexes)||[],d.value=(b==null?void 0:b.device_names)||[],f.value=(b==null?void 0:b.device_indexes)||[]}catch(v){n.show_toast("Failed to fetch audio devices.",4,!1),console.error("Error fetching audio devices:",v)}},m=()=>{n.show_toast("Refreshing audio devices...",2,!0),_()},Q=async(v,b)=>{if(!b||b==="None"||b==="browser"){n.show_toast(`No configurable settings for '${b}'.`,3,!1);return}const y={tts:"get_active_tts_settings",stt:"get_active_stt_settings",tti:"get_active_tti_settings",ttm:"get_active_ttm_settings",ttv:"get_active_ttv_settings"},E={tts:"set_active_tts_settings",stt:"set_active_stt_settings",tti:"set_active_tti_settings",ttm:"set_active_ttm_settings",ttv:"set_active_ttv_settings"},x=y[v],L=E[v];if(!(!x||!L))try{const C=await n.api_post_req(x);if(C&&Object.keys(C).length>0){const A=await n.show_universal_form(C,`${b} Settings`,"Save","Cancel"),O=await n.api_post_req(L,{settings:A});O&&O.status?n.show_toast(`${b} settings updated successfully!`,4,!0):n.show_toast(`Failed to update ${b} settings: ${(O==null?void 0:O.error)||"Unknown error"}`,4,!1)}else n.show_toast(`${b} has no configurable settings.`,4,!1)}catch(C){n.show_toast(`Error fetching/setting ${b} settings: ${C.message}`,4,!1),console.error(`Error with ${b} settings:`,C)}};return hr(()=>{g(),_(),be(()=>{Le.replace()})}),Dl(()=>{be(()=>{Le.replace()})}),(v,b)=>(N(),H("div",WMn,[b[53]||(b[53]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Services Zoo & Audio ",-1)),S("section",KMn,[b[37]||(b[37]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Default Service Selection",-1)),b[38]||(b[38]=S("p",{class:"text-xs text-blue-500 dark:text-blue-400 mb-4"}," Choose the default services LoLLMs will use for various tasks. Specific personalities might override these. ",-1)),S("div",ZMn,[S("div",XMn,[b[24]||(b[24]=S("label",{for:"active_tts_service",class:"setting-label"},"Text-to-Speech (TTS)",-1)),S("div",JMn,[S("select",{id:"active_tts_service",value:v.$store.state.config.active_tts_service,onChange:b[0]||(b[0]=y=>T("active_tts_service",y.target.value)),class:"input flex-grow"},[b[21]||(b[21]=S("option",{value:"None"},"None",-1)),b[22]||(b[22]=S("option",{value:"browser"},"Browser TTS",-1)),(N(!0),H(Ae,null,Ue(r.value,y=>(N(),H("option",{key:`tts-${y.name}`,value:y.name},J(y.caption||y.name),9,tRn))),128))],40,eRn),S("button",{onClick:b[1]||(b[1]=y=>Q("tts",v.$store.state.config.active_tts_service)),disabled:!v.$store.state.config.active_tts_service||v.$store.state.config.active_tts_service==="None"||v.$store.state.config.active_tts_service==="browser",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTS Service"},b[23]||(b[23]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,nRn)])]),S("div",rRn,[b[27]||(b[27]=S("label",{for:"active_stt_service",class:"setting-label"},"Speech-to-Text (STT)",-1)),S("div",iRn,[S("select",{id:"active_stt_service",value:v.$store.state.config.active_stt_service,onChange:b[2]||(b[2]=y=>T("active_stt_service",y.target.value)),class:"input flex-grow"},[b[25]||(b[25]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(i.value,y=>(N(),H("option",{key:`stt-${y.name}`,value:y.name},J(y.caption||y.name),9,sRn))),128))],40,oRn),S("button",{onClick:b[3]||(b[3]=y=>Q("stt",v.$store.state.config.active_stt_service)),disabled:!v.$store.state.config.active_stt_service||v.$store.state.config.active_stt_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected STT Service"},b[26]||(b[26]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,aRn)])]),S("div",lRn,[b[30]||(b[30]=S("label",{for:"active_tti_service",class:"setting-label"},"Text-to-Image (TTI)",-1)),S("div",cRn,[S("select",{id:"active_tti_service",value:v.$store.state.config.active_tti_service,onChange:b[4]||(b[4]=y=>T("active_tti_service",y.target.value)),class:"input flex-grow"},[b[28]||(b[28]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(s.value,y=>(N(),H("option",{key:`tti-${y.name}`,value:y.name},J(y.caption||y.name),9,dRn))),128))],40,uRn),S("button",{onClick:b[5]||(b[5]=y=>Q("tti",v.$store.state.config.active_tti_service)),disabled:!v.$store.state.config.active_tti_service||v.$store.state.config.active_tti_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTI Service"},b[29]||(b[29]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,TRn)])]),S("div",fRn,[b[33]||(b[33]=S("label",{for:"active_ttm_service",class:"setting-label"},"Text-to-Music (TTM)",-1)),S("div",pRn,[S("select",{id:"active_ttm_service",value:v.$store.state.config.active_ttm_service,onChange:b[6]||(b[6]=y=>T("active_ttm_service",y.target.value)),class:"input flex-grow"},[b[31]||(b[31]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(a.value,y=>(N(),H("option",{key:`ttm-${y.name}`,value:y.name},J(y.caption||y.name),9,mRn))),128))],40,hRn),S("button",{onClick:b[7]||(b[7]=y=>Q("ttm",v.$store.state.config.active_ttm_service)),disabled:!v.$store.state.config.active_ttm_service||v.$store.state.config.active_ttm_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTM Service"},b[32]||(b[32]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,gRn)])]),S("div",_Rn,[b[36]||(b[36]=S("label",{for:"active_ttv_service",class:"setting-label"},"Text-to-Video (TTV)",-1)),S("div",QRn,[S("select",{id:"active_ttv_service",value:v.$store.state.config.active_ttv_service,onChange:b[8]||(b[8]=y=>T("active_ttv_service",y.target.value)),class:"input flex-grow"},[b[34]||(b[34]=S("option",{value:"None"},"None",-1)),(N(!0),H(Ae,null,Ue(l.value,y=>(N(),H("option",{key:`ttv-${y.name}`,value:y.name},J(y.caption||y.name),9,yRn))),128))],40,vRn),S("button",{onClick:b[9]||(b[9]=y=>Q("ttv",v.$store.state.config.active_ttv_service)),disabled:!v.$store.state.config.active_ttv_service||v.$store.state.config.active_ttv_service==="None",class:"btn btn-secondary btn-sm p-2 flex-shrink-0",title:"Configure Selected TTV Service"},b[35]||(b[35]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 feather feather-settings"},[S("circle",{cx:"12",cy:"12",r:"3"}),S("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)]),8,bRn)])])])]),S("section",ERn,[b[48]||(b[48]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Audio Input / STT Settings",-1)),S("div",SRn,[S("div",xRn,[b[39]||(b[39]=S("label",{for:"stt_listening_threshold",class:"setting-label"},"Listening Threshold",-1)),S("input",{id:"stt_listening_threshold",value:v.$store.state.config.stt_listening_threshold,onInput:b[10]||(b[10]=y=>T("stt_listening_threshold",parseInt(y.target.value))),type:"number",min:"0",step:"10",class:"input-sm w-24"},null,40,LRn)]),S("div",CRn,[b[40]||(b[40]=S("label",{for:"stt_silence_duration",class:"setting-label"},"Silence Duration (s)",-1)),S("input",{id:"stt_silence_duration",value:v.$store.state.config.stt_silence_duration,onInput:b[11]||(b[11]=y=>T("stt_silence_duration",parseInt(y.target.value))),type:"number",min:"0",step:"1",class:"input-sm w-24"},null,40,ARn)]),S("div",wRn,[b[41]||(b[41]=S("label",{for:"stt_sound_threshold_percentage",class:"setting-label"},"Min Sound Percentage",-1)),S("input",{id:"stt_sound_threshold_percentage",value:v.$store.state.config.stt_sound_threshold_percentage,onInput:b[12]||(b[12]=y=>T("stt_sound_threshold_percentage",parseInt(y.target.value))),type:"number",min:"0",max:"100",step:"1",class:"input-sm w-24"},null,40,ORn)]),S("div",MRn,[b[42]||(b[42]=S("label",{for:"stt_gain",class:"setting-label"},"Volume Amplification",-1)),S("input",{id:"stt_gain",value:v.$store.state.config.stt_gain,onInput:b[13]||(b[13]=y=>T("stt_gain",parseInt(y.target.value))),type:"number",min:"0",step:"1",class:"input-sm w-24"},null,40,RRn)]),S("div",NRn,[b[43]||(b[43]=S("label",{for:"stt_rate",class:"setting-label"},"Audio Rate (Hz)",-1)),S("input",{id:"stt_rate",value:v.$store.state.config.stt_rate,onInput:b[14]||(b[14]=y=>T("stt_rate",parseInt(y.target.value))),type:"number",min:"8000",step:"1000",class:"input-sm w-24"},null,40,DRn)]),S("div",IRn,[b[44]||(b[44]=S("label",{for:"stt_channels",class:"setting-label"},"Channels",-1)),S("input",{id:"stt_channels",value:v.$store.state.config.stt_channels,onInput:b[15]||(b[15]=y=>T("stt_channels",parseInt(y.target.value))),type:"number",min:"1",max:"2",step:"1",class:"input-sm w-24"},null,40,kRn)]),S("div",HRn,[b[45]||(b[45]=S("label",{for:"stt_buffer_size",class:"setting-label"},"Buffer Size",-1)),S("input",{id:"stt_buffer_size",value:v.$store.state.config.stt_buffer_size,onInput:b[16]||(b[16]=y=>T("stt_buffer_size",parseInt(y.target.value))),type:"number",min:"512",step:"512",class:"input-sm w-24"},null,40,PRn)]),S("div",$Rn,[b[46]||(b[46]=S("label",{for:"stt_activate_word_detection",class:"toggle-label"},"Activate Wake Word Detection",-1)),ne(n6,{id:"stt_activate_word_detection",checked:v.$store.state.config.stt_activate_word_detection,"onUpdate:checked":b[17]||(b[17]=y=>h())},null,8,["checked"])]),S("div",{class:Ee(["setting-item md:col-span-2",{"opacity-50 pointer-events-none":!v.$store.state.config.stt_activate_word_detection}])},[b[47]||(b[47]=S("label",{for:"stt_word_detection_file",class:"setting-label"},"Wake Word File (.wav)",-1)),S("input",{type:"text",id:"stt_word_detection_file",value:v.$store.state.config.stt_word_detection_file,onInput:b[18]||(b[18]=y=>T("stt_word_detection_file",y.target.value)),class:"input flex-grow",placeholder:"Path to wake word wav file",disabled:!v.$store.state.config.stt_activate_word_detection},null,40,VRn)],2)])]),S("section",BRn,[b[52]||(b[52]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Audio Devices",-1)),S("button",{onClick:m,class:"btn btn-secondary btn-sm mb-2",title:"Rescan for audio devices"},b[49]||(b[49]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 mr-1 feather feather-refresh-cw"},[S("polyline",{points:"23 4 23 10 17 10"}),S("polyline",{points:"1 20 1 14 7 14"}),S("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})],-1),Oe(" Refresh Devices ")])),S("div",FRn,[S("div",URn,[b[50]||(b[50]=S("label",{for:"stt_input_device",class:"setting-label"},"Audio Input Device",-1)),S("select",{id:"stt_input_device",value:v.$store.state.config.stt_input_device,onChange:b[19]||(b[19]=y=>T("stt_input_device",parseInt(y.target.value))),class:"input flex-grow"},[(N(!0),H(Ae,null,Ue(c.value,(y,E)=>(N(),H("option",{key:`in-${E}`,value:u.value[E]},J(y),9,GRn))),128))],40,qRn)]),S("div",jRn,[b[51]||(b[51]=S("label",{for:"tts_output_device",class:"setting-label"},"Audio Output Device",-1)),S("select",{id:"tts_output_device",value:v.$store.state.config.tts_output_device,onChange:b[20]||(b[20]=y=>T("tts_output_device",parseInt(y.target.value))),class:"input flex-grow"},[(N(!0),H(Ae,null,Ue(d.value,(y,E)=>(N(),H("option",{key:`out-${E}`,value:f.value[E]},J(y),9,YRn))),128))],40,zRn)])])])]))}},MO=ze(WRn,[["__scopeId","data-v-7b97b998"]]),t0="/assets/logo-CQZwS0X1.svg",KRn={name:"DynamicUIRenderer",props:{ui:{type:String,required:!0},instanceId:{type:String,required:!0}},data(){return{containerId:`dynamic-ui-${this.instanceId}`}},watch:{ui:{immediate:!0,handler(t){console.log(`UI prop changed for instance ${this.instanceId}:`,t),this.$nextTick(()=>{this.renderContent()})}}},methods:{renderContent(){console.log(`Rendering content for instance ${this.instanceId}...`);const t=this.$refs.container,n=new DOMParser().parseFromString(this.ui,"text/html"),o=n.getElementsByTagName("style");Array.from(o).forEach(i=>{const s=document.createElement("style");s.textContent=this.scopeCSS(i.textContent),document.head.appendChild(s)}),t.innerHTML=n.body.innerHTML;const r=n.getElementsByTagName("script");Array.from(r).forEach(i=>{const s=document.createElement("script");s.textContent=i.textContent,t.appendChild(s)})},scopeCSS(t){return t.replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g,`#${this.containerId} $1$2`)}}},ZRn=["id"];function XRn(t,e,n,o,r,i){return N(),H("div",{id:r.containerId,ref:"container"},null,8,ZRn)}const Mk=ze(KRn,[["render",XRn]]),ZT="/",JRn={name:"BindingEntry",components:{DynamicUIRenderer:Mk},props:{binding:{type:Object,required:!0},selected:{type:Boolean,default:!1},isProcessing:{type:Boolean,default:!1}},emits:["select","install","uninstall","reinstall","settings","reload-binding"],mounted(){this.updateIcons()},updated(){this.updateIcons()},methods:{updateIcons(){be(()=>{try{Le.replace({width:"1em",height:"1em"})}catch(t){console.error("Feather icons replacement failed:",t)}})},copyToClipBoard(t){if(!t){console.warn("Attempted to copy empty text.");return}navigator.clipboard?navigator.clipboard.writeText(t).then(()=>{console.log("Copied to clipboard:",t)}).catch(e=>{console.error("Failed to copy text using navigator.clipboard: ",e),this.fallbackCopyToClipboard(t)}):(console.warn("Clipboard API not available, attempting fallback."),this.fallbackCopyToClipboard(t))},fallbackCopyToClipboard(t){const e=document.createElement("textarea");e.value=t,e.style.position="absolute",e.style.left="-9999px",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")?console.log("Fallback copy successful:",t):console.error("Fallback copy command failed.")}catch(n){console.error("Error during fallback copy command:",n)}document.body.removeChild(e)},getImgUrl(){return!this.binding||typeof this.binding.icon!="string"||this.binding.icon.trim()===""?t0:/^(https?:)?\/\//.test(this.binding.icon)||this.binding.icon.startsWith("/")?this.binding.icon:(ZT.endsWith("/")?ZT:`${ZT}/`)+this.binding.icon},defaultImg(t){t.target.src!==t0&&(t.target.src=t0)},emitSelect(){this.isProcessing||this.$emit("select",this.binding)},emitInstall(){this.isProcessing||this.$emit("install",this.binding)},emitUninstall(){this.isProcessing||this.$emit("uninstall",this.binding)},emitReinstall(){this.isProcessing||this.$emit("reinstall",this.binding)},emitReloadBinding(){this.isProcessing||this.$emit("reload-binding",this.binding)},emitSettings(){this.isProcessing||this.$emit("settings",this.binding)}},watch:{selected(){this.updateIcons()},isProcessing(){this.updateIcons()},"binding.installed"(){this.updateIcons()},"binding.ui"(){this.updateIcons()}}},eNn=["title"],tNn={class:"flex flex-row items-center gap-3 mb-2"},nNn=["src"],rNn={class:"font-bold text-lg truncate text-gray-800 dark:text-white flex-grow"},iNn={key:0,class:"ml-2 text-xs font-medium text-green-600 dark:text-green-400"},oNn={key:1,class:"ml-2 text-xs font-medium text-yellow-600 dark:text-yellow-400"},sNn={class:"flex-none flex items-center gap-1"},aNn={class:"text-sm text-gray-600 dark:text-gray-400 space-y-1 mb-3"},lNn={class:"flex items-center"},cNn={class:"truncate"},uNn={class:"flex items-center"},dNn={class:"truncate font-mono text-xs bg-gray-100 dark:bg-gray-700 px-1 py-0.5 rounded"},TNn=["disabled"],fNn={class:"flex items-center"},pNn={class:"flex items-center"},hNn=["href"],mNn={class:"flex items-start pt-1"},gNn=["title","innerHTML"],_Nn={class:"flex items-center justify-end gap-2 border-t border-gray-200 dark:border-gray-700 pt-3 min-h-[44px]"},QNn={key:0,class:"flex items-center justify-center text-gray-500 dark:text-gray-400 w-full"};function vNn(t,e,n,o,r,i){const s=We("DynamicUIRenderer");return N(),H("div",{class:Ee(["items-start p-4 rounded-lg mb-2 shadow-lg border-2 cursor-pointer select-none transition-all duration-150 ease-in-out group",{"border-primary bg-primary-light dark:bg-primary-dark":n.selected,"hover:bg-gray-100 dark:hover:bg-gray-700":!n.selected&&!n.isProcessing,"border-transparent bg-white dark:bg-gray-800":!n.selected,"opacity-70 cursor-wait":n.isProcessing}]),title:n.binding.description||n.binding.name,onClick:e[8]||(e[8]=oe(a=>n.isProcessing?null:i.emitSelect(),["stop"]))},[S("div",null,[S("div",tNn,[S("img",{ref:"imgElement",src:i.getImgUrl(),onError:e[0]||(e[0]=a=>i.defaultImg(a)),class:Ee(["w-10 h-10 rounded-full object-fill flex-shrink-0 border border-gray-200 dark:border-gray-600",{"ring-2 ring-offset-2 ring-green-500 dark:ring-offset-gray-800":n.binding.installed&&!n.isProcessing,"ring-2 ring-offset-2 ring-yellow-500 dark:ring-offset-gray-800 animate-pulse":n.isProcessing}])},null,42,nNn),S("h3",rNn,[Oe(J(n.binding.name)+" ",1),n.binding.installed&&!n.isProcessing?(N(),H("span",iNn,"(Installed)")):Z("",!0),n.isProcessing?(N(),H("span",oNn,"(Processing...)")):Z("",!0)]),S("div",sNn,[n.selected&&n.binding.installed&&!n.isProcessing?(N(),H("button",{key:0,type:"button",title:"Reload binding",onClick:e[1]||(e[1]=oe((...a)=>i.emitReloadBinding&&i.emitReloadBinding(...a),["stop"])),class:"text-gray-500 hover:text-secondary dark:text-gray-400 dark:hover:text-secondary-light duration-150 active:scale-90 font-medium rounded-lg text-sm p-1.5 text-center inline-flex items-center focus:outline-none focus:ring-2 focus:ring-gray-300 dark:focus:ring-gray-600"},e[9]||(e[9]=[S("i",{"data-feather":"refresh-cw",class:"w-5 h-5"},null,-1),S("span",{class:"sr-only"},"Reload Binding",-1)]))):Z("",!0)])]),n.binding.ui?(N(),it(s,{key:0,class:"w-full h-full mb-3 border-t pt-3 border-gray-200 dark:border-gray-700",code:n.binding.ui},null,8,["code"])):Z("",!0),S("div",aNn,[S("div",lNn,[e[10]||(e[10]=S("i",{"data-feather":"user",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[11]||(e[11]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Author:",-1)),S("span",cNn,J(n.binding.author),1)]),S("div",uNn,[e[13]||(e[13]=S("i",{"data-feather":"folder",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[14]||(e[14]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Folder:",-1)),S("span",dNn,J(n.binding.folder),1),e[15]||(e[15]=S("div",{class:"flex-grow"},null,-1)),S("button",{class:"ml-2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 duration-150 active:scale-90 p-1 rounded disabled:opacity-50",title:"Copy folder path to clipboard",onClick:e[2]||(e[2]=oe(a=>i.copyToClipBoard(n.binding.folder),["stop"])),disabled:n.isProcessing},e[12]||(e[12]=[S("i",{"data-feather":"clipboard",class:"w-4 h-4"},null,-1),S("span",{class:"sr-only"},"Copy folder path",-1)]),8,TNn)]),S("div",fNn,[e[16]||(e[16]=S("i",{"data-feather":"git-merge",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[17]||(e[17]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Version:",-1)),S("span",null,J(n.binding.version),1)]),S("div",pNn,[e[18]||(e[18]=S("i",{"data-feather":"github",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[19]||(e[19]=S("b",{class:"mr-1 font-medium text-gray-700 dark:text-gray-300"},"Link:",-1)),S("a",{href:n.binding.link,target:"_blank",rel:"noopener noreferrer",class:Ee(["text-blue-600 dark:text-blue-400 hover:underline truncate",{"pointer-events-none opacity-70":n.isProcessing}]),onClick:e[3]||(e[3]=oe(()=>{},["stop"]))},J(n.binding.link),11,hNn)]),S("div",mNn,[e[21]||(e[21]=S("i",{"data-feather":"info",class:"w-4 h-4 mr-2 mt-0.5 flex-shrink-0"},null,-1)),S("div",null,[e[20]||(e[20]=S("b",{class:"font-medium text-gray-700 dark:text-gray-300"},"Description:",-1)),S("p",{class:"opacity-90 line-clamp-3",title:n.binding.description,innerHTML:n.binding.description},null,8,gNn)])])]),S("div",_Nn,[n.isProcessing?(N(),H("div",QNn,e[22]||(e[22]=[S("div",{class:"animate-spin rounded-full h-5 w-5 border-b-2 border-current mr-2"},null,-1),Oe(" Processing... ")]))):Z("",!0),n.isProcessing?Z("",!0):(N(),H(Ae,{key:1},[n.binding.installed?Z("",!0):(N(),H("button",{key:0,title:"Click to install",type:"button",onClick:e[4]||(e[4]=oe((...a)=>i.emitInstall&&i.emitInstall(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-blue-600 rounded-lg shadow-sm hover:bg-blue-700 focus:ring-4 focus:ring-blue-300 focus:outline-none dark:bg-blue-500 dark:hover:bg-blue-600 dark:focus:ring-blue-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[23]||(e[23]=[S("i",{"data-feather":"download-cloud",class:"w-4 h-4"},null,-1)]))),n.binding.installed?(N(),H("button",{key:1,title:"Click to Reinstall binding",type:"button",onClick:e[5]||(e[5]=oe((...a)=>i.emitReinstall&&i.emitReinstall(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-green-600 rounded-lg shadow-sm hover:bg-green-700 focus:ring-4 focus:ring-green-300 focus:outline-none dark:bg-green-500 dark:hover:bg-green-600 dark:focus:ring-green-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[24]||(e[24]=[S("i",{"data-feather":"refresh-ccw",class:"w-4 h-4"},null,-1)]))):Z("",!0),n.binding.installed?(N(),H("button",{key:2,title:"Click to Uninstall binding",type:"button",onClick:e[6]||(e[6]=oe((...a)=>i.emitUninstall&&i.emitUninstall(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-red-600 rounded-lg shadow-sm hover:bg-red-700 focus:ring-4 focus:ring-red-300 focus:outline-none dark:bg-red-500 dark:hover:bg-red-600 dark:focus:ring-red-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[25]||(e[25]=[S("i",{"data-feather":"trash-2",class:"w-4 h-4"},null,-1)]))):Z("",!0),n.selected&&n.binding.installed?(N(),H("button",{key:3,title:"Click to open Settings",type:"button",onClick:e[7]||(e[7]=oe((...a)=>i.emitSettings&&i.emitSettings(...a),["stop"])),class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-center text-white bg-gray-600 rounded-lg shadow-sm hover:bg-gray-700 focus:ring-4 focus:ring-gray-300 focus:outline-none dark:bg-gray-500 dark:hover:bg-gray-600 dark:focus:ring-gray-800 transition-colors duration-200 ease-in-out disabled:opacity-50 disabled:cursor-not-allowed"},e[26]||(e[26]=[S("i",{"data-feather":"settings",class:"w-4 h-4"},null,-1)]))):Z("",!0)],64))])])],10,eNn)}const yNn=ze(JRn,[["render",vNn],["__scopeId","data-v-720de39c"]]),RO="/assets/logo-6TyToX4A.png",bNn={name:"BindingZooSettings",components:{BindingEntry:yNn},props:{loading:{type:Boolean,default:!1},api_get_req:{type:Function,required:!0},api_post_req:{type:Function,required:!0},refresh_config:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},show_message_box:{type:Function,required:!0},client_id:{type:String,required:!0},show_universal_form:{type:Function,required:!0}},emits:["settings-changed"],data(){return{bindings:[],isLoadingBindings:!1,isLoadingAction:!1,sortOption:"name",searchTerm:""}},computed:{...BR({allBindings:t=>t.bindingsZoo||[],selectedBindingName:t=>t.config.binding_name,processingBindings:t=>t.processingBindingFolders||{}}),bindingsToDisplay(){return this.sortedBindings},currentBindingInfo(){return!this.$store.state.config||!this.$store.state.config.binding_name||this.bindings.length===0?null:this.bindings.find(e=>e.folder===this.$store.state.config.binding_name)},sortedBindings(){if(!this.bindings)return[];let t=[...this.bindings];if(this.searchTerm){const e=this.searchTerm.toLowerCase();t=t.filter(n=>{var o,r,i,s;return((o=n.name)==null?void 0:o.toLowerCase().includes(e))||((r=n.author)==null?void 0:r.toLowerCase().includes(e))||((i=n.description)==null?void 0:i.toLowerCase().includes(e))||((s=n.folder)==null?void 0:s.toLowerCase().includes(e))})}return t.sort((e,n)=>{const o=e.folder===this.selectedBindingName,r=n.folder===this.selectedBindingName;if(o&&!r)return-1;if(!o&&r)return 1;switch(this.sortOption){case"status":return e.installed&&!n.installed?-1:!e.installed&&n.installed?1:(e.name||"").localeCompare(n.name||"");case"author":return(e.author||"").localeCompare(n.author||"");case"name":default:return(e.name||"").localeCompare(n.name||"")}}),t}},methods:{isBindingSelected(t){return t.folder===this.selectedBindingName},isBindingProcessing(t){return!!this.processingBindings[t.folder]},getIconPath(t){if(console.log(`iconRelativePath: ${t}`),!t)return RO;if(t.startsWith("http"))return t;const e="/"+t.replace(/\\/g,"/");return console.log(`icon: ${e}`),e},imgPlaceholder(t){t.target.src=RO},async internal_api_get_req(t,e={}){try{const n={client_id:this.client_id,...e};return await this.api_get_req(t,n)}catch(n){throw console.error(`API GET error for ${t}:`,n),this.show_toast(`API Error: ${n.message||"Failed to fetch data"}`,4,!1),n}},async internal_api_post_req(t,e={}){try{const n={client_id:this.client_id,...e};return await this.api_post_req(t,n)}catch(n){throw console.error(`API POST error for ${t}:`,n),this.show_toast(`API Error: ${n.message||"Action failed"}`,4,!1),n}},async fetchBindings(){this.isLoadingBindings=!0;try{const t=await this.internal_api_get_req("list_bindings");this.bindings=(t||[]).map(e=>({...e,isProcessing:!1}))}catch{this.bindings=[]}finally{this.isLoadingBindings=!1,be(Le.replace)}},setBindingProcessing(t,e){const n=this.bindings.findIndex(o=>o.folder===t);n!==-1&&(this.bindings[n].isProcessing=e)},async handleSelect(t){if(console.log("received selection of binding"),console.log(t),!t||!t.folder){console.error("Invalid binding data received in handleSelect:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}if(!t.installed){this.show_toast(`Binding "${t.name}" is not installed.`,3,!1);return}this.$store.state.config.binding_name!==t.folder&&(this.$store.state.config.binding_name=t.folder,this.$store.state.config.model_name=null,await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),this.$emit("settings-changed",!0),this.show_toast(`Selected binding: ${t.name}`,3,!0))},async handleInstall(t){if(!t||!t.folder){console.error("Invalid binding data received in handleInstall:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}let e=!0;if(t.disclaimer&&(e=await this.show_yes_no_dialog(`Disclaimer for ${t.name}: ${t.disclaimer} Proceed with installation?`,"Proceed","Cancel")),!!e){this.setBindingProcessing(t.folder,!0),this.isLoadingAction=!0;try{const n=await this.internal_api_post_req("install_binding",{name:t.folder});n&&n.status?(this.show_toast(`Binding "${t.name}" installed successfully! Reload recommended.`,5,!0),await this.fetchBindings()):this.show_toast(`Failed to install "${t.name}": ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1)}catch{}finally{this.setBindingProcessing(t.folder,!1),this.isLoadingAction=!1,be(Le.replace)}}},async handleUninstall(t){if(!t||!t.folder){console.error("Invalid binding data received in handleUninstall:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}if(await this.show_yes_no_dialog(`Uninstall "${t.name}"? This removes its files.`,"Uninstall","Cancel")){this.setBindingProcessing(t.folder,!0),this.isLoadingAction=!0;try{const n=await this.internal_api_post_req("uninstall_binding",{name:t.folder});n&&n.status?(this.show_toast(`Binding "${t.name}" uninstalled successfully!`,4,!0),await this.fetchBindings(),this.$store.state.config.binding_name===t.folder&&(this.$store.state.config.binding_name=null,this.$store.state.config.model_name=null,this.$emit("settings-changed",!0),this.refresh_config())):this.show_toast(`Failed to uninstall "${t.name}": ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1)}catch{}finally{this.setBindingProcessing(t.folder,!1),this.isLoadingAction=!1,be(Le.replace)}}},async handleReinstall(t){if(!t||!t.folder){console.error("Invalid binding data received in handleReinstall:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}if(await this.show_yes_no_dialog(`Reinstall "${t.name}"? -This overwrites files.`,"Reinstall","Cancel")){this.setBindingProcessing(t.folder,!0),this.isLoadingAction=!0;try{const n=await this.internal_api_post_req("reinstall_binding",{name:t.folder});n&&n.status?(this.show_toast(`Binding "${t.name}" reinstalled successfully! Reload recommended.`,5,!0),await this.fetchBindings()):this.show_toast(`Failed to reinstall "${t.name}": ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1)}catch{}finally{this.setBindingProcessing(t.folder,!1),this.isLoadingAction=!1,be(Le.replace)}}},handleSettingsFromEntry(t){if(!t||!t.folder){console.error("Invalid binding data in handleSettingsFromEntry:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}this.handleSettings(t.folder)},async handleSettings(t){if(console.log("Handling settings from"),console.log(t),!t){this.show_toast("No binding specified.",3,!1);return}const e=this.bindings.find(n=>n.folder===t);if(!e){this.show_toast(`Binding "${t}" not found.`,4,!1);return}if(!e.installed){this.show_toast(`"${e.name}" is not installed.`,3,!1);return}if(t!==this.$store.state.config.binding_name){this.show_toast(`Select "${e.name}" first to configure it.`,4,!1);return}this.isLoadingAction=!0;try{const n=await this.internal_api_post_req("get_active_binding_settings");if(n&&Object.keys(n).length>0){const o=e.name||t,r=await this.show_universal_form(n,`Settings - ${o}`,"Save","Cancel");if(r!=null){const i=await this.internal_api_post_req("set_active_binding_settings",{settings:r});i&&i.status?(this.show_toast(`Settings for "${o}" updated. Reloading...`,4,!0),await this.internal_api_post_req("update_binding_settings"),this.show_toast(`Binding "${o}" reloaded with new settings.`,4,!0),this.$emit("settings-changed",!0),this.refresh_config()):this.show_toast(`Failed to update settings for "${o}": ${(i==null?void 0:i.error)||"Unknown error"}`,4,!1)}else this.show_toast(`Settings update for "${o}" cancelled.`,3,!1)}else n&&Object.keys(n).length===0?this.show_toast(`"${e.name}" has no settings.`,4,!1):this.show_toast(`Could not get settings for "${e.name}".`,4,!1)}catch{}finally{this.isLoadingAction=!1,be(Le.replace)}},handleReloadFromEntry(t){if(!t||!t.folder){console.error("Invalid binding data in handleReloadFromEntry:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}this.handleReload(t.folder)},async handleReload(t){if(!t){this.show_toast("No binding specified.",3,!1);return}const e=this.bindings.find(n=>n.folder===t);if(!e){this.show_toast(`Binding "${t}" not found.`,4,!1);return}if(!e.installed){this.show_toast(`"${e.name}" is not installed.`,3,!1);return}if(t!==this.$store.state.config.binding_name){this.show_toast(`"${e.name}" is not active. Select it first.`,3,!1);return}this.isLoadingAction=!0,this.show_toast(`Reloading "${e.name}"...`,3,!0);try{const n=await this.internal_api_post_req("reload_binding",{name:t});n&&n.status?(this.show_toast(`Binding "${e.name}" reloaded.`,4,!0),this.refresh_config()):this.show_toast(`Failed to reload "${e.name}": ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1)}catch{}finally{this.isLoadingAction=!1,be(Le.replace)}}},mounted(){this.fetchBindings(),be(()=>{Le.replace()})},updated(){be(()=>{Le.replace()})}},bNn={class:"user-settings-panel space-y-6 p-4 md:p-6"},ENn={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b border-blue-300 dark:border-blue-600 pb-3 mb-4"},SNn={key:0,class:"flex items-center gap-2 text-sm font-medium p-2 bg-blue-200 dark:bg-blue-800 rounded-md border border-blue-300 dark:border-blue-600 text-blue-700 dark:text-blue-200"},xNn=["src"],LNn={class:"font-semibold"},CNn=["disabled"],ANn=["disabled"],wNn={key:1,class:"text-sm font-medium text-red-600 dark:text-red-400 p-2 bg-red-100 dark:bg-red-900/30 rounded-md border border-red-300 dark:border-red-600"},ONn={class:"flex flex-col sm:flex-row gap-4 mb-4"},MNn={class:"relative flex-grow"},RNn=["disabled"],NNn={class:"flex-shrink-0"},DNn=["disabled"],INn={key:0,class:"flex justify-center items-center p-10"},kNn={key:1,class:"text-center text-blue-500 dark:text-blue-400 py-10"},HNn={key:2,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 scrollbar"};function PNn(t,e,n,o,r,i){const s=We("BindingEntry");return N(),H("div",bNn,[S("div",ENn,[e[8]||(e[8]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-200 mb-2 sm:mb-0"}," Binding Zoo ",-1)),i.currentBindingInfo?(N(),H("div",SNn,[S("img",{src:i.getIconPath(i.currentBindingInfo.icon),onError:e[0]||(e[0]=(...a)=>i.imgPlaceholder&&i.imgPlaceholder(...a)),class:"w-6 h-6 rounded-full object-cover flex-shrink-0",alt:"Current Binding Icon"},null,40,xNn),S("span",null,[e[5]||(e[5]=Oe("Active: ")),S("span",LNn,J(i.currentBindingInfo.name),1)]),S("button",{onClick:e[1]||(e[1]=a=>i.handleSettings(t.$store.state.config.binding_name)),disabled:r.isLoadingAction||n.loading,class:"svg-button ml-2 disabled:opacity-50 disabled:cursor-not-allowed",title:"Configure Active Binding"},e[6]||(e[6]=[S("i",{"data-feather":"settings",class:"w-4 h-4"},null,-1)]),8,CNn),S("button",{onClick:e[2]||(e[2]=a=>i.handleReload(t.$store.state.config.binding_name)),disabled:r.isLoadingAction||n.loading,class:"svg-button ml-1 disabled:opacity-50 disabled:cursor-not-allowed",title:"Reload Active Binding"},e[7]||(e[7]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4"},null,-1)]),8,ANn)])):(N(),H("div",wNn," No binding selected! "))]),e[13]||(e[13]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400"}," Bindings are the engines that run the AI models. Select an installed binding to enable model selection and generation. ",-1)),S("div",ONn,[S("div",MNn,[e[9]||(e[9]=S("div",{class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},[S("i",{"data-feather":"search",class:"w-5 h-5 text-blue-400 dark:text-blue-500"})],-1)),Ce(S("input",{type:"search","onUpdate:modelValue":e[3]||(e[3]=a=>r.searchTerm=a),placeholder:"Search bindings by name or author...",class:"search-input pl-10 w-full","aria-label":"Search bindings",disabled:r.isLoadingBindings||n.loading},null,8,RNn),[[Je,r.searchTerm]])]),S("div",NNn,[e[11]||(e[11]=S("label",{for:"binding-sort",class:"sr-only"},"Sort bindings by",-1)),Ce(S("select",{id:"binding-sort","onUpdate:modelValue":e[4]||(e[4]=a=>r.sortOption=a),class:"input w-full sm:w-auto","aria-label":"Sort bindings by",disabled:r.isLoadingBindings||n.loading},e[10]||(e[10]=[S("option",{value:"name"},"Sort by Name",-1),S("option",{value:"author"},"Sort by Author",-1),S("option",{value:"status"},"Sort by Status",-1)]),8,DNn),[[Ir,r.sortOption]])])]),r.isLoadingBindings?(N(),H("div",INn,e[12]||(e[12]=[S("svg",{"aria-hidden":"true",role:"status",class:"w-8 h-8 text-blue-300 animate-spin dark:text-blue-600 fill-blue-600 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})],-1),S("span",{class:"ml-2 text-loading"},"Loading bindings...",-1)]))):i.sortedBindings.length===0?(N(),H("div",kNn," No bindings found"+J(r.searchTerm?' matching "'+r.searchTerm+'"':"")+". ",1)):(N(),H("div",HNn,[(N(!0),H(Ae,null,Ue(i.bindingsToDisplay,a=>(N(),it(s,{key:a.folder,binding:a,selected:i.isBindingSelected(a),"is-processing":a.isProcessing,onSelect:i.handleSelect,onInstall:i.handleInstall,onUninstall:i.handleUninstall,onReinstall:i.handleReinstall,onSettings:i.handleSettingsFromEntry,onReloadBinding:i.handleReloadFromEntry},null,8,["binding","selected","is-processing","onSelect","onInstall","onUninstall","onReinstall","onSettings","onReloadBinding"]))),128))]))])}const NO=ze(yNn,[["render",PNn],["__scopeId","data-v-62a84717"]]),z1="/assets/logo-6TyToX4A.png",$Nn={name:"InteractiveMenu",props:{title:{type:String,required:!1,default:"Menu"},icon:{type:String,required:!1,default:"feather:more-vertical"},commands:{type:Array,required:!0,default:()=>[]},force_position:{type:Number,required:!1,default:0},execute_cmd:{type:Function,required:!1},menuIconClass:{type:String,required:!1,default:""},selected_entry:{type:String,required:!1,default:null}},data(){return{isMenuOpen:!1,menuStyle:{top:"auto",bottom:"auto",left:"auto",right:"auto",transformOrigin:"top left"}}},methods:{updateFeatherIcons(){be(()=>{Le.replace({width:"1em",height:"1em","stroke-width":2})})},handleClickOutside(t){this.$refs.menuContainerRef&&!this.$refs.menuContainerRef.contains(t.target)&&this.closeMenu()},toggleMenu(){this.isMenuOpen?this.closeMenu():this.openMenu()},openMenu(){this.isMenuOpen=!0,be(()=>{this.positionMenu(),this.updateFeatherIcons(),document.addEventListener("click",this.handleClickOutside,!0)})},closeMenu(){this.isMenuOpen=!1,document.removeEventListener("click",this.handleClickOutside,!0)},executeCommand(t){this.closeMenu(),typeof t.value=="function"?t.value():this.execute_cmd?this.execute_cmd(t):console.warn("InteractiveMenu: No action defined for command:",t.name)},positionMenu(){if(!this.isMenuOpen||!this.$refs.menuButtonRef||!this.$refs.menuRef)return;const t=this.$refs.menuButtonRef.getBoundingClientRect(),e=this.$refs.menuRef,n=e.style.visibility,o=e.style.display,r=e.style.position,i=e.style.top,s=e.style.left;e.style.visibility="hidden",e.style.position="fixed",e.style.top="-9999px",e.style.left="-9999px",e.style.display="block";const a=e.getBoundingClientRect();e.style.visibility=n,e.style.position=r,e.style.top=i,e.style.left=s,e.style.display=o;const l=window.innerWidth,c=window.innerHeight,u=8;let d={top:"auto",bottom:"auto",left:"auto",right:"auto",transformOrigin:""};const f=c-t.bottom-u,T=t.top-u,h=a.height;let g="below";this.force_position===1?g="above":this.force_position===2||f>=h?g="below":T>=h?g="above":g=T>f?"above":"below",g==="above"?(d.bottom="calc(100% + 4px)",d.top="auto",d.transformOrigin="bottom "):(d.top="calc(100% + 4px)",d.bottom="auto",d.transformOrigin="top "),l-t.left-u,t.right-u;const _=a.width;let m="left-align";this.force_position===3?m="right-align":this.force_position===4?m="left-align":t.left+_>l-u&&t.right-_>u&&(m="right-align"),m==="right-align"?(d.right="0px",d.left="auto",d.transformOrigin+="right"):(d.left="0px",d.right="auto",d.transformOrigin+="left"),this.menuStyle=d}},mounted(){window.addEventListener("resize",this.positionMenu),this.updateFeatherIcons()},beforeUnmount(){window.removeEventListener("resize",this.positionMenu),document.removeEventListener("click",this.handleClickOutside,!0)}},VNn={class:"interactive-menu-container",ref:"menuContainerRef"},BNn=["title"],FNn=["src"],UNn=["data-feather"],qNn={key:2,class:"interactive-menu-trigger-text"},GNn={key:3,"data-feather":"menu",class:"interactive-menu-trigger-icon"},jNn=["aria-labelledby"],zNn={class:"interactive-menu-list",role:"none"},YNn=["onClick","id"],WNn={class:"interactive-menu-item-checkmark-placeholder"},KNn={key:0,"data-feather":"check",class:"interactive-menu-item-checkmark-icon"},ZNn={class:"interactive-menu-item-icon-container"},XNn=["src","alt"],JNn=["data-feather"],eDn={key:2,class:"interactive-menu-item-icon-text"},tDn={key:3,class:"interactive-menu-item-icon-placeholder"},nDn={class:"interactive-menu-item-name"};function rDn(t,e,n,o,r,i){return N(),H("div",VNn,[S("button",{onClick:e[0]||(e[0]=oe((...s)=>i.toggleMenu&&i.toggleMenu(...s),["prevent"])),title:n.title||"Open Menu",class:Ee(["interactive-menu-trigger",n.menuIconClass]),ref:"menuButtonRef",type:"button"},[_n(t.$slots,"trigger",{},()=>[n.icon&&!n.icon.includes("#")&&!n.icon.includes("feather:")?(N(),H("img",{key:0,src:n.icon,class:"interactive-menu-trigger-icon",alt:"Menu Icon"},null,8,FNn)):n.icon&&n.icon.includes("feather:")?(N(),H("i",{key:1,"data-feather":n.icon.split(":")[1],class:"interactive-menu-trigger-icon"},null,8,UNn)):n.icon&&n.icon.includes("#")?(N(),H("span",qNn,J(n.icon.split("#")[1]),1)):(N(),H("i",GNn))],!0)],10,BNn),ne(Tr,{name:"interactive-menu-transition"},{default:je(()=>[r.isMenuOpen?(N(),H("div",{key:0,class:"interactive-menu-dropdown",style:Jt(r.menuStyle),ref:"menuRef",role:"menu","aria-orientation":"vertical","aria-labelledby":`menu-button-${t._uid}`},[S("ul",zNn,[(N(!0),H(Ae,null,Ue(n.commands,(s,a)=>(N(),H("li",{key:a,onClick:oe(l=>i.executeCommand(s),["prevent"]),class:"interactive-menu-item group",role:"menuitem",tabindex:-1,id:`menu-item-${t._uid}-${a}`},[S("span",WNn,[n.selected_entry===s.name?(N(),H("i",KNn)):Z("",!0)]),S("span",ZNn,[s.icon&&!s.icon.includes("#")&&!s.icon.includes("feather:")?(N(),H("img",{key:0,src:s.icon,alt:s.name,class:"interactive-menu-item-icon"},null,8,XNn)):s.icon&&s.icon.includes("feather:")?(N(),H("i",{key:1,"data-feather":s.icon.split(":")[1],class:"interactive-menu-item-icon"},null,8,JNn)):s.icon&&s.icon.includes("#")?(N(),H("span",eDn,J(s.icon.split("#")[1]),1)):(N(),H("span",tDn))]),S("span",nDn,J(s.name),1)],8,YNn))),128))])],12,jNn)):Z("",!0)]),_:1})],512)}const Eh=ze($Nn,[["render",rDn],["__scopeId","data-v-e42afcb4"]]),iDn={name:"ModelEntry",components:{InteractiveMenu:Eh},props:{model:{type:Object,required:!0},isSelected:{type:Boolean,default:!1},isInstalled:{type:Boolean,default:!1},isProcessing:{type:Boolean,default:!1},progress:{type:Number,default:0},speed:{type:Number,default:0},total_size:{type:Number,default:0},downloaded_size:{type:Number,default:0},progressName:{type:String,default:"Processing..."}},emits:["select","install","uninstall","cancel-install","copy","copy-link"],data(){return{failedToLoad:!1,linkNotValid:!!this.model.error}},mounted(){be(()=>{Le.replace()})},updated(){be(()=>{Le.replace()})},methods:{formatDate(t){if(!t)return"N/A";try{const e=new Date(t);return isNaN(e.getTime())?"Invalid Date":e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(e){return console.error("Error formatting date:",e),"Invalid Date"}},formatFileSize(t){return E2(t)},getImgUrl(){return console.log("model icon:"),console.log(this.model.icon),this.model.icon||z1},defaultImg(t){this.failedToLoad=!0,t.target.src=z1},handleClick(){if(this.isProcessing||!this.isInstalled||this.isSelected){console.log(`Click ignored: processing=${this.isProcessing}, installed=${this.isInstalled}, selected=${this.isSelected}`);return}console.log("Emitting select event for:",this.model.name),this.$emit("select",this.model)},handleInstallClick(){this.isProcessing||(console.log("Emitting install event for:",this.model.name),this.$emit("install",{model:this.model}))},handleUninstallClick(){this.isProcessing||!this.isInstalled||(console.log("Emitting uninstall event for:",this.model.name),this.$emit("uninstall",{model:this.model}))},handleCancelClick(){console.log("Emitting cancel-install event for:",this.model.name),this.$emit("cancel-install",{model:this.model})},handleCopyClick(){this.$emit("copy",{model:this.model})},handleCopyLinkClick(){this.$emit("copy-link",{model:this.model})},checkLinkValidity(){this.linkNotValid=!!this.model.error}},computed:{computedClasses(){const t=[];return this.isProcessing?t.push("opacity-70 pointer-events-none"):this.isSelected&&this.isInstalled?(t.push("border-[3px] border-blue-500 dark:border-blue-400 ring-2 ring-blue-300 dark:ring-blue-600 ring-offset-1 dark:ring-offset-gray-800"),t.push("bg-blue-50 dark:bg-blue-900/50"),t.push("cursor-default")):this.isInstalled&&!this.isSelected?(t.push("border-gray-200 dark:border-gray-700"),t.push("hover:border-blue-400 dark:hover:border-blue-600"),t.push("hover:bg-blue-50/50 dark:hover:bg-blue-900/20"),t.push("cursor-pointer")):this.isInstalled||(t.push("border-dashed border-gray-300 dark:border-gray-600"),t.push("opacity-80")),this.linkNotValid&&!this.isProcessing&&t.push("border-l-4 border-l-red-500"),t.join(" ")},isDisabled(){return this.isProcessing||!this.isInstalled},commandsList(){let t=[];return this.isInstalled?(t.push({name:"Uninstall",icon:"feather:trash-2",value:this.handleUninstallClick,disabled:this.isProcessing}),this.isSelected&&t.push({name:"Reload",icon:"feather:refresh-cw",value:this.handleClick,disabled:this.isProcessing})):t.push({name:"Install",icon:"feather:download",value:this.handleInstallClick,disabled:this.isProcessing||this.linkNotValid}),t.push({name:"Copy Info",icon:"feather:copy",value:this.handleCopyClick}),this.model.isCustomModel||t.push({name:"Copy Link",icon:"feather:clipboard",value:this.handleCopyLinkClick}),t},fileSize(){var n,o,r;const t=(o=(n=this.model)==null?void 0:n.variants)==null?void 0:o[0],e=(t==null?void 0:t.size)??((r=this.model)==null?void 0:r.size);return e?this.formatFileSize(e):"N/A"},speed_computed(){return this.formatFileSize(this.speed)+"/s"},total_size_computed(){return this.formatFileSize(this.total_size)},downloaded_size_computed(){return this.formatFileSize(this.downloaded_size)}},watch:{isProcessing(t,e){console.log(`Model ${this.model.name} processing state changed to: ${t}`),be(()=>{Le.replace()})},"model.error":function(t){this.linkNotValid=!!t}}},oDn=["title","aria-pressed","aria-disabled"],sDn={key:0},aDn={class:"flex flex-row"},lDn={class:"max-w-[300px] overflow-x-auto"},cDn={class:"flex gap-3 items-center grow"},uDn=["src"],dDn={class:"flex-1 overflow-hidden"},TDn={class:"font-bold font-large text-lg truncate"},fDn={class:"flex items-center flex-row gap-2 my-1 mt-3"},pDn=["disabled"],hDn={key:1},mDn={class:"flex flex-row items-center gap-3 mb-2"},gDn=["src"],_Dn={class:"font-bold font-large text-lg truncate flex-grow"},QDn={class:"flex items-center",title:"Hugging Face Model Card"},vDn=["href"],yDn={class:"flex items-center",title:"Approximate File Size"},bDn={class:"flex items-center",title:"Model License"},EDn={key:0,class:"flex items-center",title:"Quantizer Profile"},SDn=["href"],xDn={key:1,class:"flex items-center",title:"Original Model Creator Profile"},LDn=["href"],CDn={key:2,class:"flex items-center",title:"Last Update Date"},ADn={key:3,class:"flex items-center",title:"Model Category"},wDn={key:4,class:"flex items-center",title:"Hugging Face Rank (May be outdated)"},ODn={key:2,class:"absolute z-10 inset-0 -m-px p-4 shadow-md text-center rounded-lg bg-white/80 dark:bg-gray-800/80 flex justify-center items-center backdrop-blur-sm"},MDn={class:"relative flex flex-col items-center justify-center w-full h-full"},RDn={class:"absolute bottom-2 left-2 right-2 w-auto bg-white/70 dark:bg-gray-800/70 rounded-lg p-2 backdrop-blur-sm"},NDn={class:"flex justify-between mb-1 text-xs"},DDn={class:"font-medium text-blue-700 dark:text-blue-300"},IDn={key:0,class:"font-medium text-blue-700 dark:text-blue-300"},kDn={key:0,class:"w-full bg-gray-200 rounded-full h-1.5 dark:bg-gray-700 mb-1"},HDn={key:1,class:"flex justify-between text-xs text-blue-600 dark:text-blue-400"};function PDn(t,e,n,o,r,i){const s=We("InteractiveMenu");return N(),H("div",{class:Ee(["relative items-start p-4 hover:bg-blue-100 dark:hover:bg-blue-900/30 rounded-lg mb-2 shadow-lg border-2 select-none transition-colors duration-150",i.computedClasses]),title:n.model.name,role:"button",tabindex:"0","aria-pressed":n.isSelected,"aria-disabled":i.isDisabled,onClick:e[9]||(e[9]=oe((...a)=>i.handleClick&&i.handleClick(...a),["prevent"])),onKeydown:[e[10]||(e[10]=Qn((...a)=>i.handleClick&&i.handleClick(...a),["enter"])),e[11]||(e[11]=Qn(oe((...a)=>i.handleClick&&i.handleClick(...a),["prevent"]),["space"]))]},[n.model.isCustomModel?(N(),H("div",sDn,[S("div",aDn,[S("div",lDn,[S("div",cDn,[S("img",{src:i.getImgUrl(),onError:e[0]||(e[0]=a=>i.defaultImg(a)),class:"w-10 h-10 rounded-lg object-cover flex-shrink-0"},null,40,uDn),S("div",dDn,[S("h3",TDn,J(n.model.name),1)])])])]),S("div",fDn,[e[13]||(e[13]=S("div",{class:"flex grow items-center text-sm text-gray-600 dark:text-gray-400"},[S("i",{"data-feather":"hard-drive",class:"w-4 h-4 mr-1"}),Oe(" Local Reference ")],-1)),S("div",null,[n.isInstalled?(N(),H("button",{key:0,title:"Remove Reference (Doesn't delete file)",type:"button",onClick:e[1]||(e[1]=oe((...a)=>i.handleUninstallClick&&i.handleUninstallClick(...a),["stop"])),disabled:n.isProcessing,class:"button-danger-sm"},e[12]||(e[12]=[S("i",{"data-feather":"trash-2",class:"w-4 h-4 mr-1"},null,-1),Oe(" Remove ")]),8,pDn)):Z("",!0)])])])):Z("",!0),n.model.isCustomModel?Z("",!0):(N(),H("div",hDn,[S("div",mDn,[S("img",{ref:"imgElement",src:i.getImgUrl(),onError:e[2]||(e[2]=a=>i.defaultImg(a)),class:Ee(["w-10 h-10 rounded-lg object-cover flex-shrink-0",{grayscale:r.linkNotValid}])},null,42,gDn),S("h3",_Dn,J(n.model.name),1),ne(s,{commands:i.commandsList,force_position:2,title:"Menu",onClick:e[3]||(e[3]=oe(()=>{},["stop"]))},null,8,["commands"])]),S("div",{class:Ee(["space-y-1 text-sm text-gray-700 dark:text-gray-300",{"opacity-60":r.linkNotValid}])},[S("div",QDn,[e[14]||(e[14]=S("i",{"data-feather":"link",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[15]||(e[15]=S("b",{class:"mr-1 flex-shrink-0"},"Card:",-1)),S("a",{href:"https://huggingface.co/"+n.model.quantizer+"/"+n.model.name,target:"_blank",onClick:e[4]||(e[4]=oe(()=>{},["stop"])),class:Ee(["truncate hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline",{"text-red-500 pointer-events-none":r.linkNotValid}])},J(r.linkNotValid?"Link Invalid":`${n.model.quantizer}/${n.model.name}`),11,vDn)]),S("div",yDn,[e[16]||(e[16]=S("i",{"data-feather":"file",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[17]||(e[17]=S("b",{class:"mr-1"},"Size:",-1)),S("span",null,J(i.fileSize||"N/A"),1)]),S("div",bDn,[e[18]||(e[18]=S("i",{"data-feather":"key",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[19]||(e[19]=S("b",{class:"mr-1"},"License:",-1)),S("span",null,J(n.model.license||"N/A"),1)]),n.model.quantizer&&n.model.quantizer!=="None"&&n.model.type!=="transformers"?(N(),H("div",EDn,[e[20]||(e[20]=S("i",{"data-feather":"user",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[21]||(e[21]=S("b",{class:"mr-1"},"Quantizer:",-1)),S("a",{href:"https://huggingface.co/"+n.model.quantizer,target:"_blank",rel:"noopener noreferrer",onClick:e[5]||(e[5]=oe(()=>{},["stop"])),class:"truncate hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline"},J(n.model.quantizer),9,SDn)])):Z("",!0),n.model.model_creator?(N(),H("div",xDn,[e[22]||(e[22]=S("i",{"data-feather":"users",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[23]||(e[23]=S("b",{class:"mr-1"},"Creator:",-1)),S("a",{href:n.model.model_creator_link,target:"_blank",rel:"noopener noreferrer",onClick:e[6]||(e[6]=oe(()=>{},["stop"])),class:"truncate hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline"},J(n.model.model_creator),9,LDn)])):Z("",!0),n.model.last_commit_time?(N(),H("div",CDn,[e[24]||(e[24]=S("i",{"data-feather":"clock",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[25]||(e[25]=S("b",{class:"mr-1"},"Updated:",-1)),S("span",null,J(i.formatDate(n.model.last_commit_time)),1)])):Z("",!0),n.model.category?(N(),H("div",ADn,[e[26]||(e[26]=S("i",{"data-feather":"grid",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[27]||(e[27]=S("b",{class:"mr-1"},"Category:",-1)),S("span",null,J(n.model.category),1)])):Z("",!0),n.model.rank?(N(),H("div",wDn,[e[28]||(e[28]=S("i",{"data-feather":"bar-chart-2",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[29]||(e[29]=S("b",{class:"mr-1"},"Rank:",-1)),S("a",{href:"https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard",target:"_blank",rel:"noopener noreferrer",onClick:e[7]||(e[7]=oe(()=>{},["stop"])),class:"hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline"},J(n.model.rank),1)])):Z("",!0)],2)])),n.isProcessing?(N(),H("div",ODn,[S("div",MDn,[e[30]||(e[30]=S("div",{role:"status",class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"},[S("svg",{"aria-hidden":"true",class:"w-16 h-16 text-gray-300 animate-spin dark:text-gray-600 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})]),S("span",{class:"sr-only"},"Processing...")],-1)),S("div",RDn,[S("div",NDn,[S("span",DDn,J(n.progressName),1),n.progress>0?(N(),H("span",IDn,J(Math.floor(n.progress))+"%",1)):Z("",!0)]),n.progress>0?(N(),H("div",kDn,[S("div",{class:"bg-blue-600 h-1.5 rounded-full",style:Jt({width:n.progress+"%"})},null,4)])):Z("",!0),n.progress>0&&n.total_size>0?(N(),H("div",HDn,[S("span",null,J(i.downloaded_size_computed)+"/"+J(i.total_size_computed),1),S("span",null,J(i.speed_computed)+"/s",1)])):Z("",!0),S("button",{onClick:e[8]||(e[8]=oe((...a)=>i.handleCancelClick&&i.handleCancelClick(...a),["stop"])),type:"button",title:"Cancel Operation",class:"button-danger-sm w-full mt-2 text-xs"}," Cancel ")])])])):Z("",!0)],42,oDn)}const $Dn=ze(iDn,[["render",PDn],["__scopeId","data-v-9a7ef5e9"]]),VDn={props:{show:{type:Boolean,default:!1},can_remove:{type:Boolean,default:!1},title:{type:String,default:"Select an option"},choices:{type:Array,required:!0}},data(){return{selectedChoice:null,showInput:!1,newFilename:""}},methods:{displayName(t){return typeof t=="string"?t:t&&t.name?t.name:""},selectChoice(t){this.selectedChoice=t,this.$emit("choice-selected",t)},closeDialog(){this.$emit("close-dialog")},validateChoice(){this.$emit("choice-validated",this.selectedChoice)},formatSize(t){const e=["bytes","KB","MB","GB"];let n=0;for(;t>=1024&&n[n.show?(N(),H("div",BDn,[S("div",FDn,[S("h2",UDn,[e[5]||(e[5]=S("svg",{class:"w-6 h-6 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"})],-1)),Oe(" "+J(n.title),1)]),S("div",qDn,[S("ul",null,[(N(!0),H(Ae,null,Ue(n.choices,(s,a)=>(N(),H("li",{key:a,class:"py-2 px-4 hover:bg-gray-200 dark:hover:bg-gray-600 transition duration-150 ease-in-out"},[S("div",GDn,[S("div",jDn,[s.isEditing?Ce((N(),H("input",{key:1,"onUpdate:modelValue":l=>s.editName=l,onBlur:l=>i.finishEditing(s),onKeyup:Qn(l=>i.finishEditing(s),["enter"]),class:"bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded px-2 py-1 text-sm",autofocus:""},null,40,YDn)),[[Je,s.editName]]):(N(),H("span",{key:0,onClick:l=>i.selectChoice(s),class:Ee([{"font-semibold":s===r.selectedChoice},"text-gray-800 dark:text-white cursor-pointer"])},J(i.displayName(s)),11,zDn)),s.size?(N(),H("span",WDn,J(i.formatSize(s.size)),1)):Z("",!0)]),S("div",KDn,[S("button",{onClick:l=>i.editChoice(s),class:"text-blue-500 hover:text-blue-600 mr-2"},e[6]||(e[6]=[S("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})],-1)]),8,ZDn),n.can_remove?(N(),H("button",{key:0,onClick:l=>i.removeChoice(s,a),class:"text-red-500 hover:text-red-600"},e[7]||(e[7]=[S("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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)]),8,XDn)):Z("",!0)])])]))),128))])]),r.showInput?(N(),H("div",JDn,[Ce(S("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>r.newFilename=s),placeholder:"Enter a filename",class:"border border-gray-300 dark:border-gray-600 p-2 rounded-lg w-full mb-2 bg-white dark:bg-gray-700 text-gray-800 dark:text-white"},null,512),[[Je,r.newFilename]]),S("button",{onClick:e[1]||(e[1]=(...s)=>i.addNewFilename&&i.addNewFilename(...s)),class:"bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded-lg transition duration-300"}," Add ")])):Z("",!0),S("div",eIn,[S("button",{onClick:e[2]||(e[2]=(...s)=>i.closeDialog&&i.closeDialog(...s)),class:"bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded-lg transition duration-300"}," Cancel "),S("button",{onClick:e[3]||(e[3]=(...s)=>i.validateChoice&&i.validateChoice(...s)),disabled:!r.selectedChoice,class:Ee([{"bg-blue-500 hover:bg-blue-600":r.selectedChoice,"bg-gray-400 cursor-not-allowed":!r.selectedChoice},"text-white font-bold py-2 px-4 rounded-lg transition duration-300"])}," Validate ",10,tIn),S("button",{onClick:e[4]||(e[4]=(...s)=>i.toggleInput&&i.toggleInput(...s)),class:"bg-green-500 hover:bg-green-600 text-white font-bold py-2 px-4 rounded-lg transition duration-300"}," Add New ")])])])):Z("",!0)]),_:1})}const Sh=ze(VDn,[["render",nIn],["__scopeId","data-v-f43216be"]]),rIn={name:"ModelsZoo",components:{ModelEntry:$Dn,ChoiceDialog:Sh},props:{api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["settings-changed"],data(){return{allModels:[],filteredModels:[],pagedModels:[],isLoadingModels:!1,isSearching:!1,searchTerm:"",sortOption:"rank",showInstalledOnly:!1,referencePath:"",modelUrl:"",isDownloading:!1,itemsPerPage:15,currentPage:1,searchDebounceTimer:null,downloadProgress:{visible:!1,name:"",progress:0,speed:0,total_size:0,downloaded_size:0,details:null},variantSelectionDialog:{visible:!1,title:"Select Model Variant",choices:[],modelToInstall:null,selectedVariant:null},defaultIcon:z1}},computed:{currentBindingNameComputed(){const t=this.$store.state.config.binding_name;if(!t)return"None Selected";const e=(this.$store.state.bindingsZoo||[]).find(n=>n.folder===t);return e?e.name:t},currentModelInfoComputed(){const t=this.$store.state.config.model_name;if(!t||this.allModels.length===0)return null;const e=this.allModels.find(n=>n.name===t);return e?{name:e.name,icon:e.icon||this.defaultIcon}:null},hasMoreModelsToLoad(){return this.pagedModels.length{console.log(`Store refresh dispatches initiated for ${t}. Waiting for store watchers.`)}).catch(n=>{console.error(`Error dispatching store refresh for binding ${t}:`,n),this.show_toast(`Failed to load models for binding ${t}.`,5,!1),this.isLoadingModels=!1})):(console.log("Binding removed, local models cleared."),this.isLoadingModels=!1))}},"$store.state.modelsArr":{handler(){console.log("Store installedModels changed, reprocessing."),this.processAndCombineModels()},deep:!1},allModels:{handler(t,e){t!==e&&t.length>0?(console.log("Processed allModels changed, applying filters and reloading page 1."),this.currentPage=1,this.pagedModels=[],this.applyFiltersAndSort(),this.loadMoreModels()):t.length===0&&e.length>0?(console.log("Processed allModels cleared, resetting filters and paged models."),this.filteredModels=[],this.pagedModels=[],this.currentPage=1):t===e&&t.length>0&&(console.log("allModels reference same, but potentially updated internal state. Re-applying filters."),this.currentPage=1,this.pagedModels=[],this.applyFiltersAndSort(),this.loadMoreModels())},deep:!0},watchSources(t,e){(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2])&&(console.log("Filter/Sort/Search changed, resetting page and applying filters."),this.currentPage=1,this.pagedModels=[],this.applyFiltersAndSort(),this.loadMoreModels())}},methods:{async processAndCombineModels(){var i;this.isLoadingModels=!0,console.log("Processing models from store...");const t=this.$store.state.modelsZoo,e=new Set(this.$store.state.modelsArr),n=s=>{let a=s.id||s.name||s.filename||"unknown";return s.quantizer&&(a+=`-${s.quantizer}`),s.variants&&s.variants.length>0&&s.variants[0].name?a+=`-${s.variants[0].name}`:s.filename&&(a+=`-${s.filename}`),a},o=(i=this.downloadProgress.details)==null?void 0:i.model_id,r=(t||[]).map(s=>{const a=n(s);return{name:s.name,author:s.author,rank:s.rank,quantizer:s.quantizer,description:s.description,license:s.license,last_commit_time:s.last_commit_time,variants:s.variants?[...s.variants]:[],filename:s.filename,path:s.path,type:s.type,icon:s.icon||this.defaultIcon,isInstalled:e.has(s.name)||s.variants&&s.variants.some(l=>e.has(l.name)),isProcessing:o===a&&this.isDownloading||!1,id:a}});this.$store.state.modelsArr.forEach(s=>{if(!r.some(l=>l.name===s||l.variants&&l.variants.some(c=>c.name===s))){const l=s;r.push({name:s,isInstalled:!0,isProcessing:o===l&&this.isDownloading||!1,isCustomModel:!0,icon:this.defaultIcon,id:l,rank:-1,author:"Local"})}}),this.allModels=r,this.$store.state.config.binding_name?!this.isDownloading&&this.allModels.length>0&&(this.isLoadingModels=!1):this.isLoadingModels=!1,console.log(`Processed ${this.allModels.length} total models. Loading state: ${this.isLoadingModels}`)},applyFiltersAndSort(){this.isSearching=!0,console.time("FilterSortModels");let t=[...this.allModels];if(this.showInstalledOnly&&(t=t.filter(e=>e.isInstalled)),this.searchTerm){const e=this.searchTerm.toLowerCase();t=t.filter(n=>{var o,r,i,s,a;return((o=n.name)==null?void 0:o.toLowerCase().includes(e))||((r=n.author)==null?void 0:r.toLowerCase().includes(e))||((i=n.quantizer)==null?void 0:i.toLowerCase().includes(e))||((s=n.description)==null?void 0:s.toLowerCase().includes(e))||((a=n.license)==null?void 0:a.toLowerCase().includes(e))})}t.sort((e,n)=>{if(e.isInstalled&&!n.isInstalled)return-1;if(!e.isInstalled&&n.isInstalled)return 1;switch(this.sortOption){case"rank":return(n.rank??-1/0)-(e.rank??-1/0);case"name":return(e.name||"").localeCompare(n.name||"");case"last_commit_time":{const o=e.last_commit_time?new Date(e.last_commit_time):null,r=n.last_commit_time?new Date(n.last_commit_time):null;return o&&r?r-o:o?-1:r?1:0}case"quantizer":return(e.quantizer||"").localeCompare(n.quantizer||"");case"license":return(e.license||"").localeCompare(n.license||"");default:return 0}}),this.filteredModels=t,console.timeEnd("FilterSortModels"),this.isSearching=!1,console.log(`Filtered/Sorted models: ${this.filteredModels.length}`)},debounceSearch(){this.isSearching=!0,clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=setTimeout(()=>{},500)},loadMoreModels(){this.isLoadingModels||this.isSearching||!this.hasMoreModelsToLoad||(this.isLoadingModels=!0,console.log(`Loading page ${this.currentPage} for models`),be(()=>{const t=(this.currentPage-1)*this.itemsPerPage,e=t+this.itemsPerPage,n=this.filteredModels.slice(t,e),o=n.filter(r=>!this.pagedModels.some(i=>(i.id||i.name)===(r.id||r.name)));o.length>0?(this.pagedModels.push(...o),this.currentPage++,be(()=>{Le.replace(),this.isLoadingModels=!1})):(this.isLoadingModels=!1,n.length===0&&this.hasMoreModelsToLoad&&console.warn("Load more triggered but no new items found in slice."))}))},handleSelect(t){if(console.log("Model selected in child:",t.name),this.isDownloading||this.isLoadingModels){this.show_toast("Please wait for the current operation to finish.",3,!1);return}if(!t.isInstalled){this.show_toast(`Model "${t.name}" is not installed.`,3,!1);return}this.$store.state.config.model_name!==t.name&&(this.$store.state.config.model_name=t.name,this.show_toast(`Selecting model: ${t.name}...`,2,!0),this.isLoadingModels=!0,this.$emit("settings-changed"),setTimeout(()=>{this.isLoadingModels=!1,this.$store.state.config.model_name===t.name?(console.log("Model selection confirmed in store."),be(Le.replace)):console.warn("Model selection change not reflected in store after emit and delay.")},500))},handleInstall(t){const e=t.model;console.log("Install requested for:",e.name);const n=e.variants||[];if(e.isInstalled){this.show_toast(`Model "${e.name}" is already installed.`,3,!1);return}if(this.isDownloading){this.show_toast("Another operation is already in progress.",3,!1);return}if(n.length>0)this.variantSelectionDialog.choices=n.map(o=>({...o,id:o.name||`variant-${Math.random().toString(36).substring(7)}`,label:`${o.name||"Unknown Variant"} (${E2(o.size||0)})`})),this.variantSelectionDialog.modelToInstall=e,this.variantSelectionDialog.title=`Select variant for ${e.name}`,this.variantSelectionDialog.visible=!0;else{const o=e.filename||e.name,r=e.quantizer||"Unknown",i=e.path||`https://huggingface.co/${e.author||r}/${e.name}/resolve/main/${o}`;this.startDownload(e,i,o)}},handleVariantSelected(t){this.variantSelectionDialog.selectedVariant=t},handleVariantValidated(t){if(!t||!this.variantSelectionDialog.modelToInstall){this.closeVariantDialog();return}const e=this.variantSelectionDialog.modelToInstall,n=t,o=e.quantizer||"Unknown",r=n.path||`https://huggingface.co/${e.author||o}/${e.name}/resolve/main/${n.name}`;this.startDownload(e,r,n.name),this.closeVariantDialog()},closeVariantDialog(){this.variantSelectionDialog.visible=!1,this.variantSelectionDialog.choices=[],this.variantSelectionDialog.modelToInstall=null,this.variantSelectionDialog.selectedVariant=null},startDownload(t,e,n){const o=t.id||t.name;if(console.log(`Starting download: ${t.name}, Variant: ${n}, Path: ${e}, ID: ${o}`),this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}const r=this.$store.state.config.binding_name;if(!r){this.show_toast("No binding selected. Cannot install model.",4,!1);return}this.setModelProcessing(o,!0),this.isDownloading=!0,this.isLoadingModels=!0,this.downloadProgress={visible:!0,name:`Downloading ${t.name}${n!==t.name?` (${n})`:""}`,progress:0,speed:0,total_size:0,downloaded_size:0,details:{model_name:t.name,binding_folder:r,model_url:e,variant_name:n,model_id:o,type:t.type||"gguf"}},Ye.emit("install_model",{path:e,name:t.name,variant_name:n,type:t.type||"gguf",binding:r,model_id:o}),console.log("Install command sent via socket.")},async handleUninstall(t){const e=t.model,n=e.id||e.name;if(this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}if(!await this.show_yes_no_dialog(`Uninstall model "${e.name}"?`,"Uninstall","Cancel"))return;const r=this.$store.state.config.binding_name;if(!r){this.show_toast("No binding selected. Cannot uninstall model.",4,!1);return}console.log(`Starting uninstall for: ${e.name}, ID: ${n}`),this.setModelProcessing(n,!0),this.isDownloading=!0,this.isLoadingModels=!0,this.downloadProgress={visible:!0,name:`Uninstalling ${e.name}...`,progress:50,speed:0,total_size:0,downloaded_size:0,details:{model_id:n,model_name:e.name,operation:"uninstall",binding_folder:r}},Ye.emit("uninstall_model",{name:e.name,type:e.type||"gguf",binding:r,model_id:n}),console.log("Uninstall command sent via socket.")},handleCancelInstall(t){const e=t!=null&&t.model?{model_name:t.model.name,binding_folder:this.$store.state.config.binding_name,model_url:t.model.path||"unknown",variant_name:t.model.filename||t.model.name,model_id:t.model.id||t.model.name}:this.downloadProgress.details||t;if(!e||!e.model_id){console.warn("Cancel requested but no details found or missing ID."),this.downloadProgress.visible&&this.resetDownloadState(null,!1);return}console.log("Cancelling operation for:",e);const n=e.binding_folder||this.$store.state.config.binding_name;if(!n){console.error("Cannot cancel, binding folder unknown."),this.show_toast("Cannot cancel operation: Binding context missing.",4,!1);return}Ye.emit("cancel_install",{model_name:e.model_name,binding_folder:n,model_url:e.model_url,variant_name:e.variant_name,model_id:e.model_id})},handleCopy(t){},handleCopyLink(t){},async createReference(){if(!this.referencePath){this.show_toast("Please enter a path.",3,!1);return}if(this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}const t=this.$store.state.config.binding_name;if(!t){this.show_toast("No binding selected. Cannot add reference.",4,!1);return}this.isLoadingModels=!0;try{const e=await this.api_post_req("add_reference_to_local_model",{path:this.referencePath,binding:t});e.status?(this.show_toast("Reference created.",4,!0),this.referencePath="",this.$store.dispatch("refreshModels",{binding:t})):(this.show_toast(`Couldn't create reference: ${e.error||"Unknown"}`,4,!1),this.isLoadingModels=!1)}catch(e){this.show_toast(`Error: ${e.message}`,4,!1),this.isLoadingModels=!1}},installFromInput(){if(!this.modelUrl){this.show_toast("Enter URL or HF ID.",3,!1);return}if(this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}if(!this.$store.state.config.binding_name){this.show_toast("No binding selected. Cannot install model.",4,!1);return}let e=this.modelUrl.trim(),n="unknown_model",o="unknown_variant",r="gguf",i="Unknown",s=e;const a=/^([a-zA-Z0-9\-_.]+)\/([a-zA-Z0-9\-_.]+)(\/resolve\/main\/)?([a-zA-Z0-9\-_.]+\.(gguf|bin|safetensors))?$/,l=e.match(a),c=/^([a-zA-Z0-9\-_.]+)\/([a-zA-Z0-9\-_.]+)$/,u=e.match(c);if(l)i=l[1],n=l[2],o=l[4]||n,s=`${i}/${n}`,e.startsWith("http")||(e=`https://huggingface.co/${i}/${n}`+(l[3]?l[3]:"/resolve/main/")+o),r=l[5]||"gguf",this.show_toast(`Detected HF Model: ${s}, File: ${o}`,2,!0);else if(u&&!e.startsWith("http"))i=u[1],n=u[2],o=n,s=`${i}/${n}`,e=`https://huggingface.co/${i}/${n}`,this.show_toast(`Detected HF Repo ID: ${s}. Attempting download (may require variant selection).`,2,!0);else if(e.startsWith("http"))try{const f=new URL(e),T=f.pathname.split("/").filter(h=>h);T.length>0?(o=T[T.length-1],n=o.split(".")[0],f.hostname==="huggingface.co"&&T.length>=2?(i=T[0],n=T[1],s=`${i}/${n}`):s=n,o.toLowerCase().endsWith(".safetensors")?r="safetensors":o.toLowerCase().endsWith(".bin")&&(r="bin")):(n=f.hostname,o=n,s=n)}catch{this.show_toast("Invalid URL.",4,!1);return}else{this.show_toast("Invalid input. Use URL or HF ID (e.g., TheBloke/Llama-2-7B-GGUF).",4,!1);return}const d={name:n,author:i,type:r,id:s,filename:o,path:e};this.startDownload(d,e,o),this.modelUrl=""},imgPlaceholder(t){t.target.src=this.defaultIcon},setModelProcessing(t,e){const n=this.allModels.findIndex(o=>(o.id||o.name)===t);if(n!==-1){if(this.allModels[n].isProcessing!==e){const o={...this.allModels[n],isProcessing:e},r=[...this.allModels];r[n]=o,this.allModels=r,console.log(`Set processing ${e} for ${t}`)}}else console.warn(`setModelProcessing: Model with ID ${t} not found in allModels.`)},resetDownloadState(t=null,e=!1){(!t||this.downloadProgress.details&&this.downloadProgress.details.model_id===t)&&(this.downloadProgress.visible=!1,this.downloadProgress.details=null,this.isDownloading=!1),t&&this.setModelProcessing(t,!1),!this.isDownloading&&(!this.$store.state.config.binding_name||this.allModels.length>0)&&(this.isLoadingModels=!1),console.log(`Reset download state. Global loading: ${this.isLoadingModels}`)},installProgressListener(t){var o,r,i;console.log("Socket install_progress received:",t);const e=t.model_id||t.model_name;if(!e){console.error("Progress msg missing ID:",t);return}const n=(o=this.downloadProgress.details)==null?void 0:o.model_id;if(this.isDownloading&&e!==n){console.log(`Ignoring progress for ${e}, currently processing ${n}`);return}switch(!this.isDownloading&&(t.status==="progress"||t.status==="downloading")&&console.warn(`Received progress for ${e} but not in downloading state.`),t.status){case"progress":case"downloading":this.isLoadingModels=!0,this.downloadProgress.visible||(this.downloadProgress.visible=!0),this.downloadProgress.details||(this.downloadProgress.details={model_id:e}),this.downloadProgress.name=t.message||`Processing ${t.model_name||e}...`,this.downloadProgress.progress=t.progress||0,this.downloadProgress.speed=t.speed||0,this.downloadProgress.total_size=t.total_size||0,this.downloadProgress.downloaded_size=t.downloaded_size||0,this.setModelProcessing(e,!0);break;case"succeeded":{const s=t.operation||(((r=this.downloadProgress.details)==null?void 0:r.operation)==="uninstall"?"uninstall":"install");this.show_toast(`"${t.model_name||e}" ${s} succeeded!`,4,!0),this.resetDownloadState(e,!0),this.$store.dispatch("refreshModels",{binding:this.$store.state.config.binding_name});break}case"failed":case"cancelled":{const s=t.operation||((i=this.downloadProgress.details)==null?void 0:i.operation)||"operation";this.show_toast(`"${t.model_name||e}" ${s} ${t.status}: ${t.error||"Unknown reason"}`,5,!1),this.resetDownloadState(e,!1);break}default:console.warn("Unknown progress status:",t.status)}}},async mounted(){console.log("updated"),await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),this.processAndCombineModels(),Ye.on("install_progress",this.installProgressListener),be(()=>{Le.replace()}),this.$store.state.config.binding_name&&this.allModels.length===0&&!this.isLoadingModels&&(console.log("Mounted with binding but no models, triggering initial load check."),this.isLoadingModels=!0,Promise.all([this.$store.dispatch("refreshModelsZoo",{binding:this.$store.state.config.binding_name}),this.$store.dispatch("refreshModels",{binding:this.$store.state.config.binding_name})]).catch(t=>{console.error("Error dispatching initial store refresh:",t),this.show_toast(`Failed initial load for ${this.$store.state.config.binding_name}.`,5,!1),this.isLoadingModels=!1}))},unmounted(){Ye.off("install_progress",this.installProgressListener),clearTimeout(this.searchDebounceTimer)},async updated(){be(()=>{Le.replace()})}},iIn={class:"user-settings-panel space-y-6"},oIn={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b border-blue-300 dark:border-blue-600 pb-3 mb-4"},sIn={key:0,class:"flex items-center gap-2 text-sm font-medium p-2 bg-blue-100 dark:bg-blue-800/50 rounded-md border border-blue-300 dark:border-blue-600 shrink-0 text-blue-700 dark:text-blue-200"},aIn=["src"],lIn={class:"font-semibold"},cIn={key:1,class:"text-sm font-medium text-orange-600 dark:text-orange-400 p-2 bg-orange-100 dark:bg-orange-900/30 rounded-md border border-orange-300 dark:border-orange-600 shrink-0"},uIn={key:2,class:"text-sm font-medium text-red-600 dark:text-red-400 p-2 bg-red-100 dark:bg-red-900/30 rounded-md border border-red-300 dark:border-red-600 shrink-0"},dIn={class:"text-sm text-blue-600 dark:text-blue-400"},TIn={class:"font-semibold"},fIn={key:0,class:"p-3 text-center text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/30 rounded-md border border-orange-300 dark:border-orange-600"},pIn={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4 items-center"},hIn={class:"relative md:col-span-2"},mIn={key:0,class:"absolute inset-y-0 right-0 pr-3 flex items-center"},gIn={class:"flex items-center space-x-2"},_In={for:"model-filter-installed",class:"flex items-center space-x-1 cursor-pointer text-sm label"},QIn={key:1,class:"flex justify-center items-center p-10 text-loading"},vIn={key:2,class:"text-center text-blue-500 dark:text-blue-400 py-10"},yIn={key:3,class:"text-center text-blue-500 dark:text-blue-400 py-10"},bIn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",ref:"scrollContainer"},EIn={key:4,class:"mt-6 text-center"},SIn=["disabled"],xIn={key:0},LIn={key:1},CIn={class:"pt-6 border-t border-blue-200 dark:border-blue-700 mt-6"},AIn={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},wIn={class:"flex"},OIn={class:"flex"},MIn=["disabled"],RIn={key:0,class:"mt-4 p-3 bg-blue-100 dark:bg-blue-900/30 border border-blue-200 dark:border-blue-700 rounded-md"},NIn={class:"flex justify-between items-center mb-1"},DIn={class:"text-sm font-medium text-blue-700 dark:text-blue-300"},IIn={class:"text-xs font-medium text-progress"},kIn={class:"animated-progressbar-bg h-1.5"},HIn={class:"flex justify-between items-center mt-1 text-xs text-progress"};function PIn(t,e,n,o,r,i){const s=We("ModelEntry"),a=We("ChoiceDialog");return N(),H("div",iIn,[S("div",oIn,[e[12]||(e[12]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 mb-2 sm:mb-0"}," Models Zoo ",-1)),i.currentModelInfoComputed?(N(),H("div",sIn,[S("img",{src:i.currentModelInfoComputed.icon,onError:e[0]||(e[0]=(...l)=>i.imgPlaceholder&&i.imgPlaceholder(...l)),class:"w-6 h-6 rounded-lg object-cover flex-shrink-0",alt:"Current Model Icon"},null,40,aIn),S("span",null,[e[11]||(e[11]=Oe("Active: ")),S("span",lIn,J(i.currentModelInfoComputed.name),1)])])):t.$store.state.config.binding_name?(N(),H("div",uIn," No model selected! ")):(N(),H("div",cIn," Select a Binding first! "))]),S("p",dIn,[e[13]||(e[13]=Oe(" Select a model compatible with your chosen binding (")),S("span",TIn,J(i.currentBindingNameComputed||"None Selected"),1),e[14]||(e[14]=Oe("). Installed models are shown first. Models may require specific variants (e.g., GGUF, GPTQ) depending on the binding. "))]),t.$store.state.config.binding_name?Z("",!0):(N(),H("div",fIn," Please select a Binding from the 'Bindings' section to see available models. ")),S("div",pIn,[S("div",hIn,[e[16]||(e[16]=S("div",{class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-5 h-5 text-blue-400 dark:text-blue-500 feather feather-search"},[S("circle",{cx:"11",cy:"11",r:"8"}),S("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})])],-1)),Ce(S("input",{type:"search","onUpdate:modelValue":e[1]||(e[1]=l=>r.searchTerm=l),placeholder:"Search models by name, author, quantizer, description...",class:"input search-input pl-10 w-full",onInput:e[2]||(e[2]=(...l)=>i.debounceSearch&&i.debounceSearch(...l))},null,544),[[Je,r.searchTerm]]),r.isSearching?(N(),H("div",mIn,e[15]||(e[15]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 text-blue-400 animate-spin dark:text-blue-500 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1)]))):Z("",!0)]),S("div",gIn,[S("label",_In,[Ce(S("input",{type:"checkbox",id:"model-filter-installed","onUpdate:modelValue":e[3]||(e[3]=l=>r.showInstalledOnly=l),class:"rounded text-blue-600 focus:ring-blue-500 border-blue-300 dark:border-blue-600 bg-blue-100 dark:bg-blue-700 focus:ring-offset-blue-100 dark:focus:ring-offset-blue-800"},null,512),[[Ql,r.showInstalledOnly]]),e[17]||(e[17]=S("span",null,"Installed Only",-1))])]),S("div",null,[e[19]||(e[19]=S("label",{for:"model-sort",class:"sr-only"},"Sort models by",-1)),Ce(S("select",{id:"model-sort","onUpdate:modelValue":e[4]||(e[4]=l=>r.sortOption=l),class:"input"},e[18]||(e[18]=[tr('',5)]),512),[[Ir,r.sortOption]])])]),r.isLoadingModels?(N(),H("div",QIn,e[20]||(e[20]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 mr-2 text-blue-300 animate-spin dark:text-blue-600 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading models...",-1)]))):r.pagedModels.length===0&&r.filteredModels.length>0?(N(),H("div",vIn," No models found matching filters"+J(r.searchTerm?' and search "'+r.searchTerm+'"':"")+". ",1)):r.allModels.length===0&&!r.isLoadingModels&&t.$store.state.config.binding_name?(N(),H("div",yIn," No models available for the selected binding. Try adding a reference or downloading below. ")):Z("",!0),S("div",bIn,[(N(!0),H(Ae,null,Ue(r.pagedModels,l=>{var c,u,d,f,T;return N(),it(s,{key:l.id||l.name,model:l,"is-selected":t.$store.state.config.model_name===l.name,"is-installed":l.isInstalled,"is-processing":l.isProcessing,progress:((c=r.downloadProgress.details)==null?void 0:c.model_id)===(l.id||l.name)?r.downloadProgress.progress:0,speed:((u=r.downloadProgress.details)==null?void 0:u.model_id)===(l.id||l.name)?r.downloadProgress.speed:0,total_size:((d=r.downloadProgress.details)==null?void 0:d.model_id)===(l.id||l.name)?r.downloadProgress.total_size:0,downloaded_size:((f=r.downloadProgress.details)==null?void 0:f.model_id)===(l.id||l.name)?r.downloadProgress.downloaded_size:0,"progress-name":((T=r.downloadProgress.details)==null?void 0:T.model_id)===(l.id||l.name)?r.downloadProgress.name:"",onSelect:i.handleSelect,onInstall:i.handleInstall,onUninstall:i.handleUninstall,onCancelInstall:i.handleCancelInstall,onCopy:i.handleCopy,onCopyLink:i.handleCopyLink},null,8,["model","is-selected","is-installed","is-processing","progress","speed","total_size","downloaded_size","progress-name","onSelect","onInstall","onUninstall","onCancelInstall","onCopy","onCopyLink"])}),128))],512),i.hasMoreModelsToLoad?(N(),H("div",EIn,[S("button",{onClick:e[5]||(e[5]=(...l)=>i.loadMoreModels&&i.loadMoreModels(...l)),disabled:r.isLoadingModels||r.isSearching,class:"btn btn-secondary"},[r.isLoadingModels||r.isSearching?(N(),H("span",xIn,e[21]||(e[21]=[S("svg",{"aria-hidden":"true",class:"w-4 h-4 mr-1 inline animate-spin text-blue-400 dark:text-blue-500 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),Oe(" Loading... ")]))):(N(),H("span",LIn,"Load More Models ("+J(r.filteredModels.length-r.pagedModels.length)+" remaining)",1))],8,SIn)])):Z("",!0),S("section",CIn,[e[27]||(e[27]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Add Model",-1)),S("div",AIn,[S("div",null,[e[22]||(e[22]=S("label",{for:"reference_path",class:"label mb-1"},"Add Reference to Local Model File/Folder",-1)),S("div",wIn,[Ce(S("input",{type:"text",id:"reference_path","onUpdate:modelValue":e[6]||(e[6]=l=>r.referencePath=l),class:"input input-sm rounded-r-none flex-grow",placeholder:"Enter full path to model file or folder..."},null,512),[[Je,r.referencePath]]),S("button",{onClick:e[7]||(e[7]=(...l)=>i.createReference&&i.createReference(...l)),class:"btn btn-primary btn-sm rounded-l-none flex-shrink-0",title:"Add Reference"},"Add")]),e[23]||(e[23]=S("p",{class:"text-xs text-blue-500 dark:text-blue-400 mt-1"},"Creates a link without copying the model. Binding must support references.",-1))]),S("div",null,[e[25]||(e[25]=S("label",{for:"model_url",class:"label mb-1"},"Download Model from URL or Hugging Face ID",-1)),S("div",OIn,[Ce(S("input",{type:"text",id:"model_url","onUpdate:modelValue":e[8]||(e[8]=l=>r.modelUrl=l),class:"input input-sm rounded-r-none flex-grow",placeholder:"Enter URL or HF ID (e.g., TheBloke/Llama-2-7B-GGUF)..."},null,512),[[Je,r.modelUrl]]),S("button",{onClick:e[9]||(e[9]=(...l)=>i.installFromInput&&i.installFromInput(...l)),class:"btn btn-success btn-sm rounded-l-none flex-shrink-0",title:"Download and Install",disabled:r.isDownloading},[(N(),H("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:Ee(["w-4 h-4",r.isDownloading?"animate-spin feather feather-loader":"feather feather-download"])},e[24]||(e[24]=[tr('',11)]),2))],8,MIn)]),e[26]||(e[26]=S("p",{class:"text-xs text-blue-500 dark:text-blue-400 mt-1"},"Downloads the model to the binding's models folder.",-1))])]),r.downloadProgress.visible?(N(),H("div",RIn,[S("div",NIn,[S("span",DIn,J(r.downloadProgress.name),1),S("span",IIn,J(r.downloadProgress.progress.toFixed(1))+"%",1)]),S("div",kIn,[S("div",{class:"animated-progressbar-fg h-1.5 rounded-full",style:Jt({width:r.downloadProgress.progress+"%"})},null,4)]),S("div",HIn,[S("span",null,J(i.downloadedSizeComputed)+" / "+J(i.totalSizeComputed),1),S("span",null,J(i.speedComputed)+"/s",1)]),S("button",{onClick:e[10]||(e[10]=l=>i.handleCancelInstall(r.downloadProgress.details)),class:"btn btn-secondary btn-sm mt-2 text-xs text-red-500 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-700"},"Cancel Operation")])):Z("",!0)]),ne(a,{show:r.variantSelectionDialog.visible,title:r.variantSelectionDialog.title,choices:r.variantSelectionDialog.choices,onChoiceSelected:i.handleVariantSelected,onChoiceValidated:i.handleVariantValidated,onCloseDialog:i.closeVariantDialog},null,8,["show","title","choices","onChoiceSelected","onChoiceValidated","onCloseDialog"])])}const DO=ze(rIn,[["render",PIn],["__scopeId","data-v-afc35f9f"]]),$In={name:"PersonalityEntry",components:{InteractiveMenu:Eh},props:{personality:{type:Object,required:!0},select_language:{type:Boolean,default:!1},isActive:{type:Boolean,default:!1},full_path:{type:String,required:!0},isMounted:{type:Boolean,default:!1},isProcessing:{type:Boolean,default:!1},isStarred:{type:Boolean,default:!1},baseUrl:{type:String,default:""}},emits:["select","mount","unmount","remount","edit","copy-to-custom","reinstall","settings","copy-personality-name","open-folder","error","toggle-star"],data(){return{selectedLanguage:this.personality.language||"",showHelpPopup:!1,renderedHelp:""}},computed:{personalityId(){return this.personality.id||this.full_path.replace(/[/:]/g,"-")},renderedDescription(){return this.personality.description?/<[a-z][\s\S]*>/i.test(this.personality.description)?Rc.sanitize(this.personality.description):this.escapeHtml(this.personality.description).replace(/\n/g,"
"):"No description available."},commandsList(){let t=[];return this.isMounted?t.push({name:"unmount",icon:"feather:stop-circle",is_file:!1,value:this.emitUnmount}):t.push({name:"mount",icon:"feather:play",is_file:!1,value:this.emitMount}),this.isMounted&&t.push({name:"remount",icon:"feather:refresh-cw",is_file:!1,value:this.emitRemount}),t.push({name:"reinstall",icon:"feather:download-cloud",is_file:!1,value:this.emitReinstall}),this.full_path.startsWith("custom_personalities/")||this.personality.category==="custom_personalities"?t.push({name:"edit",icon:"feather:edit-3",is_file:!1,value:this.emitEdit}):t.push({name:"Copy to custom personalities",icon:"feather:copy",is_file:!1,value:this.emitCopyToCustom}),this.isActive&&this.personality.has_scripts&&t.push({name:"settings",icon:"feather:settings",is_file:!1,value:this.emitSettings}),t.push({name:"Open Folder",icon:"feather:folder",is_file:!1,value:this.emitOpenFolder}),t.push({name:"Copy Name",icon:"feather:clipboard",is_file:!1,value:this.emitCopyName}),t},watchedFeatherProps(){return[this.isActive,this.isMounted,this.isProcessing,this.isStarred,this.showHelpPopup,this.commandsList]}},watch:{"personality.language"(t){const e=t||"";this.selectedLanguage!==e&&(this.selectedLanguage=e)},watchedFeatherProps:{handler(){this.updateFeatherIcons()},deep:!0,flush:"post"}},methods:{escapeHtml(t){return t?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,'"').replace(/'/g,"'"):""},updateFeatherIcons(){be(()=>{try{Le.replace()}catch(t){console.error("Feather icons replacement failed:",t)}})},formatDate(t){if(!t)return"";try{const e={year:"numeric",month:"short",day:"numeric"};return new Date(t).toLocaleDateString(void 0,e)}catch(e){return console.error("Error formatting date:",e),t}},getPersonalityIconUrl(t){if(!t)return Wi;const e=this.baseUrl.endsWith("/")?this.baseUrl.slice(0,-1):this.baseUrl,n=t.startsWith("/")?t:`/${t}`;return`${e}${n}`},handleImgError(t){t.target.src=Wi,this.$emit("error",{type:"image_load",message:"Failed to load personality icon",event:t})},handleSelect(){this.$emit("select",{personality:{...this.personality,language:this.selectedLanguage}})},emitAction(t){const e={personality:{...this.personality,language:this.selectedLanguage||this.personality.language||""}};this.$emit(t,e)},toggleStar(){this.emitAction("toggle-star")},emitMount(){this.emitAction("mount")},emitUnmount(){this.emitAction("unmount")},emitRemount(){this.emitAction("remount")},emitReinstall(){this.emitAction("reinstall")},emitEdit(){this.emitAction("edit")},emitCopyToCustom(){this.emitAction("copy-to-custom")},emitSettings(){this.emitAction("settings")},emitOpenFolder(){this.emitAction("open-folder")},emitCopyName(){this.emitAction("copy-personality-name")},showHelp(){if(this.personality.help){Et.setOptions({gfm:!0,breaks:!0,mangle:!1,headerIds:!1});try{const t=Et.parse(this.personality.help);this.renderedHelp=Rc.sanitize(t),this.showHelpPopup=!0,this.updateFeatherIcons()}catch(t){console.error("Error parsing or sanitizing help markdown:",t),this.renderedHelp="

Error displaying help content.

",this.showHelpPopup=!0}}},closeHelp(){this.showHelpPopup=!1}},mounted(){this.updateFeatherIcons(),this.selectedLanguage=this.personality.language||""}},VIn=["title"],BIn={key:0,class:"absolute inset-0 bg-blue-400 dark:bg-blue-700 bg-opacity-50 dark:bg-opacity-50 flex items-center justify-center rounded-lg z-20"},FIn=["title"],UIn={key:0,"data-feather":"star",class:"w-5 h-5 fill-current"},qIn={key:1,"data-feather":"star",class:"w-5 h-5 stroke-current"},GIn={class:"flex-grow flex flex-col"},jIn={class:"flex items-start mb-3"},zIn=["src"],YIn={class:"flex-grow overflow-hidden min-w-0"},WIn=["title"],KIn=["title"],ZIn=["title"],XIn=["title"],JIn={class:"text-xs text-blue-400 dark:text-blue-500 mb-3 space-y-1"},ekn={key:0},tkn={key:1},nkn={class:"mb-4 flex-grow"},rkn=["innerHTML"],ikn={key:0,class:"mb-3 mt-auto"},okn=["for"],skn=["id"],akn=["value"],lkn={class:"mt-auto pt-3 border-t border-blue-200 dark:border-blue-700"},ckn={class:"flex justify-between items-center"},ukn={class:"flex space-x-1"},dkn={class:"card w-full max-w-2xl max-h-[80vh] flex flex-col"},Tkn={class:"flex justify-between items-center mb-4 border-b pb-2 border-blue-200 dark:border-blue-600"},fkn={class:"text-xl font-bold text-blue-800 dark:text-blue-100"},pkn={class:"flex-grow overflow-y-auto scrollbar prose-blue max-w-none pr-2"},hkn=["innerHTML"],mkn={class:"mt-4 pt-4 border-t border-blue-200 dark:border-blue-600 text-right"};function gkn(t,e,n,o,r,i){const s=We("InteractiveMenu");return N(),H("div",{class:Ee(["app-card relative flex flex-col",{"border-2 border-blue-500 dark:border-blue-400 shadow-lg":n.isActive,"border-blue-200 dark:border-blue-700":!n.isActive,"opacity-50 pointer-events-none":n.isProcessing}]),title:n.personality.tool_description||n.personality.description||n.personality.name,onClick:e[11]||(e[11]=(...a)=>i.handleSelect&&i.handleSelect(...a))},[n.isProcessing?(N(),H("div",BIn,e[12]||(e[12]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 text-blue-200 animate-spin dark:text-blue-600 fill-blue-600 dark:fill-blue-300",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1)]))):Z("",!0),S("button",{onClick:e[0]||(e[0]=oe((...a)=>i.toggleStar&&i.toggleStar(...a),["stop"])),class:"absolute top-2 right-2 svg-button text-yellow-400 hover:text-yellow-500 dark:text-yellow-500 dark:hover:text-yellow-400 z-10",title:n.isStarred?"Unstar":"Star"},[n.isStarred?(N(),H("i",UIn)):(N(),H("i",qIn))],8,FIn),S("div",GIn,[S("div",jIn,[S("img",{src:i.getPersonalityIconUrl(n.personality.avatar),onError:e[1]||(e[1]=(...a)=>i.handleImgError&&i.handleImgError(...a)),alt:"Personality Icon",class:"w-16 h-16 rounded-lg object-cover mr-4 flex-shrink-0 border border-blue-200 dark:border-blue-600 shadow-sm"},null,40,zIn),S("div",YIn,[S("h3",{class:"font-bold text-lg text-blue-800 dark:text-blue-100 truncate",title:n.personality.name},J(n.personality.name),9,WIn),n.personality.author?(N(),H("p",{key:0,class:"text-xs text-blue-500 dark:text-blue-400 truncate",title:`By ${n.personality.author}`}," By "+J(n.personality.author),9,KIn)):Z("",!0),n.personality.version?(N(),H("p",{key:1,class:"text-xs text-blue-500 dark:text-blue-400",title:`Version: ${n.personality.version}`}," v"+J(n.personality.version),9,ZIn)):Z("",!0),n.personality.category?(N(),H("p",{key:2,class:"text-xs text-blue-500 dark:text-blue-400 truncate",title:`Category: ${n.personality.category}`},J(n.personality.category),9,XIn)):Z("",!0)]),n.personality.help?(N(),H("button",{key:0,onClick:e[2]||(e[2]=oe((...a)=>i.showHelp&&i.showHelp(...a),["stop"])),class:"ml-2 svg-button text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300 flex-shrink-0 -mr-1",title:"Help"},e[13]||(e[13]=[S("i",{"data-feather":"help-circle",class:"h-5 w-5"},null,-1)]))):Z("",!0)]),S("div",JIn,[n.personality.creation_date?(N(),H("p",ekn,"Created: "+J(i.formatDate(n.personality.creation_date)),1)):Z("",!0),n.personality.last_update_date?(N(),H("p",tkn,"Updated: "+J(i.formatDate(n.personality.last_update_date)),1)):Z("",!0)]),S("div",nkn,[S("p",{class:"text-sm text-blue-700 dark:text-blue-300 h-20 overflow-y-auto scrollbar",innerHTML:i.renderedDescription},null,8,rkn)]),n.select_language&&n.personality.languages&&n.personality.languages.length>0&&!n.isMounted?(N(),H("div",ikn,[S("label",{for:"lang-select-"+i.personalityId,class:"label mb-1"},"Language:",8,okn),Ce(S("select",{id:"lang-select-"+i.personalityId,"onUpdate:modelValue":e[3]||(e[3]=a=>r.selectedLanguage=a),onClick:e[4]||(e[4]=oe(()=>{},["stop"])),class:"input w-full text-sm"},[e[14]||(e[14]=S("option",{value:""},"Default",-1)),(N(!0),H(Ae,null,Ue(n.personality.languages,a=>(N(),H("option",{key:a,value:a},J(a),9,akn))),128))],8,skn),[[Ir,r.selectedLanguage]])])):Z("",!0),S("div",lkn,[S("div",ckn,[S("div",ukn,[n.isMounted?(N(),H("button",{key:1,onClick:e[6]||(e[6]=oe(a=>i.emitAction("unmount"),["stop"])),class:"btn btn-sm bg-red-600 hover:bg-red-700 text-white focus:ring-red-500 dark:bg-red-700 dark:hover:bg-red-600 dark:focus:ring-red-600",title:"Unmount personality"},e[16]||(e[16]=[S("div",{class:"flex items-center"},[S("i",{"data-feather":"stop-circle",class:"w-3 h-3 mr-1 stroke-current"}),Oe("Unmount")],-1)]))):(N(),H("button",{key:0,onClick:e[5]||(e[5]=oe(a=>i.emitAction("mount"),["stop"])),class:"btn btn-sm btn-success",title:"Mount personality"},e[15]||(e[15]=[S("div",{class:"flex items-center"},[S("i",{"data-feather":"play",class:"w-3 h-3 mr-1 stroke-current"}),Oe("Mount")],-1)]))),n.isMounted?(N(),H("button",{key:2,onClick:e[7]||(e[7]=oe(a=>i.emitAction("remount"),["stop"])),class:"svg-button p-1",title:"Remount personality"},e[17]||(e[17]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4"},null,-1)]))):Z("",!0)]),ne(s,{commands:i.commandsList,force_position:2,title:"More actions",class:"p-1"},{trigger:je(()=>e[18]||(e[18]=[S("button",{class:"svg-button p-1"},[S("i",{"data-feather":"more-vertical",class:"w-5 h-5"})],-1)])),_:1},8,["commands"])])])]),r.showHelpPopup?(N(),H("div",{key:1,onClick:e[10]||(e[10]=oe(()=>{},["stop"])),class:"fixed inset-0 bg-black bg-opacity-70 flex justify-center items-center z-50 p-4"},[S("div",dkn,[S("div",Tkn,[S("h2",fkn,"Help: "+J(n.personality.name),1),S("button",{onClick:e[8]||(e[8]=(...a)=>i.closeHelp&&i.closeHelp(...a)),class:"svg-button hover:text-red-600 dark:hover:text-red-500 p-1"},e[19]||(e[19]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)]))]),S("div",pkn,[S("div",{innerHTML:r.renderedHelp},null,8,hkn)]),S("div",mkn,[S("button",{onClick:e[9]||(e[9]=(...a)=>i.closeHelp&&i.closeHelp(...a)),class:"btn btn-primary"},"Close")])])])):Z("",!0)],10,VIn)}const Rk=ze($In,[["render",gkn]]),_kn="/",IO="lollms_starred_personalities",Qkn={name:"PersonalitiesZoo",components:{PersonalityEntry:Rk},emits:["settings-changed"],data(){return{allPersonalities:[],persCatgArr:[],selectedCategory:"",searchPersonality:"",searchPersonalityInProgress:!1,searchDebounceTimer:null,searchDebounceDelay:350,isLoading:!1,bUrl:_kn,defaultPersonalityIcon_:Wi,maxDisplayedMounted:5,starredPaths:[],displayedCount:24,loadBatchSize:24,observer:null}},computed:{configFile(){return this.$store.state.config||{personalities:[],active_personality_id:-1,personality_category:""}},mountedPersArr(){if(!this.configFile.personalities||this.allPersonalities.length===0)return[];const t=new Set(this.configFile.personalities);return this.allPersonalities.filter(e=>{const n=e.full_path,o=Array.isArray(e.languages)?e.languages.map(r=>`${n}:${r}`):[];return t.has(n)||o.some(r=>t.has(r))})},active_personality_name(){if(this.configFile.active_personality_id<0||!this.configFile.personalities||this.configFile.active_personality_id>=this.configFile.personalities.length)return null;const t=this.configFile.personalities[this.configFile.active_personality_id],e=t?t.split(":")[0]:null,n=this.allPersonalities.find(o=>o.full_path===e);return n?n.name:null},displayedMountedPersonalities(){return this.mountedPersArr.slice(0,this.maxDisplayedMounted)},fullyFilteredPersonalities(){let t=[...this.allPersonalities];if(this.selectedCategory==="Starred"){const e=new Set(this.starredPaths);t=t.filter(n=>e.has(n.full_path))}else this.selectedCategory&&(t=t.filter(e=>e.category===this.selectedCategory));if(this.searchPersonality){const e=this.searchPersonality.toLowerCase();t=t.filter(n=>{try{return n.name&&n.name.toLowerCase().includes(e)||n.author&&n.author.toLowerCase().includes(e)||n.description&&n.description.toLowerCase().includes(e)||n.full_path&&n.full_path.toLowerCase().includes(e)}catch{return!1}})}return t.sort((e,n)=>e.isMounted&&!n.isMounted?-1:!e.isMounted&&n.isMounted?1:(e.name||"").localeCompare(n.name||"")),t},renderedPersonalities(){return this.fullyFilteredPersonalities.slice(0,this.displayedCount)}},watch:{"configFile.personalities":{handler(){this.syncLocalMountedFlags()},deep:!0},"configFile.personality_category":{handler(t){const e=t||"";this.selectedCategory!==e&&(this.persCatgArr.includes(e)||e===""||e==="Starred")&&(this.selectedCategory=e,this.applyFiltersAndSort())}},selectedCategory(t){(this.$store.state.config.personality_category||"")!==t&&(this.$store.state.config.personality_category=t,this.$emit("settings-changed"))},starredPaths:{handler(){this.fetchCategories(),this.selectedCategory==="Starred"&&this.applyFiltersAndSort(),this.markStarredInAllPersonalities()},deep:!0}},methods:{async api_get_req(t){try{const e=await fe.get(`${t.startsWith("/")?"":"/"}${t}`);if(e)return e.data}catch(e){return this.$store.state.toast.showToast(`API GET Error (${t}): ${e.message}`,4,!1),console.error(`API GET Error (${t}):`,e),null}},async api_post_req(t,e={}){const n={...e,client_id:this.$store.state.client_id};try{const o=await fe.post(`${t.startsWith("/")?"":"/"}${t}`,n);return typeof o.data=="object"&&o.data!==null&&"status"in o.data?o.data:(console.warn(`API POST response for ${t} has unexpected structure:`,o.data),{status:!1,error:"Unexpected response structure",data:o.data})}catch(o){return this.$store.state.toast.showToast(`API POST Error (${t}): ${o.message}`,4,!1),console.error(`API POST Error (${t}):`,o),{status:!1,error:o.message}}},async getPersonalitiesArr(){this.isLoading=!0;try{const t=await this.api_get_req("get_all_personalities"),e=this.configFile;console.log("Processing get_all_personalities response");let n=[];const o=new Set(e.personalities||[]),r=new Set(this.starredPaths);if(t)for(const i in t){const s=t[i];Array.isArray(s)&&s.forEach(a=>{const l=`${i}/${a.folder}`,c=a.id||l,u=Array.isArray(a.languages)?a.languages.map(f=>`${l}:${f}`):[],d=o.has(l)||u.some(f=>o.has(f));n.push({...a,category:i,language:"",full_path:l,isMounted:d,isStarred:r.has(l),id:c,isProcessing:!1})})}this.allPersonalities=n,this.applyFiltersAndSort(),console.log(`Fetched ${this.allPersonalities.length} total personalities.`)}finally{this.isLoading=!1,be(Le.replace)}},async fetchCategories(){this.isLoading=!0;try{const t=await this.api_get_req("list_personalities_categories");this.persCatgArr=t?t.sort():[];const e=this.configFile.personality_category,n=e&&(this.persCatgArr.includes(e)||e==="Starred");this.selectedCategory=n?e:""}finally{this.isLoading=!1,be(Le.replace)}},async fetchPersonalitiesAndCategories(){await this.fetchCategories(),await this.getPersonalitiesArr()},applyFiltersAndSort(){this.displayedCount=this.loadBatchSize,this.searchPersonalityInProgress=!1,be(()=>{Le.replace();const t=this.$el.querySelector(".personalities-grid-container");t&&(t.scrollTop=0),this.setupObserver()})},searchPersonality_func(){this.searchPersonalityInProgress=!0,clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=setTimeout(()=>{this.applyFiltersAndSort()},this.searchDebounceDelay)},clearSearch(){this.searchPersonality="",this.applyFiltersAndSort()},loadStarred(){try{const t=localStorage.getItem(IO);this.starredPaths=t?JSON.parse(t):[]}catch(t){console.error("Failed to load starred personalities:",t),this.starredPaths=[]}this.markStarredInAllPersonalities()},saveStarred(){try{localStorage.setItem(IO,JSON.stringify(this.starredPaths))}catch(t){console.error("Failed to save starred personalities:",t)}},markStarredInAllPersonalities(){const t=new Set(this.starredPaths);this.allPersonalities.forEach(e=>{e.isStarred=t.has(e.full_path)})},toggleStar(t){const e=t.personality.full_path,n=this.starredPaths.indexOf(e);n>-1?this.starredPaths.splice(n,1):this.starredPaths.push(e);const o=this.allPersonalities.find(r=>r.full_path===e);o&&(o.isStarred=n===-1),this.saveStarred(),this.$store.state.toast.showToast(`${t.personality.name} ${n>-1?"unstarred":"starred"}`,2,!0),be(Le.replace)},syncLocalMountedFlags(){const t=new Set(this.configFile.personalities||[]);let e=!1;this.allPersonalities.forEach(n=>{const o=n.full_path,r=Array.isArray(n.languages)?n.languages.map(s=>`${o}:${s}`):[],i=t.has(o)||r.some(s=>t.has(s));n.isMounted!==i&&(n.isMounted=i,e=!0)}),e&&this.applyFiltersAndSort(),be(Le.replace)},personalityImgPlaceholder(t){t.target.src=this.defaultPersonalityIcon_},getPersonalityIconUrl(t){if(!t)return this.defaultPersonalityIcon_;const e=t.startsWith("/")?t:`/${t}`,n=this.bUrl.endsWith("/")||e.startsWith("/")?"":"/";let o=e.startsWith("/")?e.substring(1):e;return o=o==="/"?"":o,`${this.bUrl}${n}${o}`},isActivePersonality(t){if(!this.configFile||this.configFile.active_personality_id<0||!this.configFile.personalities)return!1;const e=this.configFile.personalities[this.configFile.active_personality_id],n=e?e.split(":")[0]:null;return t.full_path===n},setPersonalityProcessing(t,e){const n=t.personality.id||t.personality.full_path;(r=>{const i=r.find(s=>(s.id||s.full_path)===n);i&&(i.isProcessing=e)})(this.allPersonalities),be(Le.replace)},getCategoryCount(t){return this.allPersonalities.filter(e=>e.category===t).length},getResultLabel(){return this.searchPersonality?"Search results":this.selectedCategory==="Starred"?"Starred Personalities":this.selectedCategory?`Personalities in "${this.selectedCategory}"`:"All Personalities"},async onPersonalitySelected(t){const e=t.personality;if(this.isLoading){this.$store.state.toast.showToast("Loading...",4,!1);return}if(!e.isMounted){this.$store.state.toast.showToast(`Mount "${e.name}" first.`,3,!1);return}if(this.isActivePersonality(e)){this.$store.state.toast.showToast(`"${e.name}" is already active.`,3,!1);return}this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Selecting ${e.name}...`,2,!0);const n=await this.select_personality(e);n&&n.status?(this.$emit("settings-changed"),this.$store.state.toast.showToast(`Selected personality: ${e.name}`,4,!0)):this.$store.state.toast.showToast(`Failed to select ${e.name}: ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1),this.setPersonalityProcessing(t,!1),be(Le.replace)},async select_personality(t){if(!t)return{status:!1,error:"no personality - select_personality"};let e=t.language?`${t.full_path}:${t.language}`:t.full_path;if(this.$store.state.config.personalities.findIndex(i=>i===e||i===t.full_path)===-1){if(this.$store.state.config.personalities.findIndex(s=>s===t.full_path)===-1)return console.error("Personality path not found in store config:",e,t.full_path),{status:!1,error:"Personality path not found in current config"};e=t.full_path}const o=this.$store.state.config.personalities.findIndex(i=>i===e);if(o===-1)return console.error("Consistency Error: Personality path disappeared after check:",e),{status:!1,error:"Internal error finding personality ID"};const r={client_id:this.$store.state.client_id,id:o};try{const i=await fe.post("/select_personality",r,{headers:{"Content-Type":"application/json"}});return i&&i.data?(await this.$store.dispatch("refreshConfig"),i.data):{status:!1,error:"No response data from select_personality"}}catch(i){return console.error("Error in select_personality API call:",i),{status:!1,error:i.message}}},async mountPersonality(t){const e=t.personality;if(e.isMounted){this.$store.state.toast.showToast(`${e.name} is already mounted.`,3,!1);return}if(e.disclaimer&&e.disclaimer.trim()!==""&&!await this.$store.state.yesNoDialog.askQuestion(`Disclaimer for ${e.name}: +This overwrites files.`,"Reinstall","Cancel")){this.setBindingProcessing(t.folder,!0),this.isLoadingAction=!0;try{const n=await this.internal_api_post_req("reinstall_binding",{name:t.folder});n&&n.status?(this.show_toast(`Binding "${t.name}" reinstalled successfully! Reload recommended.`,5,!0),await this.fetchBindings()):this.show_toast(`Failed to reinstall "${t.name}": ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1)}catch{}finally{this.setBindingProcessing(t.folder,!1),this.isLoadingAction=!1,be(Le.replace)}}},handleSettingsFromEntry(t){if(!t||!t.folder){console.error("Invalid binding data in handleSettingsFromEntry:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}this.handleSettings(t.folder)},async handleSettings(t){if(console.log("Handling settings from"),console.log(t),!t){this.show_toast("No binding specified.",3,!1);return}const e=this.bindings.find(n=>n.folder===t);if(!e){this.show_toast(`Binding "${t}" not found.`,4,!1);return}if(!e.installed){this.show_toast(`"${e.name}" is not installed.`,3,!1);return}if(t!==this.$store.state.config.binding_name){this.show_toast(`Select "${e.name}" first to configure it.`,4,!1);return}this.isLoadingAction=!0;try{const n=await this.internal_api_post_req("get_active_binding_settings");if(n&&Object.keys(n).length>0){const o=e.name||t,r=await this.show_universal_form(n,`Settings - ${o}`,"Save","Cancel");if(r!=null){const i=await this.internal_api_post_req("set_active_binding_settings",{settings:r});i&&i.status?(this.show_toast(`Settings for "${o}" updated. Reloading...`,4,!0),await this.internal_api_post_req("update_binding_settings"),this.show_toast(`Binding "${o}" reloaded with new settings.`,4,!0),this.$emit("settings-changed",!0),this.refresh_config()):this.show_toast(`Failed to update settings for "${o}": ${(i==null?void 0:i.error)||"Unknown error"}`,4,!1)}else this.show_toast(`Settings update for "${o}" cancelled.`,3,!1)}else n&&Object.keys(n).length===0?this.show_toast(`"${e.name}" has no settings.`,4,!1):this.show_toast(`Could not get settings for "${e.name}".`,4,!1)}catch{}finally{this.isLoadingAction=!1,be(Le.replace)}},handleReloadFromEntry(t){if(!t||!t.folder){console.error("Invalid binding data in handleReloadFromEntry:",t),this.show_toast("Internal error: Invalid binding data.",4,!1);return}this.handleReload(t.folder)},async handleReload(t){if(!t){this.show_toast("No binding specified.",3,!1);return}const e=this.bindings.find(n=>n.folder===t);if(!e){this.show_toast(`Binding "${t}" not found.`,4,!1);return}if(!e.installed){this.show_toast(`"${e.name}" is not installed.`,3,!1);return}if(t!==this.$store.state.config.binding_name){this.show_toast(`"${e.name}" is not active. Select it first.`,3,!1);return}this.isLoadingAction=!0,this.show_toast(`Reloading "${e.name}"...`,3,!0);try{const n=await this.internal_api_post_req("reload_binding",{name:t});n&&n.status?(this.show_toast(`Binding "${e.name}" reloaded.`,4,!0),this.refresh_config()):this.show_toast(`Failed to reload "${e.name}": ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1)}catch{}finally{this.isLoadingAction=!1,be(Le.replace)}}},mounted(){this.fetchBindings(),be(()=>{Le.replace()})},updated(){be(()=>{Le.replace()})}},ENn={class:"user-settings-panel space-y-6 p-4 md:p-6"},SNn={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b border-blue-300 dark:border-blue-600 pb-3 mb-4"},xNn={key:0,class:"flex items-center gap-2 text-sm font-medium p-2 bg-blue-200 dark:bg-blue-800 rounded-md border border-blue-300 dark:border-blue-600 text-blue-700 dark:text-blue-200"},LNn=["src"],CNn={class:"font-semibold"},ANn=["disabled"],wNn=["disabled"],ONn={key:1,class:"text-sm font-medium text-red-600 dark:text-red-400 p-2 bg-red-100 dark:bg-red-900/30 rounded-md border border-red-300 dark:border-red-600"},MNn={class:"flex flex-col sm:flex-row gap-4 mb-4"},RNn={class:"relative flex-grow"},NNn=["disabled"],DNn={class:"flex-shrink-0"},INn=["disabled"],kNn={key:0,class:"flex justify-center items-center p-10"},HNn={key:1,class:"text-center text-blue-500 dark:text-blue-400 py-10"},PNn={key:2,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 scrollbar"};function $Nn(t,e,n,o,r,i){const s=We("BindingEntry");return N(),H("div",ENn,[S("div",SNn,[e[8]||(e[8]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-200 mb-2 sm:mb-0"}," Binding Zoo ",-1)),i.currentBindingInfo?(N(),H("div",xNn,[S("img",{src:i.getIconPath(i.currentBindingInfo.icon),onError:e[0]||(e[0]=(...a)=>i.imgPlaceholder&&i.imgPlaceholder(...a)),class:"w-6 h-6 rounded-full object-cover flex-shrink-0",alt:"Current Binding Icon"},null,40,LNn),S("span",null,[e[5]||(e[5]=Oe("Active: ")),S("span",CNn,J(i.currentBindingInfo.name),1)]),S("button",{onClick:e[1]||(e[1]=a=>i.handleSettings(t.$store.state.config.binding_name)),disabled:r.isLoadingAction||n.loading,class:"svg-button ml-2 disabled:opacity-50 disabled:cursor-not-allowed",title:"Configure Active Binding"},e[6]||(e[6]=[S("i",{"data-feather":"settings",class:"w-4 h-4"},null,-1)]),8,ANn),S("button",{onClick:e[2]||(e[2]=a=>i.handleReload(t.$store.state.config.binding_name)),disabled:r.isLoadingAction||n.loading,class:"svg-button ml-1 disabled:opacity-50 disabled:cursor-not-allowed",title:"Reload Active Binding"},e[7]||(e[7]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4"},null,-1)]),8,wNn)])):(N(),H("div",ONn," No binding selected! "))]),e[13]||(e[13]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400"}," Bindings are the engines that run the AI models. Select an installed binding to enable model selection and generation. ",-1)),S("div",MNn,[S("div",RNn,[e[9]||(e[9]=S("div",{class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},[S("i",{"data-feather":"search",class:"w-5 h-5 text-blue-400 dark:text-blue-500"})],-1)),Ce(S("input",{type:"search","onUpdate:modelValue":e[3]||(e[3]=a=>r.searchTerm=a),placeholder:"Search bindings by name or author...",class:"search-input pl-10 w-full","aria-label":"Search bindings",disabled:r.isLoadingBindings||n.loading},null,8,NNn),[[Je,r.searchTerm]])]),S("div",DNn,[e[11]||(e[11]=S("label",{for:"binding-sort",class:"sr-only"},"Sort bindings by",-1)),Ce(S("select",{id:"binding-sort","onUpdate:modelValue":e[4]||(e[4]=a=>r.sortOption=a),class:"input w-full sm:w-auto","aria-label":"Sort bindings by",disabled:r.isLoadingBindings||n.loading},e[10]||(e[10]=[S("option",{value:"name"},"Sort by Name",-1),S("option",{value:"author"},"Sort by Author",-1),S("option",{value:"status"},"Sort by Status",-1)]),8,INn),[[Ir,r.sortOption]])])]),r.isLoadingBindings?(N(),H("div",kNn,e[12]||(e[12]=[S("svg",{"aria-hidden":"true",role:"status",class:"w-8 h-8 text-blue-300 animate-spin dark:text-blue-600 fill-blue-600 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})],-1),S("span",{class:"ml-2 text-loading"},"Loading bindings...",-1)]))):i.sortedBindings.length===0?(N(),H("div",HNn," No bindings found"+J(r.searchTerm?' matching "'+r.searchTerm+'"':"")+". ",1)):(N(),H("div",PNn,[(N(!0),H(Ae,null,Ue(i.bindingsToDisplay,a=>(N(),it(s,{key:a.folder,binding:a,selected:i.isBindingSelected(a),"is-processing":a.isProcessing,onSelect:i.handleSelect,onInstall:i.handleInstall,onUninstall:i.handleUninstall,onReinstall:i.handleReinstall,onSettings:i.handleSettingsFromEntry,onReloadBinding:i.handleReloadFromEntry},null,8,["binding","selected","is-processing","onSelect","onInstall","onUninstall","onReinstall","onSettings","onReloadBinding"]))),128))]))])}const NO=ze(bNn,[["render",$Nn],["__scopeId","data-v-62a84717"]]),z1="/assets/logo-6TyToX4A.png",VNn={name:"InteractiveMenu",props:{title:{type:String,required:!1,default:"Menu"},icon:{type:String,required:!1,default:"feather:more-vertical"},commands:{type:Array,required:!0,default:()=>[]},force_position:{type:Number,required:!1,default:0},execute_cmd:{type:Function,required:!1},menuIconClass:{type:String,required:!1,default:""},selected_entry:{type:String,required:!1,default:null}},data(){return{isMenuOpen:!1,menuStyle:{top:"auto",bottom:"auto",left:"auto",right:"auto",transformOrigin:"top left"}}},methods:{updateFeatherIcons(){be(()=>{Le.replace({width:"1em",height:"1em","stroke-width":2})})},handleClickOutside(t){this.$refs.menuContainerRef&&!this.$refs.menuContainerRef.contains(t.target)&&this.closeMenu()},toggleMenu(){this.isMenuOpen?this.closeMenu():this.openMenu()},openMenu(){this.isMenuOpen=!0,be(()=>{this.positionMenu(),this.updateFeatherIcons(),document.addEventListener("click",this.handleClickOutside,!0)})},closeMenu(){this.isMenuOpen=!1,document.removeEventListener("click",this.handleClickOutside,!0)},executeCommand(t){this.closeMenu(),typeof t.value=="function"?t.value():this.execute_cmd?this.execute_cmd(t):console.warn("InteractiveMenu: No action defined for command:",t.name)},positionMenu(){if(!this.isMenuOpen||!this.$refs.menuButtonRef||!this.$refs.menuRef)return;const t=this.$refs.menuButtonRef.getBoundingClientRect(),e=this.$refs.menuRef,n=e.style.visibility,o=e.style.display,r=e.style.position,i=e.style.top,s=e.style.left;e.style.visibility="hidden",e.style.position="fixed",e.style.top="-9999px",e.style.left="-9999px",e.style.display="block";const a=e.getBoundingClientRect();e.style.visibility=n,e.style.position=r,e.style.top=i,e.style.left=s,e.style.display=o;const l=window.innerWidth,c=window.innerHeight,u=8;let d={top:"auto",bottom:"auto",left:"auto",right:"auto",transformOrigin:""};const f=c-t.bottom-u,T=t.top-u,h=a.height;let g="below";this.force_position===1?g="above":this.force_position===2||f>=h?g="below":T>=h?g="above":g=T>f?"above":"below",g==="above"?(d.bottom="calc(100% + 4px)",d.top="auto",d.transformOrigin="bottom "):(d.top="calc(100% + 4px)",d.bottom="auto",d.transformOrigin="top "),l-t.left-u,t.right-u;const _=a.width;let m="left-align";this.force_position===3?m="right-align":this.force_position===4?m="left-align":t.left+_>l-u&&t.right-_>u&&(m="right-align"),m==="right-align"?(d.right="0px",d.left="auto",d.transformOrigin+="right"):(d.left="0px",d.right="auto",d.transformOrigin+="left"),this.menuStyle=d}},mounted(){window.addEventListener("resize",this.positionMenu),this.updateFeatherIcons()},beforeUnmount(){window.removeEventListener("resize",this.positionMenu),document.removeEventListener("click",this.handleClickOutside,!0)}},BNn={class:"interactive-menu-container",ref:"menuContainerRef"},FNn=["title"],UNn=["src"],qNn=["data-feather"],GNn={key:2,class:"interactive-menu-trigger-text"},jNn={key:3,"data-feather":"menu",class:"interactive-menu-trigger-icon"},zNn=["aria-labelledby"],YNn={class:"interactive-menu-list",role:"none"},WNn=["onClick","id"],KNn={class:"interactive-menu-item-checkmark-placeholder"},ZNn={key:0,"data-feather":"check",class:"interactive-menu-item-checkmark-icon"},XNn={class:"interactive-menu-item-icon-container"},JNn=["src","alt"],eDn=["data-feather"],tDn={key:2,class:"interactive-menu-item-icon-text"},nDn={key:3,class:"interactive-menu-item-icon-placeholder"},rDn={class:"interactive-menu-item-name"};function iDn(t,e,n,o,r,i){return N(),H("div",BNn,[S("button",{onClick:e[0]||(e[0]=oe((...s)=>i.toggleMenu&&i.toggleMenu(...s),["prevent"])),title:n.title||"Open Menu",class:Ee(["interactive-menu-trigger",n.menuIconClass]),ref:"menuButtonRef",type:"button"},[_n(t.$slots,"trigger",{},()=>[n.icon&&!n.icon.includes("#")&&!n.icon.includes("feather:")?(N(),H("img",{key:0,src:n.icon,class:"interactive-menu-trigger-icon",alt:"Menu Icon"},null,8,UNn)):n.icon&&n.icon.includes("feather:")?(N(),H("i",{key:1,"data-feather":n.icon.split(":")[1],class:"interactive-menu-trigger-icon"},null,8,qNn)):n.icon&&n.icon.includes("#")?(N(),H("span",GNn,J(n.icon.split("#")[1]),1)):(N(),H("i",jNn))],!0)],10,FNn),ne(Tr,{name:"interactive-menu-transition"},{default:je(()=>[r.isMenuOpen?(N(),H("div",{key:0,class:"interactive-menu-dropdown",style:Jt(r.menuStyle),ref:"menuRef",role:"menu","aria-orientation":"vertical","aria-labelledby":`menu-button-${t._uid}`},[S("ul",YNn,[(N(!0),H(Ae,null,Ue(n.commands,(s,a)=>(N(),H("li",{key:a,onClick:oe(l=>i.executeCommand(s),["prevent"]),class:"interactive-menu-item group",role:"menuitem",tabindex:-1,id:`menu-item-${t._uid}-${a}`},[S("span",KNn,[n.selected_entry===s.name?(N(),H("i",ZNn)):Z("",!0)]),S("span",XNn,[s.icon&&!s.icon.includes("#")&&!s.icon.includes("feather:")?(N(),H("img",{key:0,src:s.icon,alt:s.name,class:"interactive-menu-item-icon"},null,8,JNn)):s.icon&&s.icon.includes("feather:")?(N(),H("i",{key:1,"data-feather":s.icon.split(":")[1],class:"interactive-menu-item-icon"},null,8,eDn)):s.icon&&s.icon.includes("#")?(N(),H("span",tDn,J(s.icon.split("#")[1]),1)):(N(),H("span",nDn))]),S("span",rDn,J(s.name),1)],8,WNn))),128))])],12,zNn)):Z("",!0)]),_:1})],512)}const Eh=ze(VNn,[["render",iDn],["__scopeId","data-v-e42afcb4"]]),oDn={name:"ModelEntry",components:{InteractiveMenu:Eh},props:{model:{type:Object,required:!0},isSelected:{type:Boolean,default:!1},isInstalled:{type:Boolean,default:!1},isProcessing:{type:Boolean,default:!1},progress:{type:Number,default:0},speed:{type:Number,default:0},total_size:{type:Number,default:0},downloaded_size:{type:Number,default:0},progressName:{type:String,default:"Processing..."}},emits:["select","install","uninstall","cancel-install","copy","copy-link"],data(){return{failedToLoad:!1,linkNotValid:!!this.model.error}},mounted(){be(()=>{Le.replace()})},updated(){be(()=>{Le.replace()})},methods:{formatDate(t){if(!t)return"N/A";try{const e=new Date(t);return isNaN(e.getTime())?"Invalid Date":e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(e){return console.error("Error formatting date:",e),"Invalid Date"}},formatFileSize(t){return E2(t)},getImgUrl(){return console.log("model icon:"),console.log(this.model.icon),this.model.icon||z1},defaultImg(t){this.failedToLoad=!0,t.target.src=z1},handleClick(){if(this.isProcessing||!this.isInstalled||this.isSelected){console.log(`Click ignored: processing=${this.isProcessing}, installed=${this.isInstalled}, selected=${this.isSelected}`);return}console.log("Emitting select event for:",this.model.name),this.$emit("select",this.model)},handleInstallClick(){this.isProcessing||(console.log("Emitting install event for:",this.model.name),this.$emit("install",{model:this.model}))},handleUninstallClick(){this.isProcessing||!this.isInstalled||(console.log("Emitting uninstall event for:",this.model.name),this.$emit("uninstall",{model:this.model}))},handleCancelClick(){console.log("Emitting cancel-install event for:",this.model.name),this.$emit("cancel-install",{model:this.model})},handleCopyClick(){this.$emit("copy",{model:this.model})},handleCopyLinkClick(){this.$emit("copy-link",{model:this.model})},checkLinkValidity(){this.linkNotValid=!!this.model.error}},computed:{computedClasses(){const t=[];return this.isProcessing?t.push("opacity-70 pointer-events-none"):this.isSelected&&this.isInstalled?(t.push("border-[3px] border-blue-500 dark:border-blue-400 ring-2 ring-blue-300 dark:ring-blue-600 ring-offset-1 dark:ring-offset-gray-800"),t.push("bg-blue-50 dark:bg-blue-900/50"),t.push("cursor-default")):this.isInstalled&&!this.isSelected?(t.push("border-gray-200 dark:border-gray-700"),t.push("hover:border-blue-400 dark:hover:border-blue-600"),t.push("hover:bg-blue-50/50 dark:hover:bg-blue-900/20"),t.push("cursor-pointer")):this.isInstalled||(t.push("border-dashed border-gray-300 dark:border-gray-600"),t.push("opacity-80")),this.linkNotValid&&!this.isProcessing&&t.push("border-l-4 border-l-red-500"),t.join(" ")},isDisabled(){return this.isProcessing||!this.isInstalled},commandsList(){let t=[];return this.isInstalled?(t.push({name:"Uninstall",icon:"feather:trash-2",value:this.handleUninstallClick,disabled:this.isProcessing}),this.isSelected&&t.push({name:"Reload",icon:"feather:refresh-cw",value:this.handleClick,disabled:this.isProcessing})):t.push({name:"Install",icon:"feather:download",value:this.handleInstallClick,disabled:this.isProcessing||this.linkNotValid}),t.push({name:"Copy Info",icon:"feather:copy",value:this.handleCopyClick}),this.model.isCustomModel||t.push({name:"Copy Link",icon:"feather:clipboard",value:this.handleCopyLinkClick}),t},fileSize(){var n,o,r;const t=(o=(n=this.model)==null?void 0:n.variants)==null?void 0:o[0],e=(t==null?void 0:t.size)??((r=this.model)==null?void 0:r.size);return e?this.formatFileSize(e):"N/A"},speed_computed(){return this.formatFileSize(this.speed)+"/s"},total_size_computed(){return this.formatFileSize(this.total_size)},downloaded_size_computed(){return this.formatFileSize(this.downloaded_size)}},watch:{isProcessing(t,e){console.log(`Model ${this.model.name} processing state changed to: ${t}`),be(()=>{Le.replace()})},"model.error":function(t){this.linkNotValid=!!t}}},sDn=["title","aria-pressed","aria-disabled"],aDn={key:0},lDn={class:"flex flex-row"},cDn={class:"max-w-[300px] overflow-x-auto"},uDn={class:"flex gap-3 items-center grow"},dDn=["src"],TDn={class:"flex-1 overflow-hidden"},fDn={class:"font-bold font-large text-lg truncate"},pDn={class:"flex items-center flex-row gap-2 my-1 mt-3"},hDn=["disabled"],mDn={key:1},gDn={class:"flex flex-row items-center gap-3 mb-2"},_Dn=["src"],QDn={class:"font-bold font-large text-lg truncate flex-grow"},vDn={class:"flex items-center",title:"Hugging Face Model Card"},yDn=["href"],bDn={class:"flex items-center",title:"Approximate File Size"},EDn={class:"flex items-center",title:"Model License"},SDn={key:0,class:"flex items-center",title:"Quantizer Profile"},xDn=["href"],LDn={key:1,class:"flex items-center",title:"Original Model Creator Profile"},CDn=["href"],ADn={key:2,class:"flex items-center",title:"Last Update Date"},wDn={key:3,class:"flex items-center",title:"Model Category"},ODn={key:4,class:"flex items-center",title:"Hugging Face Rank (May be outdated)"},MDn={key:2,class:"absolute z-10 inset-0 -m-px p-4 shadow-md text-center rounded-lg bg-white/80 dark:bg-gray-800/80 flex justify-center items-center backdrop-blur-sm"},RDn={class:"relative flex flex-col items-center justify-center w-full h-full"},NDn={class:"absolute bottom-2 left-2 right-2 w-auto bg-white/70 dark:bg-gray-800/70 rounded-lg p-2 backdrop-blur-sm"},DDn={class:"flex justify-between mb-1 text-xs"},IDn={class:"font-medium text-blue-700 dark:text-blue-300"},kDn={key:0,class:"font-medium text-blue-700 dark:text-blue-300"},HDn={key:0,class:"w-full bg-gray-200 rounded-full h-1.5 dark:bg-gray-700 mb-1"},PDn={key:1,class:"flex justify-between text-xs text-blue-600 dark:text-blue-400"};function $Dn(t,e,n,o,r,i){const s=We("InteractiveMenu");return N(),H("div",{class:Ee(["relative items-start p-4 hover:bg-blue-100 dark:hover:bg-blue-900/30 rounded-lg mb-2 shadow-lg border-2 select-none transition-colors duration-150",i.computedClasses]),title:n.model.name,role:"button",tabindex:"0","aria-pressed":n.isSelected,"aria-disabled":i.isDisabled,onClick:e[9]||(e[9]=oe((...a)=>i.handleClick&&i.handleClick(...a),["prevent"])),onKeydown:[e[10]||(e[10]=Qn((...a)=>i.handleClick&&i.handleClick(...a),["enter"])),e[11]||(e[11]=Qn(oe((...a)=>i.handleClick&&i.handleClick(...a),["prevent"]),["space"]))]},[n.model.isCustomModel?(N(),H("div",aDn,[S("div",lDn,[S("div",cDn,[S("div",uDn,[S("img",{src:i.getImgUrl(),onError:e[0]||(e[0]=a=>i.defaultImg(a)),class:"w-10 h-10 rounded-lg object-cover flex-shrink-0"},null,40,dDn),S("div",TDn,[S("h3",fDn,J(n.model.name),1)])])])]),S("div",pDn,[e[13]||(e[13]=S("div",{class:"flex grow items-center text-sm text-gray-600 dark:text-gray-400"},[S("i",{"data-feather":"hard-drive",class:"w-4 h-4 mr-1"}),Oe(" Local Reference ")],-1)),S("div",null,[n.isInstalled?(N(),H("button",{key:0,title:"Remove Reference (Doesn't delete file)",type:"button",onClick:e[1]||(e[1]=oe((...a)=>i.handleUninstallClick&&i.handleUninstallClick(...a),["stop"])),disabled:n.isProcessing,class:"button-danger-sm"},e[12]||(e[12]=[S("i",{"data-feather":"trash-2",class:"w-4 h-4 mr-1"},null,-1),Oe(" Remove ")]),8,hDn)):Z("",!0)])])])):Z("",!0),n.model.isCustomModel?Z("",!0):(N(),H("div",mDn,[S("div",gDn,[S("img",{ref:"imgElement",src:i.getImgUrl(),onError:e[2]||(e[2]=a=>i.defaultImg(a)),class:Ee(["w-10 h-10 rounded-lg object-cover flex-shrink-0",{grayscale:r.linkNotValid}])},null,42,_Dn),S("h3",QDn,J(n.model.name),1),ne(s,{commands:i.commandsList,force_position:2,title:"Menu",onClick:e[3]||(e[3]=oe(()=>{},["stop"]))},null,8,["commands"])]),S("div",{class:Ee(["space-y-1 text-sm text-gray-700 dark:text-gray-300",{"opacity-60":r.linkNotValid}])},[S("div",vDn,[e[14]||(e[14]=S("i",{"data-feather":"link",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[15]||(e[15]=S("b",{class:"mr-1 flex-shrink-0"},"Card:",-1)),S("a",{href:"https://huggingface.co/"+n.model.quantizer+"/"+n.model.name,target:"_blank",onClick:e[4]||(e[4]=oe(()=>{},["stop"])),class:Ee(["truncate hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline",{"text-red-500 pointer-events-none":r.linkNotValid}])},J(r.linkNotValid?"Link Invalid":`${n.model.quantizer}/${n.model.name}`),11,yDn)]),S("div",bDn,[e[16]||(e[16]=S("i",{"data-feather":"file",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[17]||(e[17]=S("b",{class:"mr-1"},"Size:",-1)),S("span",null,J(i.fileSize||"N/A"),1)]),S("div",EDn,[e[18]||(e[18]=S("i",{"data-feather":"key",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[19]||(e[19]=S("b",{class:"mr-1"},"License:",-1)),S("span",null,J(n.model.license||"N/A"),1)]),n.model.quantizer&&n.model.quantizer!=="None"&&n.model.type!=="transformers"?(N(),H("div",SDn,[e[20]||(e[20]=S("i",{"data-feather":"user",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[21]||(e[21]=S("b",{class:"mr-1"},"Quantizer:",-1)),S("a",{href:"https://huggingface.co/"+n.model.quantizer,target:"_blank",rel:"noopener noreferrer",onClick:e[5]||(e[5]=oe(()=>{},["stop"])),class:"truncate hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline"},J(n.model.quantizer),9,xDn)])):Z("",!0),n.model.model_creator?(N(),H("div",LDn,[e[22]||(e[22]=S("i",{"data-feather":"users",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[23]||(e[23]=S("b",{class:"mr-1"},"Creator:",-1)),S("a",{href:n.model.model_creator_link,target:"_blank",rel:"noopener noreferrer",onClick:e[6]||(e[6]=oe(()=>{},["stop"])),class:"truncate hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline"},J(n.model.model_creator),9,CDn)])):Z("",!0),n.model.last_commit_time?(N(),H("div",ADn,[e[24]||(e[24]=S("i",{"data-feather":"clock",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[25]||(e[25]=S("b",{class:"mr-1"},"Updated:",-1)),S("span",null,J(i.formatDate(n.model.last_commit_time)),1)])):Z("",!0),n.model.category?(N(),H("div",wDn,[e[26]||(e[26]=S("i",{"data-feather":"grid",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[27]||(e[27]=S("b",{class:"mr-1"},"Category:",-1)),S("span",null,J(n.model.category),1)])):Z("",!0),n.model.rank?(N(),H("div",ODn,[e[28]||(e[28]=S("i",{"data-feather":"bar-chart-2",class:"w-4 h-4 mr-2 flex-shrink-0"},null,-1)),e[29]||(e[29]=S("b",{class:"mr-1"},"Rank:",-1)),S("a",{href:"https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard",target:"_blank",rel:"noopener noreferrer",onClick:e[7]||(e[7]=oe(()=>{},["stop"])),class:"hover:text-blue-600 dark:hover:text-blue-400 duration-150 underline"},J(n.model.rank),1)])):Z("",!0)],2)])),n.isProcessing?(N(),H("div",MDn,[S("div",RDn,[e[30]||(e[30]=S("div",{role:"status",class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"},[S("svg",{"aria-hidden":"true",class:"w-16 h-16 text-gray-300 animate-spin dark:text-gray-600 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})]),S("span",{class:"sr-only"},"Processing...")],-1)),S("div",NDn,[S("div",DDn,[S("span",IDn,J(n.progressName),1),n.progress>0?(N(),H("span",kDn,J(Math.floor(n.progress))+"%",1)):Z("",!0)]),n.progress>0?(N(),H("div",HDn,[S("div",{class:"bg-blue-600 h-1.5 rounded-full",style:Jt({width:n.progress+"%"})},null,4)])):Z("",!0),n.progress>0&&n.total_size>0?(N(),H("div",PDn,[S("span",null,J(i.downloaded_size_computed)+"/"+J(i.total_size_computed),1),S("span",null,J(i.speed_computed)+"/s",1)])):Z("",!0),S("button",{onClick:e[8]||(e[8]=oe((...a)=>i.handleCancelClick&&i.handleCancelClick(...a),["stop"])),type:"button",title:"Cancel Operation",class:"button-danger-sm w-full mt-2 text-xs"}," Cancel ")])])])):Z("",!0)],42,sDn)}const VDn=ze(oDn,[["render",$Dn],["__scopeId","data-v-9a7ef5e9"]]),BDn={props:{show:{type:Boolean,default:!1},can_remove:{type:Boolean,default:!1},title:{type:String,default:"Select an option"},choices:{type:Array,required:!0}},data(){return{selectedChoice:null,showInput:!1,newFilename:""}},methods:{displayName(t){return typeof t=="string"?t:t&&t.name?t.name:""},selectChoice(t){this.selectedChoice=t,this.$emit("choice-selected",t)},closeDialog(){this.$emit("close-dialog")},validateChoice(){this.$emit("choice-validated",this.selectedChoice)},formatSize(t){const e=["bytes","KB","MB","GB"];let n=0;for(;t>=1024&&n[n.show?(N(),H("div",FDn,[S("div",UDn,[S("h2",qDn,[e[5]||(e[5]=S("svg",{class:"w-6 h-6 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"})],-1)),Oe(" "+J(n.title),1)]),S("div",GDn,[S("ul",null,[(N(!0),H(Ae,null,Ue(n.choices,(s,a)=>(N(),H("li",{key:a,class:"py-2 px-4 hover:bg-gray-200 dark:hover:bg-gray-600 transition duration-150 ease-in-out"},[S("div",jDn,[S("div",zDn,[s.isEditing?Ce((N(),H("input",{key:1,"onUpdate:modelValue":l=>s.editName=l,onBlur:l=>i.finishEditing(s),onKeyup:Qn(l=>i.finishEditing(s),["enter"]),class:"bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded px-2 py-1 text-sm",autofocus:""},null,40,WDn)),[[Je,s.editName]]):(N(),H("span",{key:0,onClick:l=>i.selectChoice(s),class:Ee([{"font-semibold":s===r.selectedChoice},"text-gray-800 dark:text-white cursor-pointer"])},J(i.displayName(s)),11,YDn)),s.size?(N(),H("span",KDn,J(i.formatSize(s.size)),1)):Z("",!0)]),S("div",ZDn,[S("button",{onClick:l=>i.editChoice(s),class:"text-blue-500 hover:text-blue-600 mr-2"},e[6]||(e[6]=[S("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})],-1)]),8,XDn),n.can_remove?(N(),H("button",{key:0,onClick:l=>i.removeChoice(s,a),class:"text-red-500 hover:text-red-600"},e[7]||(e[7]=[S("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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)]),8,JDn)):Z("",!0)])])]))),128))])]),r.showInput?(N(),H("div",eIn,[Ce(S("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>r.newFilename=s),placeholder:"Enter a filename",class:"border border-gray-300 dark:border-gray-600 p-2 rounded-lg w-full mb-2 bg-white dark:bg-gray-700 text-gray-800 dark:text-white"},null,512),[[Je,r.newFilename]]),S("button",{onClick:e[1]||(e[1]=(...s)=>i.addNewFilename&&i.addNewFilename(...s)),class:"bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded-lg transition duration-300"}," Add ")])):Z("",!0),S("div",tIn,[S("button",{onClick:e[2]||(e[2]=(...s)=>i.closeDialog&&i.closeDialog(...s)),class:"bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded-lg transition duration-300"}," Cancel "),S("button",{onClick:e[3]||(e[3]=(...s)=>i.validateChoice&&i.validateChoice(...s)),disabled:!r.selectedChoice,class:Ee([{"bg-blue-500 hover:bg-blue-600":r.selectedChoice,"bg-gray-400 cursor-not-allowed":!r.selectedChoice},"text-white font-bold py-2 px-4 rounded-lg transition duration-300"])}," Validate ",10,nIn),S("button",{onClick:e[4]||(e[4]=(...s)=>i.toggleInput&&i.toggleInput(...s)),class:"bg-green-500 hover:bg-green-600 text-white font-bold py-2 px-4 rounded-lg transition duration-300"}," Add New ")])])])):Z("",!0)]),_:1})}const Sh=ze(BDn,[["render",rIn],["__scopeId","data-v-f43216be"]]),iIn={name:"ModelsZoo",components:{ModelEntry:VDn,ChoiceDialog:Sh},props:{api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["settings-changed"],data(){return{allModels:[],filteredModels:[],pagedModels:[],isLoadingModels:!1,isSearching:!1,searchTerm:"",sortOption:"rank",showInstalledOnly:!1,referencePath:"",modelUrl:"",isDownloading:!1,itemsPerPage:15,currentPage:1,searchDebounceTimer:null,downloadProgress:{visible:!1,name:"",progress:0,speed:0,total_size:0,downloaded_size:0,details:null},variantSelectionDialog:{visible:!1,title:"Select Model Variant",choices:[],modelToInstall:null,selectedVariant:null},defaultIcon:z1}},computed:{currentBindingNameComputed(){const t=this.$store.state.config.binding_name;if(!t)return"None Selected";const e=(this.$store.state.bindingsZoo||[]).find(n=>n.folder===t);return e?e.name:t},currentModelInfoComputed(){const t=this.$store.state.config.model_name;if(!t||this.allModels.length===0)return null;const e=this.allModels.find(n=>n.name===t);return e?{name:e.name,icon:e.icon||this.defaultIcon}:null},hasMoreModelsToLoad(){return this.pagedModels.length{console.log(`Store refresh dispatches initiated for ${t}. Waiting for store watchers.`)}).catch(n=>{console.error(`Error dispatching store refresh for binding ${t}:`,n),this.show_toast(`Failed to load models for binding ${t}.`,5,!1),this.isLoadingModels=!1})):(console.log("Binding removed, local models cleared."),this.isLoadingModels=!1))}},"$store.state.modelsArr":{handler(){console.log("Store installedModels changed, reprocessing."),this.processAndCombineModels()},deep:!1},allModels:{handler(t,e){t!==e&&t.length>0?(console.log("Processed allModels changed, applying filters and reloading page 1."),this.currentPage=1,this.pagedModels=[],this.applyFiltersAndSort(),this.loadMoreModels()):t.length===0&&e.length>0?(console.log("Processed allModels cleared, resetting filters and paged models."),this.filteredModels=[],this.pagedModels=[],this.currentPage=1):t===e&&t.length>0&&(console.log("allModels reference same, but potentially updated internal state. Re-applying filters."),this.currentPage=1,this.pagedModels=[],this.applyFiltersAndSort(),this.loadMoreModels())},deep:!0},watchSources(t,e){(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2])&&(console.log("Filter/Sort/Search changed, resetting page and applying filters."),this.currentPage=1,this.pagedModels=[],this.applyFiltersAndSort(),this.loadMoreModels())}},methods:{async processAndCombineModels(){var i;this.isLoadingModels=!0,console.log("Processing models from store...");const t=this.$store.state.modelsZoo,e=new Set(this.$store.state.modelsArr),n=s=>{let a=s.id||s.name||s.filename||"unknown";return s.quantizer&&(a+=`-${s.quantizer}`),s.variants&&s.variants.length>0&&s.variants[0].name?a+=`-${s.variants[0].name}`:s.filename&&(a+=`-${s.filename}`),a},o=(i=this.downloadProgress.details)==null?void 0:i.model_id,r=(t||[]).map(s=>{const a=n(s);return{name:s.name,author:s.author,rank:s.rank,quantizer:s.quantizer,description:s.description,license:s.license,last_commit_time:s.last_commit_time,variants:s.variants?[...s.variants]:[],filename:s.filename,path:s.path,type:s.type,icon:s.icon||this.defaultIcon,isInstalled:e.has(s.name)||s.variants&&s.variants.some(l=>e.has(l.name)),isProcessing:o===a&&this.isDownloading||!1,id:a}});this.$store.state.modelsArr.forEach(s=>{if(!r.some(l=>l.name===s||l.variants&&l.variants.some(c=>c.name===s))){const l=s;r.push({name:s,isInstalled:!0,isProcessing:o===l&&this.isDownloading||!1,isCustomModel:!0,icon:this.defaultIcon,id:l,rank:-1,author:"Local"})}}),this.allModels=r,this.$store.state.config.binding_name?!this.isDownloading&&this.allModels.length>0&&(this.isLoadingModels=!1):this.isLoadingModels=!1,console.log(`Processed ${this.allModels.length} total models. Loading state: ${this.isLoadingModels}`)},applyFiltersAndSort(){this.isSearching=!0,console.time("FilterSortModels");let t=[...this.allModels];if(this.showInstalledOnly&&(t=t.filter(e=>e.isInstalled)),this.searchTerm){const e=this.searchTerm.toLowerCase();t=t.filter(n=>{var o,r,i,s,a;return((o=n.name)==null?void 0:o.toLowerCase().includes(e))||((r=n.author)==null?void 0:r.toLowerCase().includes(e))||((i=n.quantizer)==null?void 0:i.toLowerCase().includes(e))||((s=n.description)==null?void 0:s.toLowerCase().includes(e))||((a=n.license)==null?void 0:a.toLowerCase().includes(e))})}t.sort((e,n)=>{if(e.isInstalled&&!n.isInstalled)return-1;if(!e.isInstalled&&n.isInstalled)return 1;switch(this.sortOption){case"rank":return(n.rank??-1/0)-(e.rank??-1/0);case"name":return(e.name||"").localeCompare(n.name||"");case"last_commit_time":{const o=e.last_commit_time?new Date(e.last_commit_time):null,r=n.last_commit_time?new Date(n.last_commit_time):null;return o&&r?r-o:o?-1:r?1:0}case"quantizer":return(e.quantizer||"").localeCompare(n.quantizer||"");case"license":return(e.license||"").localeCompare(n.license||"");default:return 0}}),this.filteredModels=t,console.timeEnd("FilterSortModels"),this.isSearching=!1,console.log(`Filtered/Sorted models: ${this.filteredModels.length}`)},debounceSearch(){this.isSearching=!0,clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=setTimeout(()=>{},500)},loadMoreModels(){this.isLoadingModels||this.isSearching||!this.hasMoreModelsToLoad||(this.isLoadingModels=!0,console.log(`Loading page ${this.currentPage} for models`),be(()=>{const t=(this.currentPage-1)*this.itemsPerPage,e=t+this.itemsPerPage,n=this.filteredModels.slice(t,e),o=n.filter(r=>!this.pagedModels.some(i=>(i.id||i.name)===(r.id||r.name)));o.length>0?(this.pagedModels.push(...o),this.currentPage++,be(()=>{Le.replace(),this.isLoadingModels=!1})):(this.isLoadingModels=!1,n.length===0&&this.hasMoreModelsToLoad&&console.warn("Load more triggered but no new items found in slice."))}))},handleSelect(t){if(console.log("Model selected in child:",t.name),this.isDownloading||this.isLoadingModels){this.show_toast("Please wait for the current operation to finish.",3,!1);return}if(!t.isInstalled){this.show_toast(`Model "${t.name}" is not installed.`,3,!1);return}this.$store.state.config.model_name!==t.name&&(this.$store.state.config.model_name=t.name,this.show_toast(`Selecting model: ${t.name}...`,2,!0),this.isLoadingModels=!0,this.$emit("settings-changed"),setTimeout(()=>{this.isLoadingModels=!1,this.$store.state.config.model_name===t.name?(console.log("Model selection confirmed in store."),be(Le.replace)):console.warn("Model selection change not reflected in store after emit and delay.")},500))},handleInstall(t){const e=t.model;console.log("Install requested for:",e.name);const n=e.variants||[];if(e.isInstalled){this.show_toast(`Model "${e.name}" is already installed.`,3,!1);return}if(this.isDownloading){this.show_toast("Another operation is already in progress.",3,!1);return}if(n.length>0)this.variantSelectionDialog.choices=n.map(o=>({...o,id:o.name||`variant-${Math.random().toString(36).substring(7)}`,label:`${o.name||"Unknown Variant"} (${E2(o.size||0)})`})),this.variantSelectionDialog.modelToInstall=e,this.variantSelectionDialog.title=`Select variant for ${e.name}`,this.variantSelectionDialog.visible=!0;else{const o=e.filename||e.name,r=e.quantizer||"Unknown",i=e.path||`https://huggingface.co/${e.author||r}/${e.name}/resolve/main/${o}`;this.startDownload(e,i,o)}},handleVariantSelected(t){this.variantSelectionDialog.selectedVariant=t},handleVariantValidated(t){if(!t||!this.variantSelectionDialog.modelToInstall){this.closeVariantDialog();return}const e=this.variantSelectionDialog.modelToInstall,n=t,o=e.quantizer||"Unknown",r=n.path||`https://huggingface.co/${e.author||o}/${e.name}/resolve/main/${n.name}`;this.startDownload(e,r,n.name),this.closeVariantDialog()},closeVariantDialog(){this.variantSelectionDialog.visible=!1,this.variantSelectionDialog.choices=[],this.variantSelectionDialog.modelToInstall=null,this.variantSelectionDialog.selectedVariant=null},startDownload(t,e,n){const o=t.id||t.name;if(console.log(`Starting download: ${t.name}, Variant: ${n}, Path: ${e}, ID: ${o}`),this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}const r=this.$store.state.config.binding_name;if(!r){this.show_toast("No binding selected. Cannot install model.",4,!1);return}this.setModelProcessing(o,!0),this.isDownloading=!0,this.isLoadingModels=!0,this.downloadProgress={visible:!0,name:`Downloading ${t.name}${n!==t.name?` (${n})`:""}`,progress:0,speed:0,total_size:0,downloaded_size:0,details:{model_name:t.name,binding_folder:r,model_url:e,variant_name:n,model_id:o,type:t.type||"gguf"}},Ye.emit("install_model",{path:e,name:t.name,variant_name:n,type:t.type||"gguf",binding:r,model_id:o}),console.log("Install command sent via socket.")},async handleUninstall(t){const e=t.model,n=e.id||e.name;if(this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}if(!await this.show_yes_no_dialog(`Uninstall model "${e.name}"?`,"Uninstall","Cancel"))return;const r=this.$store.state.config.binding_name;if(!r){this.show_toast("No binding selected. Cannot uninstall model.",4,!1);return}console.log(`Starting uninstall for: ${e.name}, ID: ${n}`),this.setModelProcessing(n,!0),this.isDownloading=!0,this.isLoadingModels=!0,this.downloadProgress={visible:!0,name:`Uninstalling ${e.name}...`,progress:50,speed:0,total_size:0,downloaded_size:0,details:{model_id:n,model_name:e.name,operation:"uninstall",binding_folder:r}},Ye.emit("uninstall_model",{name:e.name,type:e.type||"gguf",binding:r,model_id:n}),console.log("Uninstall command sent via socket.")},handleCancelInstall(t){const e=t!=null&&t.model?{model_name:t.model.name,binding_folder:this.$store.state.config.binding_name,model_url:t.model.path||"unknown",variant_name:t.model.filename||t.model.name,model_id:t.model.id||t.model.name}:this.downloadProgress.details||t;if(!e||!e.model_id){console.warn("Cancel requested but no details found or missing ID."),this.downloadProgress.visible&&this.resetDownloadState(null,!1);return}console.log("Cancelling operation for:",e);const n=e.binding_folder||this.$store.state.config.binding_name;if(!n){console.error("Cannot cancel, binding folder unknown."),this.show_toast("Cannot cancel operation: Binding context missing.",4,!1);return}Ye.emit("cancel_install",{model_name:e.model_name,binding_folder:n,model_url:e.model_url,variant_name:e.variant_name,model_id:e.model_id})},handleCopy(t){},handleCopyLink(t){},async createReference(){if(!this.referencePath){this.show_toast("Please enter a path.",3,!1);return}if(this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}const t=this.$store.state.config.binding_name;if(!t){this.show_toast("No binding selected. Cannot add reference.",4,!1);return}this.isLoadingModels=!0;try{const e=await this.api_post_req("add_reference_to_local_model",{path:this.referencePath,binding:t});e.status?(this.show_toast("Reference created.",4,!0),this.referencePath="",this.$store.dispatch("refreshModels",{binding:t})):(this.show_toast(`Couldn't create reference: ${e.error||"Unknown"}`,4,!1),this.isLoadingModels=!1)}catch(e){this.show_toast(`Error: ${e.message}`,4,!1),this.isLoadingModels=!1}},installFromInput(){if(!this.modelUrl){this.show_toast("Enter URL or HF ID.",3,!1);return}if(this.isDownloading){this.show_toast("Another operation is in progress.",3,!1);return}if(!this.$store.state.config.binding_name){this.show_toast("No binding selected. Cannot install model.",4,!1);return}let e=this.modelUrl.trim(),n="unknown_model",o="unknown_variant",r="gguf",i="Unknown",s=e;const a=/^([a-zA-Z0-9\-_.]+)\/([a-zA-Z0-9\-_.]+)(\/resolve\/main\/)?([a-zA-Z0-9\-_.]+\.(gguf|bin|safetensors))?$/,l=e.match(a),c=/^([a-zA-Z0-9\-_.]+)\/([a-zA-Z0-9\-_.]+)$/,u=e.match(c);if(l)i=l[1],n=l[2],o=l[4]||n,s=`${i}/${n}`,e.startsWith("http")||(e=`https://huggingface.co/${i}/${n}`+(l[3]?l[3]:"/resolve/main/")+o),r=l[5]||"gguf",this.show_toast(`Detected HF Model: ${s}, File: ${o}`,2,!0);else if(u&&!e.startsWith("http"))i=u[1],n=u[2],o=n,s=`${i}/${n}`,e=`https://huggingface.co/${i}/${n}`,this.show_toast(`Detected HF Repo ID: ${s}. Attempting download (may require variant selection).`,2,!0);else if(e.startsWith("http"))try{const f=new URL(e),T=f.pathname.split("/").filter(h=>h);T.length>0?(o=T[T.length-1],n=o.split(".")[0],f.hostname==="huggingface.co"&&T.length>=2?(i=T[0],n=T[1],s=`${i}/${n}`):s=n,o.toLowerCase().endsWith(".safetensors")?r="safetensors":o.toLowerCase().endsWith(".bin")&&(r="bin")):(n=f.hostname,o=n,s=n)}catch{this.show_toast("Invalid URL.",4,!1);return}else{this.show_toast("Invalid input. Use URL or HF ID (e.g., TheBloke/Llama-2-7B-GGUF).",4,!1);return}const d={name:n,author:i,type:r,id:s,filename:o,path:e};this.startDownload(d,e,o),this.modelUrl=""},imgPlaceholder(t){t.target.src=this.defaultIcon},setModelProcessing(t,e){const n=this.allModels.findIndex(o=>(o.id||o.name)===t);if(n!==-1){if(this.allModels[n].isProcessing!==e){const o={...this.allModels[n],isProcessing:e},r=[...this.allModels];r[n]=o,this.allModels=r,console.log(`Set processing ${e} for ${t}`)}}else console.warn(`setModelProcessing: Model with ID ${t} not found in allModels.`)},resetDownloadState(t=null,e=!1){(!t||this.downloadProgress.details&&this.downloadProgress.details.model_id===t)&&(this.downloadProgress.visible=!1,this.downloadProgress.details=null,this.isDownloading=!1),t&&this.setModelProcessing(t,!1),!this.isDownloading&&(!this.$store.state.config.binding_name||this.allModels.length>0)&&(this.isLoadingModels=!1),console.log(`Reset download state. Global loading: ${this.isLoadingModels}`)},installProgressListener(t){var o,r,i;console.log("Socket install_progress received:",t);const e=t.model_id||t.model_name;if(!e){console.error("Progress msg missing ID:",t);return}const n=(o=this.downloadProgress.details)==null?void 0:o.model_id;if(this.isDownloading&&e!==n){console.log(`Ignoring progress for ${e}, currently processing ${n}`);return}switch(!this.isDownloading&&(t.status==="progress"||t.status==="downloading")&&console.warn(`Received progress for ${e} but not in downloading state.`),t.status){case"progress":case"downloading":this.isLoadingModels=!0,this.downloadProgress.visible||(this.downloadProgress.visible=!0),this.downloadProgress.details||(this.downloadProgress.details={model_id:e}),this.downloadProgress.name=t.message||`Processing ${t.model_name||e}...`,this.downloadProgress.progress=t.progress||0,this.downloadProgress.speed=t.speed||0,this.downloadProgress.total_size=t.total_size||0,this.downloadProgress.downloaded_size=t.downloaded_size||0,this.setModelProcessing(e,!0);break;case"succeeded":{const s=t.operation||(((r=this.downloadProgress.details)==null?void 0:r.operation)==="uninstall"?"uninstall":"install");this.show_toast(`"${t.model_name||e}" ${s} succeeded!`,4,!0),this.resetDownloadState(e,!0),this.$store.dispatch("refreshModels",{binding:this.$store.state.config.binding_name});break}case"failed":case"cancelled":{const s=t.operation||((i=this.downloadProgress.details)==null?void 0:i.operation)||"operation";this.show_toast(`"${t.model_name||e}" ${s} ${t.status}: ${t.error||"Unknown reason"}`,5,!1),this.resetDownloadState(e,!1);break}default:console.warn("Unknown progress status:",t.status)}}},async mounted(){console.log("updated"),await this.$store.dispatch("refreshModelsZoo"),await this.$store.dispatch("refreshModels"),this.processAndCombineModels(),Ye.on("install_progress",this.installProgressListener),be(()=>{Le.replace()}),this.$store.state.config.binding_name&&this.allModels.length===0&&!this.isLoadingModels&&(console.log("Mounted with binding but no models, triggering initial load check."),this.isLoadingModels=!0,Promise.all([this.$store.dispatch("refreshModelsZoo",{binding:this.$store.state.config.binding_name}),this.$store.dispatch("refreshModels",{binding:this.$store.state.config.binding_name})]).catch(t=>{console.error("Error dispatching initial store refresh:",t),this.show_toast(`Failed initial load for ${this.$store.state.config.binding_name}.`,5,!1),this.isLoadingModels=!1}))},unmounted(){Ye.off("install_progress",this.installProgressListener),clearTimeout(this.searchDebounceTimer)},async updated(){be(()=>{Le.replace()})}},oIn={class:"user-settings-panel space-y-6"},sIn={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b border-blue-300 dark:border-blue-600 pb-3 mb-4"},aIn={key:0,class:"flex items-center gap-2 text-sm font-medium p-2 bg-blue-100 dark:bg-blue-800/50 rounded-md border border-blue-300 dark:border-blue-600 shrink-0 text-blue-700 dark:text-blue-200"},lIn=["src"],cIn={class:"font-semibold"},uIn={key:1,class:"text-sm font-medium text-orange-600 dark:text-orange-400 p-2 bg-orange-100 dark:bg-orange-900/30 rounded-md border border-orange-300 dark:border-orange-600 shrink-0"},dIn={key:2,class:"text-sm font-medium text-red-600 dark:text-red-400 p-2 bg-red-100 dark:bg-red-900/30 rounded-md border border-red-300 dark:border-red-600 shrink-0"},TIn={class:"text-sm text-blue-600 dark:text-blue-400"},fIn={class:"font-semibold"},pIn={key:0,class:"p-3 text-center text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/30 rounded-md border border-orange-300 dark:border-orange-600"},hIn={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4 items-center"},mIn={class:"relative md:col-span-2"},gIn={key:0,class:"absolute inset-y-0 right-0 pr-3 flex items-center"},_In={class:"flex items-center space-x-2"},QIn={for:"model-filter-installed",class:"flex items-center space-x-1 cursor-pointer text-sm label"},vIn={key:1,class:"flex justify-center items-center p-10 text-loading"},yIn={key:2,class:"text-center text-blue-500 dark:text-blue-400 py-10"},bIn={key:3,class:"text-center text-blue-500 dark:text-blue-400 py-10"},EIn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",ref:"scrollContainer"},SIn={key:4,class:"mt-6 text-center"},xIn=["disabled"],LIn={key:0},CIn={key:1},AIn={class:"pt-6 border-t border-blue-200 dark:border-blue-700 mt-6"},wIn={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},OIn={class:"flex"},MIn={class:"flex"},RIn=["disabled"],NIn={key:0,class:"mt-4 p-3 bg-blue-100 dark:bg-blue-900/30 border border-blue-200 dark:border-blue-700 rounded-md"},DIn={class:"flex justify-between items-center mb-1"},IIn={class:"text-sm font-medium text-blue-700 dark:text-blue-300"},kIn={class:"text-xs font-medium text-progress"},HIn={class:"animated-progressbar-bg h-1.5"},PIn={class:"flex justify-between items-center mt-1 text-xs text-progress"};function $In(t,e,n,o,r,i){const s=We("ModelEntry"),a=We("ChoiceDialog");return N(),H("div",oIn,[S("div",sIn,[e[12]||(e[12]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 mb-2 sm:mb-0"}," Models Zoo ",-1)),i.currentModelInfoComputed?(N(),H("div",aIn,[S("img",{src:i.currentModelInfoComputed.icon,onError:e[0]||(e[0]=(...l)=>i.imgPlaceholder&&i.imgPlaceholder(...l)),class:"w-6 h-6 rounded-lg object-cover flex-shrink-0",alt:"Current Model Icon"},null,40,lIn),S("span",null,[e[11]||(e[11]=Oe("Active: ")),S("span",cIn,J(i.currentModelInfoComputed.name),1)])])):t.$store.state.config.binding_name?(N(),H("div",dIn," No model selected! ")):(N(),H("div",uIn," Select a Binding first! "))]),S("p",TIn,[e[13]||(e[13]=Oe(" Select a model compatible with your chosen binding (")),S("span",fIn,J(i.currentBindingNameComputed||"None Selected"),1),e[14]||(e[14]=Oe("). Installed models are shown first. Models may require specific variants (e.g., GGUF, GPTQ) depending on the binding. "))]),t.$store.state.config.binding_name?Z("",!0):(N(),H("div",pIn," Please select a Binding from the 'Bindings' section to see available models. ")),S("div",hIn,[S("div",mIn,[e[16]||(e[16]=S("div",{class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},[S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-5 h-5 text-blue-400 dark:text-blue-500 feather feather-search"},[S("circle",{cx:"11",cy:"11",r:"8"}),S("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})])],-1)),Ce(S("input",{type:"search","onUpdate:modelValue":e[1]||(e[1]=l=>r.searchTerm=l),placeholder:"Search models by name, author, quantizer, description...",class:"input search-input pl-10 w-full",onInput:e[2]||(e[2]=(...l)=>i.debounceSearch&&i.debounceSearch(...l))},null,544),[[Je,r.searchTerm]]),r.isSearching?(N(),H("div",gIn,e[15]||(e[15]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 text-blue-400 animate-spin dark:text-blue-500 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1)]))):Z("",!0)]),S("div",_In,[S("label",QIn,[Ce(S("input",{type:"checkbox",id:"model-filter-installed","onUpdate:modelValue":e[3]||(e[3]=l=>r.showInstalledOnly=l),class:"rounded text-blue-600 focus:ring-blue-500 border-blue-300 dark:border-blue-600 bg-blue-100 dark:bg-blue-700 focus:ring-offset-blue-100 dark:focus:ring-offset-blue-800"},null,512),[[Ql,r.showInstalledOnly]]),e[17]||(e[17]=S("span",null,"Installed Only",-1))])]),S("div",null,[e[19]||(e[19]=S("label",{for:"model-sort",class:"sr-only"},"Sort models by",-1)),Ce(S("select",{id:"model-sort","onUpdate:modelValue":e[4]||(e[4]=l=>r.sortOption=l),class:"input"},e[18]||(e[18]=[tr('',5)]),512),[[Ir,r.sortOption]])])]),r.isLoadingModels?(N(),H("div",vIn,e[20]||(e[20]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 mr-2 text-blue-300 animate-spin dark:text-blue-600 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading models...",-1)]))):r.pagedModels.length===0&&r.filteredModels.length>0?(N(),H("div",yIn," No models found matching filters"+J(r.searchTerm?' and search "'+r.searchTerm+'"':"")+". ",1)):r.allModels.length===0&&!r.isLoadingModels&&t.$store.state.config.binding_name?(N(),H("div",bIn," No models available for the selected binding. Try adding a reference or downloading below. ")):Z("",!0),S("div",EIn,[(N(!0),H(Ae,null,Ue(r.pagedModels,l=>{var c,u,d,f,T;return N(),it(s,{key:l.id||l.name,model:l,"is-selected":t.$store.state.config.model_name===l.name,"is-installed":l.isInstalled,"is-processing":l.isProcessing,progress:((c=r.downloadProgress.details)==null?void 0:c.model_id)===(l.id||l.name)?r.downloadProgress.progress:0,speed:((u=r.downloadProgress.details)==null?void 0:u.model_id)===(l.id||l.name)?r.downloadProgress.speed:0,total_size:((d=r.downloadProgress.details)==null?void 0:d.model_id)===(l.id||l.name)?r.downloadProgress.total_size:0,downloaded_size:((f=r.downloadProgress.details)==null?void 0:f.model_id)===(l.id||l.name)?r.downloadProgress.downloaded_size:0,"progress-name":((T=r.downloadProgress.details)==null?void 0:T.model_id)===(l.id||l.name)?r.downloadProgress.name:"",onSelect:i.handleSelect,onInstall:i.handleInstall,onUninstall:i.handleUninstall,onCancelInstall:i.handleCancelInstall,onCopy:i.handleCopy,onCopyLink:i.handleCopyLink},null,8,["model","is-selected","is-installed","is-processing","progress","speed","total_size","downloaded_size","progress-name","onSelect","onInstall","onUninstall","onCancelInstall","onCopy","onCopyLink"])}),128))],512),i.hasMoreModelsToLoad?(N(),H("div",SIn,[S("button",{onClick:e[5]||(e[5]=(...l)=>i.loadMoreModels&&i.loadMoreModels(...l)),disabled:r.isLoadingModels||r.isSearching,class:"btn btn-secondary"},[r.isLoadingModels||r.isSearching?(N(),H("span",LIn,e[21]||(e[21]=[S("svg",{"aria-hidden":"true",class:"w-4 h-4 mr-1 inline animate-spin text-blue-400 dark:text-blue-500 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),Oe(" Loading... ")]))):(N(),H("span",CIn,"Load More Models ("+J(r.filteredModels.length-r.pagedModels.length)+" remaining)",1))],8,xIn)])):Z("",!0),S("section",AIn,[e[27]||(e[27]=S("h3",{class:"text-lg font-medium text-blue-700 dark:text-blue-300 mb-3"},"Add Model",-1)),S("div",wIn,[S("div",null,[e[22]||(e[22]=S("label",{for:"reference_path",class:"label mb-1"},"Add Reference to Local Model File/Folder",-1)),S("div",OIn,[Ce(S("input",{type:"text",id:"reference_path","onUpdate:modelValue":e[6]||(e[6]=l=>r.referencePath=l),class:"input input-sm rounded-r-none flex-grow",placeholder:"Enter full path to model file or folder..."},null,512),[[Je,r.referencePath]]),S("button",{onClick:e[7]||(e[7]=(...l)=>i.createReference&&i.createReference(...l)),class:"btn btn-primary btn-sm rounded-l-none flex-shrink-0",title:"Add Reference"},"Add")]),e[23]||(e[23]=S("p",{class:"text-xs text-blue-500 dark:text-blue-400 mt-1"},"Creates a link without copying the model. Binding must support references.",-1))]),S("div",null,[e[25]||(e[25]=S("label",{for:"model_url",class:"label mb-1"},"Download Model from URL or Hugging Face ID",-1)),S("div",MIn,[Ce(S("input",{type:"text",id:"model_url","onUpdate:modelValue":e[8]||(e[8]=l=>r.modelUrl=l),class:"input input-sm rounded-r-none flex-grow",placeholder:"Enter URL or HF ID (e.g., TheBloke/Llama-2-7B-GGUF)..."},null,512),[[Je,r.modelUrl]]),S("button",{onClick:e[9]||(e[9]=(...l)=>i.installFromInput&&i.installFromInput(...l)),class:"btn btn-success btn-sm rounded-l-none flex-shrink-0",title:"Download and Install",disabled:r.isDownloading},[(N(),H("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:Ee(["w-4 h-4",r.isDownloading?"animate-spin feather feather-loader":"feather feather-download"])},e[24]||(e[24]=[tr('',11)]),2))],8,RIn)]),e[26]||(e[26]=S("p",{class:"text-xs text-blue-500 dark:text-blue-400 mt-1"},"Downloads the model to the binding's models folder.",-1))])]),r.downloadProgress.visible?(N(),H("div",NIn,[S("div",DIn,[S("span",IIn,J(r.downloadProgress.name),1),S("span",kIn,J(r.downloadProgress.progress.toFixed(1))+"%",1)]),S("div",HIn,[S("div",{class:"animated-progressbar-fg h-1.5 rounded-full",style:Jt({width:r.downloadProgress.progress+"%"})},null,4)]),S("div",PIn,[S("span",null,J(i.downloadedSizeComputed)+" / "+J(i.totalSizeComputed),1),S("span",null,J(i.speedComputed)+"/s",1)]),S("button",{onClick:e[10]||(e[10]=l=>i.handleCancelInstall(r.downloadProgress.details)),class:"btn btn-secondary btn-sm mt-2 text-xs text-red-500 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-700"},"Cancel Operation")])):Z("",!0)]),ne(a,{show:r.variantSelectionDialog.visible,title:r.variantSelectionDialog.title,choices:r.variantSelectionDialog.choices,onChoiceSelected:i.handleVariantSelected,onChoiceValidated:i.handleVariantValidated,onCloseDialog:i.closeVariantDialog},null,8,["show","title","choices","onChoiceSelected","onChoiceValidated","onCloseDialog"])])}const DO=ze(iIn,[["render",$In],["__scopeId","data-v-afc35f9f"]]),VIn={name:"PersonalityEntry",components:{InteractiveMenu:Eh},props:{personality:{type:Object,required:!0},select_language:{type:Boolean,default:!1},isActive:{type:Boolean,default:!1},full_path:{type:String,required:!0},isMounted:{type:Boolean,default:!1},isProcessing:{type:Boolean,default:!1},isStarred:{type:Boolean,default:!1},baseUrl:{type:String,default:""}},emits:["select","mount","unmount","remount","edit","copy-to-custom","reinstall","settings","copy-personality-name","open-folder","error","toggle-star"],data(){return{selectedLanguage:this.personality.language||"",showHelpPopup:!1,renderedHelp:""}},computed:{personalityId(){return this.personality.id||this.full_path.replace(/[/:]/g,"-")},renderedDescription(){return this.personality.description?/<[a-z][\s\S]*>/i.test(this.personality.description)?Rc.sanitize(this.personality.description):this.escapeHtml(this.personality.description).replace(/\n/g,"
"):"No description available."},commandsList(){let t=[];return this.isMounted?t.push({name:"unmount",icon:"feather:stop-circle",is_file:!1,value:this.emitUnmount}):t.push({name:"mount",icon:"feather:play",is_file:!1,value:this.emitMount}),this.isMounted&&t.push({name:"remount",icon:"feather:refresh-cw",is_file:!1,value:this.emitRemount}),t.push({name:"reinstall",icon:"feather:download-cloud",is_file:!1,value:this.emitReinstall}),this.full_path.startsWith("custom_personalities/")||this.personality.category==="custom_personalities"?t.push({name:"edit",icon:"feather:edit-3",is_file:!1,value:this.emitEdit}):t.push({name:"Copy to custom personalities",icon:"feather:copy",is_file:!1,value:this.emitCopyToCustom}),this.isActive&&this.personality.has_scripts&&t.push({name:"settings",icon:"feather:settings",is_file:!1,value:this.emitSettings}),t.push({name:"Open Folder",icon:"feather:folder",is_file:!1,value:this.emitOpenFolder}),t.push({name:"Copy Name",icon:"feather:clipboard",is_file:!1,value:this.emitCopyName}),t},watchedFeatherProps(){return[this.isActive,this.isMounted,this.isProcessing,this.isStarred,this.showHelpPopup,this.commandsList]}},watch:{"personality.language"(t){const e=t||"";this.selectedLanguage!==e&&(this.selectedLanguage=e)},watchedFeatherProps:{handler(){this.updateFeatherIcons()},deep:!0,flush:"post"}},methods:{escapeHtml(t){return t?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,'"').replace(/'/g,"'"):""},updateFeatherIcons(){be(()=>{try{Le.replace()}catch(t){console.error("Feather icons replacement failed:",t)}})},formatDate(t){if(!t)return"";try{const e={year:"numeric",month:"short",day:"numeric"};return new Date(t).toLocaleDateString(void 0,e)}catch(e){return console.error("Error formatting date:",e),t}},getPersonalityIconUrl(t){if(!t)return Wi;const e=this.baseUrl.endsWith("/")?this.baseUrl.slice(0,-1):this.baseUrl,n=t.startsWith("/")?t:`/${t}`;return`${e}${n}`},handleImgError(t){t.target.src=Wi,this.$emit("error",{type:"image_load",message:"Failed to load personality icon",event:t})},handleSelect(){this.$emit("select",{personality:{...this.personality,language:this.selectedLanguage}})},emitAction(t){const e={personality:{...this.personality,language:this.selectedLanguage||this.personality.language||""}};this.$emit(t,e)},toggleStar(){this.emitAction("toggle-star")},emitMount(){this.emitAction("mount")},emitUnmount(){this.emitAction("unmount")},emitRemount(){this.emitAction("remount")},emitReinstall(){this.emitAction("reinstall")},emitEdit(){this.emitAction("edit")},emitCopyToCustom(){this.emitAction("copy-to-custom")},emitSettings(){this.emitAction("settings")},emitOpenFolder(){this.emitAction("open-folder")},emitCopyName(){this.emitAction("copy-personality-name")},showHelp(){if(this.personality.help){Et.setOptions({gfm:!0,breaks:!0,mangle:!1,headerIds:!1});try{const t=Et.parse(this.personality.help);this.renderedHelp=Rc.sanitize(t),this.showHelpPopup=!0,this.updateFeatherIcons()}catch(t){console.error("Error parsing or sanitizing help markdown:",t),this.renderedHelp="

Error displaying help content.

",this.showHelpPopup=!0}}},closeHelp(){this.showHelpPopup=!1}},mounted(){this.updateFeatherIcons(),this.selectedLanguage=this.personality.language||""}},BIn=["title"],FIn={key:0,class:"absolute inset-0 bg-blue-400 dark:bg-blue-700 bg-opacity-50 dark:bg-opacity-50 flex items-center justify-center rounded-lg z-20"},UIn=["title"],qIn={key:0,"data-feather":"star",class:"w-5 h-5 fill-current"},GIn={key:1,"data-feather":"star",class:"w-5 h-5 stroke-current"},jIn={class:"flex-grow flex flex-col"},zIn={class:"flex items-start mb-3"},YIn=["src"],WIn={class:"flex-grow overflow-hidden min-w-0"},KIn=["title"],ZIn=["title"],XIn=["title"],JIn=["title"],ekn={class:"text-xs text-blue-400 dark:text-blue-500 mb-3 space-y-1"},tkn={key:0},nkn={key:1},rkn={class:"mb-4 flex-grow"},ikn=["innerHTML"],okn={key:0,class:"mb-3 mt-auto"},skn=["for"],akn=["id"],lkn=["value"],ckn={class:"mt-auto pt-3 border-t border-blue-200 dark:border-blue-700"},ukn={class:"flex justify-between items-center"},dkn={class:"flex space-x-1"},Tkn={class:"card w-full max-w-2xl max-h-[80vh] flex flex-col"},fkn={class:"flex justify-between items-center mb-4 border-b pb-2 border-blue-200 dark:border-blue-600"},pkn={class:"text-xl font-bold text-blue-800 dark:text-blue-100"},hkn={class:"flex-grow overflow-y-auto scrollbar prose-blue max-w-none pr-2"},mkn=["innerHTML"],gkn={class:"mt-4 pt-4 border-t border-blue-200 dark:border-blue-600 text-right"};function _kn(t,e,n,o,r,i){const s=We("InteractiveMenu");return N(),H("div",{class:Ee(["app-card relative flex flex-col",{"border-2 border-blue-500 dark:border-blue-400 shadow-lg":n.isActive,"border-blue-200 dark:border-blue-700":!n.isActive,"opacity-50 pointer-events-none":n.isProcessing}]),title:n.personality.tool_description||n.personality.description||n.personality.name,onClick:e[11]||(e[11]=(...a)=>i.handleSelect&&i.handleSelect(...a))},[n.isProcessing?(N(),H("div",FIn,e[12]||(e[12]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 text-blue-200 animate-spin dark:text-blue-600 fill-blue-600 dark:fill-blue-300",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1)]))):Z("",!0),S("button",{onClick:e[0]||(e[0]=oe((...a)=>i.toggleStar&&i.toggleStar(...a),["stop"])),class:"absolute top-2 right-2 svg-button text-yellow-400 hover:text-yellow-500 dark:text-yellow-500 dark:hover:text-yellow-400 z-10",title:n.isStarred?"Unstar":"Star"},[n.isStarred?(N(),H("i",qIn)):(N(),H("i",GIn))],8,UIn),S("div",jIn,[S("div",zIn,[S("img",{src:i.getPersonalityIconUrl(n.personality.avatar),onError:e[1]||(e[1]=(...a)=>i.handleImgError&&i.handleImgError(...a)),alt:"Personality Icon",class:"w-16 h-16 rounded-lg object-cover mr-4 flex-shrink-0 border border-blue-200 dark:border-blue-600 shadow-sm"},null,40,YIn),S("div",WIn,[S("h3",{class:"font-bold text-lg text-blue-800 dark:text-blue-100 truncate",title:n.personality.name},J(n.personality.name),9,KIn),n.personality.author?(N(),H("p",{key:0,class:"text-xs text-blue-500 dark:text-blue-400 truncate",title:`By ${n.personality.author}`}," By "+J(n.personality.author),9,ZIn)):Z("",!0),n.personality.version?(N(),H("p",{key:1,class:"text-xs text-blue-500 dark:text-blue-400",title:`Version: ${n.personality.version}`}," v"+J(n.personality.version),9,XIn)):Z("",!0),n.personality.category?(N(),H("p",{key:2,class:"text-xs text-blue-500 dark:text-blue-400 truncate",title:`Category: ${n.personality.category}`},J(n.personality.category),9,JIn)):Z("",!0)]),n.personality.help?(N(),H("button",{key:0,onClick:e[2]||(e[2]=oe((...a)=>i.showHelp&&i.showHelp(...a),["stop"])),class:"ml-2 svg-button text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300 flex-shrink-0 -mr-1",title:"Help"},e[13]||(e[13]=[S("i",{"data-feather":"help-circle",class:"h-5 w-5"},null,-1)]))):Z("",!0)]),S("div",ekn,[n.personality.creation_date?(N(),H("p",tkn,"Created: "+J(i.formatDate(n.personality.creation_date)),1)):Z("",!0),n.personality.last_update_date?(N(),H("p",nkn,"Updated: "+J(i.formatDate(n.personality.last_update_date)),1)):Z("",!0)]),S("div",rkn,[S("p",{class:"text-sm text-blue-700 dark:text-blue-300 h-20 overflow-y-auto scrollbar",innerHTML:i.renderedDescription},null,8,ikn)]),n.select_language&&n.personality.languages&&n.personality.languages.length>0&&!n.isMounted?(N(),H("div",okn,[S("label",{for:"lang-select-"+i.personalityId,class:"label mb-1"},"Language:",8,skn),Ce(S("select",{id:"lang-select-"+i.personalityId,"onUpdate:modelValue":e[3]||(e[3]=a=>r.selectedLanguage=a),onClick:e[4]||(e[4]=oe(()=>{},["stop"])),class:"input w-full text-sm"},[e[14]||(e[14]=S("option",{value:""},"Default",-1)),(N(!0),H(Ae,null,Ue(n.personality.languages,a=>(N(),H("option",{key:a,value:a},J(a),9,lkn))),128))],8,akn),[[Ir,r.selectedLanguage]])])):Z("",!0),S("div",ckn,[S("div",ukn,[S("div",dkn,[n.isMounted?(N(),H("button",{key:1,onClick:e[6]||(e[6]=oe(a=>i.emitAction("unmount"),["stop"])),class:"btn btn-sm bg-red-600 hover:bg-red-700 text-white focus:ring-red-500 dark:bg-red-700 dark:hover:bg-red-600 dark:focus:ring-red-600",title:"Unmount personality"},e[16]||(e[16]=[S("div",{class:"flex items-center"},[S("i",{"data-feather":"stop-circle",class:"w-3 h-3 mr-1 stroke-current"}),Oe("Unmount")],-1)]))):(N(),H("button",{key:0,onClick:e[5]||(e[5]=oe(a=>i.emitAction("mount"),["stop"])),class:"btn btn-sm btn-success",title:"Mount personality"},e[15]||(e[15]=[S("div",{class:"flex items-center"},[S("i",{"data-feather":"play",class:"w-3 h-3 mr-1 stroke-current"}),Oe("Mount")],-1)]))),n.isMounted?(N(),H("button",{key:2,onClick:e[7]||(e[7]=oe(a=>i.emitAction("remount"),["stop"])),class:"svg-button p-1",title:"Remount personality"},e[17]||(e[17]=[S("i",{"data-feather":"refresh-cw",class:"w-4 h-4"},null,-1)]))):Z("",!0)]),ne(s,{commands:i.commandsList,force_position:2,title:"More actions",class:"p-1"},{trigger:je(()=>e[18]||(e[18]=[S("button",{class:"svg-button p-1"},[S("i",{"data-feather":"more-vertical",class:"w-5 h-5"})],-1)])),_:1},8,["commands"])])])]),r.showHelpPopup?(N(),H("div",{key:1,onClick:e[10]||(e[10]=oe(()=>{},["stop"])),class:"fixed inset-0 bg-black bg-opacity-70 flex justify-center items-center z-50 p-4"},[S("div",Tkn,[S("div",fkn,[S("h2",pkn,"Help: "+J(n.personality.name),1),S("button",{onClick:e[8]||(e[8]=(...a)=>i.closeHelp&&i.closeHelp(...a)),class:"svg-button hover:text-red-600 dark:hover:text-red-500 p-1"},e[19]||(e[19]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)]))]),S("div",hkn,[S("div",{innerHTML:r.renderedHelp},null,8,mkn)]),S("div",gkn,[S("button",{onClick:e[9]||(e[9]=(...a)=>i.closeHelp&&i.closeHelp(...a)),class:"btn btn-primary"},"Close")])])])):Z("",!0)],10,BIn)}const Rk=ze(VIn,[["render",_kn]]),Qkn="/",IO="lollms_starred_personalities",vkn={name:"PersonalitiesZoo",components:{PersonalityEntry:Rk},emits:["settings-changed"],data(){return{allPersonalities:[],persCatgArr:[],selectedCategory:"",searchPersonality:"",searchPersonalityInProgress:!1,searchDebounceTimer:null,searchDebounceDelay:350,isLoading:!1,bUrl:Qkn,defaultPersonalityIcon_:Wi,maxDisplayedMounted:5,starredPaths:[],displayedCount:24,loadBatchSize:24,observer:null}},computed:{configFile(){return this.$store.state.config||{personalities:[],active_personality_id:-1,personality_category:""}},mountedPersArr(){if(!this.configFile.personalities||this.allPersonalities.length===0)return[];const t=new Set(this.configFile.personalities);return this.allPersonalities.filter(e=>{const n=e.full_path,o=Array.isArray(e.languages)?e.languages.map(r=>`${n}:${r}`):[];return t.has(n)||o.some(r=>t.has(r))})},active_personality_name(){if(this.configFile.active_personality_id<0||!this.configFile.personalities||this.configFile.active_personality_id>=this.configFile.personalities.length)return null;const t=this.configFile.personalities[this.configFile.active_personality_id],e=t?t.split(":")[0]:null,n=this.allPersonalities.find(o=>o.full_path===e);return n?n.name:null},displayedMountedPersonalities(){return this.mountedPersArr.slice(0,this.maxDisplayedMounted)},fullyFilteredPersonalities(){let t=[...this.allPersonalities];if(this.selectedCategory==="Starred"){const e=new Set(this.starredPaths);t=t.filter(n=>e.has(n.full_path))}else this.selectedCategory&&(t=t.filter(e=>e.category===this.selectedCategory));if(this.searchPersonality){const e=this.searchPersonality.toLowerCase();t=t.filter(n=>{try{return n.name&&n.name.toLowerCase().includes(e)||n.author&&n.author.toLowerCase().includes(e)||n.description&&n.description.toLowerCase().includes(e)||n.full_path&&n.full_path.toLowerCase().includes(e)}catch{return!1}})}return t.sort((e,n)=>e.isMounted&&!n.isMounted?-1:!e.isMounted&&n.isMounted?1:(e.name||"").localeCompare(n.name||"")),t},renderedPersonalities(){return this.fullyFilteredPersonalities.slice(0,this.displayedCount)}},watch:{"configFile.personalities":{handler(){this.syncLocalMountedFlags()},deep:!0},"configFile.personality_category":{handler(t){const e=t||"";this.selectedCategory!==e&&(this.persCatgArr.includes(e)||e===""||e==="Starred")&&(this.selectedCategory=e,this.applyFiltersAndSort())}},selectedCategory(t){(this.$store.state.config.personality_category||"")!==t&&(this.$store.state.config.personality_category=t,this.$emit("settings-changed"))},starredPaths:{handler(){this.fetchCategories(),this.selectedCategory==="Starred"&&this.applyFiltersAndSort(),this.markStarredInAllPersonalities()},deep:!0}},methods:{async api_get_req(t){try{const e=await fe.get(`${t.startsWith("/")?"":"/"}${t}`);if(e)return e.data}catch(e){return this.$store.state.toast.showToast(`API GET Error (${t}): ${e.message}`,4,!1),console.error(`API GET Error (${t}):`,e),null}},async api_post_req(t,e={}){const n={...e,client_id:this.$store.state.client_id};try{const o=await fe.post(`${t.startsWith("/")?"":"/"}${t}`,n);return typeof o.data=="object"&&o.data!==null&&"status"in o.data?o.data:(console.warn(`API POST response for ${t} has unexpected structure:`,o.data),{status:!1,error:"Unexpected response structure",data:o.data})}catch(o){return this.$store.state.toast.showToast(`API POST Error (${t}): ${o.message}`,4,!1),console.error(`API POST Error (${t}):`,o),{status:!1,error:o.message}}},async getPersonalitiesArr(){this.isLoading=!0;try{const t=await this.api_get_req("get_all_personalities"),e=this.configFile;console.log("Processing get_all_personalities response");let n=[];const o=new Set(e.personalities||[]),r=new Set(this.starredPaths);if(t)for(const i in t){const s=t[i];Array.isArray(s)&&s.forEach(a=>{const l=`${i}/${a.folder}`,c=a.id||l,u=Array.isArray(a.languages)?a.languages.map(f=>`${l}:${f}`):[],d=o.has(l)||u.some(f=>o.has(f));n.push({...a,category:i,language:"",full_path:l,isMounted:d,isStarred:r.has(l),id:c,isProcessing:!1})})}this.allPersonalities=n,this.applyFiltersAndSort(),console.log(`Fetched ${this.allPersonalities.length} total personalities.`)}finally{this.isLoading=!1,be(Le.replace)}},async fetchCategories(){this.isLoading=!0;try{const t=await this.api_get_req("list_personalities_categories");this.persCatgArr=t?t.sort():[];const e=this.configFile.personality_category,n=e&&(this.persCatgArr.includes(e)||e==="Starred");this.selectedCategory=n?e:""}finally{this.isLoading=!1,be(Le.replace)}},async fetchPersonalitiesAndCategories(){await this.fetchCategories(),await this.getPersonalitiesArr()},applyFiltersAndSort(){this.displayedCount=this.loadBatchSize,this.searchPersonalityInProgress=!1,be(()=>{Le.replace();const t=this.$el.querySelector(".personalities-grid-container");t&&(t.scrollTop=0),this.setupObserver()})},searchPersonality_func(){this.searchPersonalityInProgress=!0,clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=setTimeout(()=>{this.applyFiltersAndSort()},this.searchDebounceDelay)},clearSearch(){this.searchPersonality="",this.applyFiltersAndSort()},loadStarred(){try{const t=localStorage.getItem(IO);this.starredPaths=t?JSON.parse(t):[]}catch(t){console.error("Failed to load starred personalities:",t),this.starredPaths=[]}this.markStarredInAllPersonalities()},saveStarred(){try{localStorage.setItem(IO,JSON.stringify(this.starredPaths))}catch(t){console.error("Failed to save starred personalities:",t)}},markStarredInAllPersonalities(){const t=new Set(this.starredPaths);this.allPersonalities.forEach(e=>{e.isStarred=t.has(e.full_path)})},toggleStar(t){const e=t.personality.full_path,n=this.starredPaths.indexOf(e);n>-1?this.starredPaths.splice(n,1):this.starredPaths.push(e);const o=this.allPersonalities.find(r=>r.full_path===e);o&&(o.isStarred=n===-1),this.saveStarred(),this.$store.state.toast.showToast(`${t.personality.name} ${n>-1?"unstarred":"starred"}`,2,!0),be(Le.replace)},syncLocalMountedFlags(){const t=new Set(this.configFile.personalities||[]);let e=!1;this.allPersonalities.forEach(n=>{const o=n.full_path,r=Array.isArray(n.languages)?n.languages.map(s=>`${o}:${s}`):[],i=t.has(o)||r.some(s=>t.has(s));n.isMounted!==i&&(n.isMounted=i,e=!0)}),e&&this.applyFiltersAndSort(),be(Le.replace)},personalityImgPlaceholder(t){t.target.src=this.defaultPersonalityIcon_},getPersonalityIconUrl(t){if(!t)return this.defaultPersonalityIcon_;const e=t.startsWith("/")?t:`/${t}`,n=this.bUrl.endsWith("/")||e.startsWith("/")?"":"/";let o=e.startsWith("/")?e.substring(1):e;return o=o==="/"?"":o,`${this.bUrl}${n}${o}`},isActivePersonality(t){if(!this.configFile||this.configFile.active_personality_id<0||!this.configFile.personalities)return!1;const e=this.configFile.personalities[this.configFile.active_personality_id],n=e?e.split(":")[0]:null;return t.full_path===n},setPersonalityProcessing(t,e){const n=t.personality.id||t.personality.full_path;(r=>{const i=r.find(s=>(s.id||s.full_path)===n);i&&(i.isProcessing=e)})(this.allPersonalities),be(Le.replace)},getCategoryCount(t){return this.allPersonalities.filter(e=>e.category===t).length},getResultLabel(){return this.searchPersonality?"Search results":this.selectedCategory==="Starred"?"Starred Personalities":this.selectedCategory?`Personalities in "${this.selectedCategory}"`:"All Personalities"},async onPersonalitySelected(t){const e=t.personality;if(this.isLoading){this.$store.state.toast.showToast("Loading...",4,!1);return}if(!e.isMounted){this.$store.state.toast.showToast(`Mount "${e.name}" first.`,3,!1);return}if(this.isActivePersonality(e)){this.$store.state.toast.showToast(`"${e.name}" is already active.`,3,!1);return}this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Selecting ${e.name}...`,2,!0);const n=await this.select_personality(e);n&&n.status?(this.$emit("settings-changed"),this.$store.state.toast.showToast(`Selected personality: ${e.name}`,4,!0)):this.$store.state.toast.showToast(`Failed to select ${e.name}: ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1),this.setPersonalityProcessing(t,!1),be(Le.replace)},async select_personality(t){if(!t)return{status:!1,error:"no personality - select_personality"};let e=t.language?`${t.full_path}:${t.language}`:t.full_path;if(this.$store.state.config.personalities.findIndex(i=>i===e||i===t.full_path)===-1){if(this.$store.state.config.personalities.findIndex(s=>s===t.full_path)===-1)return console.error("Personality path not found in store config:",e,t.full_path),{status:!1,error:"Personality path not found in current config"};e=t.full_path}const o=this.$store.state.config.personalities.findIndex(i=>i===e);if(o===-1)return console.error("Consistency Error: Personality path disappeared after check:",e),{status:!1,error:"Internal error finding personality ID"};const r={client_id:this.$store.state.client_id,id:o};try{const i=await fe.post("/select_personality",r,{headers:{"Content-Type":"application/json"}});return i&&i.data?(await this.$store.dispatch("refreshConfig"),i.data):{status:!1,error:"No response data from select_personality"}}catch(i){return console.error("Error in select_personality API call:",i),{status:!1,error:i.message}}},async mountPersonality(t){const e=t.personality;if(e.isMounted){this.$store.state.toast.showToast(`${e.name} is already mounted.`,3,!1);return}if(e.disclaimer&&e.disclaimer.trim()!==""&&!await this.$store.state.yesNoDialog.askQuestion(`Disclaimer for ${e.name}: ${e.disclaimer} Mount this personality?`,"Mount","Cancel"))return;this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Mounting ${e.name}...`,3,!0);const n=await this.mount_personality(e);n&&n.status&&n.active_personality_id>-1&&n.personalities?(this.$store.state.config.personalities=n.personalities,this.$store.state.config.active_personality_id=n.active_personality_id,this.$emit("settings-changed"),this.$store.state.toast.showToast("Personality mounted and selected",4,!0)):(this.$store.state.toast.showToast(`Could not mount personality Error: ${(n==null?void 0:n.error)||"Unknown error"}`,4,!1),this.syncLocalMountedFlags()),this.setPersonalityProcessing(t,!1),be(Le.replace)},async mount_personality(t){if(!t)return{status:!1,error:"no personality - mount_personality"};try{const e={client_id:this.$store.state.client_id,language:t.language||"",category:t.category||"",folder:t.folder||""};return await this.api_post_req("/mount_personality",e)}catch(e){return console.error("Error in mount_personality helper:",e),{status:!1,error:e.message}}},async unmountPersonality(t){const e=t.personality;if(!e.isMounted){this.$store.state.toast.showToast(`${e.name} is not mounted.`,3,!1);return}if(!await this.$store.state.yesNoDialog.askQuestion(`Unmount personality "${e.name}"?`,"Unmount","Cancel"))return;this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Unmounting ${e.name}...`,3,!0);const o=await this.unmount_personality(e);o&&o.status?(this.$store.state.config.personalities=o.personalities,this.$store.state.config.active_personality_id=o.active_personality_id,this.$emit("settings-changed"),this.$store.state.toast.showToast("Personality unmounted",4,!0)):(this.$store.state.toast.showToast(`Could not unmount personality -Error: ${(o==null?void 0:o.error)||"Unknown error"}`,4,!1),this.syncLocalMountedFlags()),this.setPersonalityProcessing(t,!1),be(Le.replace)},async unmount_personality(t){if(!t)return{status:!1,error:"no personality - unmount_personality"};const e={client_id:this.$store.state.client_id,language:t.language||"",category:t.category||"",folder:t.folder||""};try{return await this.api_post_req("/unmount_personality",e)}catch(n){return console.error("Error in unmount_personality helper:",n),{status:!1,error:n.message}}},async unmountAll(){if(!await this.$store.state.yesNoDialog.askQuestion("Unmount all personalities?","Unmount All","Cancel"))return;this.$store.state.toast.showToast("Unmounting all...",3,!0),this.isLoading=!0;const e=await this.api_post_req("/unmount_all_personalities");e&&e.status?(this.$store.state.config.personalities=[],this.$store.state.config.active_personality_id=-1,this.$emit("settings-changed"),this.$store.state.toast.showToast("All personalities unmounted.",4,!0)):this.$store.state.toast.showToast(`Failed to unmount all: ${(e==null?void 0:e.error)||"Unknown error"}`,4,!1),this.isLoading=!1,be(Le.replace)},async remountPersonality(t){const e=t.personality;this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Remounting ${e.name}...`,3,!0);try{await this.unmount_personality(e),await new Promise(o=>setTimeout(o,150));const n=await this.mount_personality(e);n&&n.status?(this.$store.state.config.personalities=n.personalities,this.$store.state.config.active_personality_id=n.active_personality_id,this.$emit("settings-changed"),this.$store.state.toast.showToast(`${e.name} remounted successfully.`,4,!0)):(this.$store.state.toast.showToast(`Failed to remount ${e.name}: ${(n==null?void 0:n.error)||"Mount failed"}`,4,!1),await this.fetchPersonalitiesAndCategories())}catch(n){this.$store.state.toast.showToast(`Error remounting ${e.name}: ${n.message}`,4,!1),await this.fetchPersonalitiesAndCategories()}finally{this.setPersonalityProcessing(t,!1)}},async editPersonality(t){var n;const e=t.personality;this.isLoading=!0;try{const r=(await fe.post("/get_personality_config",{client_id:this.$store.state.client_id,category:e.category,name:e.folder})).data;r.status?(this.$store.state.currentPersonConfig=r.config,this.$store.state.showPersonalityEditor=!0,(n=this.$store.state.personality_editor)!=null&&n.showPanel&&this.$store.state.personality_editor.showPanel(),this.$store.state.selectedPersonality=e):(console.error(r.error),this.$store.state.toast.showToast(`Failed to load config for ${e.name}: ${r.error}`,4,!1))}catch(o){console.error("Error fetching personality config:",o),this.$store.state.toast.showToast(`Error loading config for ${e.name}`,4,!1)}finally{this.isLoading=!1}},async onCopyToCustom(t){const e=t.personality;if(!await this.$store.state.yesNoDialog.askQuestion(`Copy "${e.name}" to 'custom_personalities'?`,"Copy","Cancel"))return;this.setPersonalityProcessing(t,!0);const o=await this.api_post_req("copy_to_custom_personas",{category:e.category,name:e.folder});o&&o.status?(this.$store.state.messageBox.showMessage(`"${e.name}" copied to 'custom_personalities'. Refreshing list...`),await new Promise(r=>setTimeout(r,500)),await this.fetchPersonalitiesAndCategories()):this.$store.state.toast.showToast(`Failed to copy ${e.name}: ${(o==null?void 0:o.error)||"Already exists?"}`,4,!1),this.setPersonalityProcessing(t,!1)},async onPersonalityReinstall(t){const e=t.personality;if(!await this.$store.state.yesNoDialog.askQuestion(`Reinstall "${e.name}"? This overwrites local changes.`,"Reinstall","Cancel"))return;this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Reinstalling ${e.name}...`,3,!0);const o=await this.api_post_req("reinstall_personality",{name:e.full_path});o&&o.status?this.$store.state.toast.showToast(`${e.name} reinstalled successfully.`,4,!0):this.$store.state.toast.showToast(`Failed to reinstall ${e.name}: ${(o==null?void 0:o.error)||"Not found?"}`,4,!1),this.setPersonalityProcessing(t,!1)},async onSettingsPersonality(t){var n,o;const e=t.personality;if(!this.isActivePersonality(e)){this.$store.state.toast.showToast(`Select and activate "${e.name}" first to configure its settings.`,4,!1);return}this.setPersonalityProcessing(t,!0);try{const i=(await fe.get("/get_active_personality_settings")).data;if(i&&typeof i=="object"&&Object.keys(i).length>0){const s=await this.$store.state.universalForm.showForm(i,`Settings - ${e.name}`,"Save","Cancel");if(s!==null){const a=await fe.post("/set_active_personality_settings",s);(n=a==null?void 0:a.data)!=null&&n.status?this.$store.state.toast.showToast(`Settings for ${e.name} updated.`,4,!0):this.$store.state.toast.showToast(`Failed to update settings: ${((o=a==null?void 0:a.data)==null?void 0:o.error)||"Unknown error"}`,4,!1)}}else i&&typeof i=="object"?this.$store.state.toast.showToast(`"${e.name}" has no configurable settings.`,4,!1):this.$store.state.toast.showToast(`Could not get settings for ${e.name}.`,4,!1)}catch(r){console.error("Error getting/setting personality settings:",r),this.$store.state.toast.showToast(`Error accessing settings: ${r.message}`,4,!1)}finally{this.setPersonalityProcessing(t,!1)}},onCopyPersonalityName(t){const e=t.personality;navigator.clipboard.writeText(e.name).then(()=>this.$store.state.toast.showToast(`Copied name: ${e.name}`,3,!0)).catch(()=>this.$store.state.toast.showToast("Failed to copy name.",3,!1))},async handleOpenFolder(t){const e=t.personality;await this.api_post_req("open_personality_folder",{category:e.category,name:e.folder})},loadMore(){this.isLoading||this.displayedCount>=this.fullyFilteredPersonalities.length||(console.log("Loading more personalities..."),this.displayedCount+=this.loadBatchSize,be(Le.replace))},setupObserver(){this.observer&&this.observer.disconnect();const t=this.$refs.sentinel;if(!t)return;const e={root:null,rootMargin:"0px",threshold:.1};this.observer=new IntersectionObserver(n=>{n[0].isIntersecting&&this.loadMore()},e),this.observer.observe(t)}},async mounted(){console.log("PersonalitiesZoo mounted (Options API). Initializing..."),this.isLoading=!0,this.loadStarred(),await this.fetchPersonalitiesAndCategories(),be(()=>{Le.replace(),this.setupObserver()}),this.isLoading=!1,console.log("PersonalitiesZoo initialization complete.")},beforeUnmount(){this.observer&&(this.observer.disconnect(),this.observer=null),clearTimeout(this.searchDebounceTimer)},updated(){be(()=>{Le.replace()})}},vkn={class:"user-settings-panel flex flex-col mb-2 rounded-lg shadow-lg p-4"},ykn={class:"flex flex-row justify-between items-center mb-4 flex-wrap gap-y-2"},bkn={class:"flex items-center flex-wrap"},Ekn={key:0,class:"flex items-center mr-2 text-lg text-blue-600 dark:text-blue-300"},Skn=["title"],xkn={class:"flex items-center space-x-3 shrink-0"},Lkn={key:0,class:"text-base font-semibold cursor-pointer select-none items-center flex flex-row"},Ckn={class:"flex -space-x-4 items-center"},Akn={class:"group items-center flex flex-row"},wkn=["onClick","title"],Okn=["src"],Mkn=["onClick"],Rkn=["title"],Nkn={class:"flex flex-col sm:flex-row gap-4 mb-4"},Dkn={class:"flex-grow"},Ikn={class:"relative"},kkn={class:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none"},Hkn={key:0,"data-feather":"search",class:"w-5 h-5 text-blue-400 dark:text-blue-500"},Pkn={key:1,role:"status"},$kn={class:"flex-shrink-0 sm:w-64"},Vkn={value:""},Bkn={key:0,value:"Starred"},Fkn={key:1,disabled:"",class:"text-blue-400 dark:text-blue-600"},Ukn=["value"],qkn={key:0,class:"flex justify-center items-center p-10 text-blue-500 dark:text-blue-400"},Gkn={key:1,class:"text-center text-blue-500 dark:text-blue-400 py-10"},jkn={key:2,class:"overflow-y-auto flex-grow personalities-grid-container scrollbar scrollbar-thin",style:{"max-height":"calc(100vh - 300px)"}},zkn={class:"label block ml-2 mb-2"},Ykn={ref:"sentinel",class:"h-10"},Wkn={key:0,class:"flex justify-center items-center p-4 text-blue-500 dark:text-blue-400"};function Kkn(t,e,n,o,r,i){const s=We("PersonalityEntry");return N(),H("div",vkn,[S("div",ykn,[S("div",bkn,[e[8]||(e[8]=S("p",{class:"text-xl font-semibold cursor-default select-none mr-3 text-blue-800 dark:text-blue-100"}," Personalities Zoo ",-1)),i.active_personality_name?(N(),H("div",Ekn,[e[7]||(e[7]=S("span",{class:"mx-2 text-blue-400 dark:text-blue-500"},"|",-1)),S("span",{class:"font-bold line-clamp-1",title:`Active: ${i.active_personality_name}`},J(i.active_personality_name),9,Skn)])):Z("",!0)]),S("div",xkn,[i.mountedPersArr.length>0?(N(),H("div",Lkn,[S("div",Ckn,[(N(!0),H(Ae,null,Ue(i.displayedMountedPersonalities,(a,l)=>(N(),H("div",{class:"relative hover:-translate-y-1 duration-300 hover:z-10 shrink-0",key:l+"-"+a.name,ref_for:!0,ref:"mountedPersonalitiesRefs"},[S("div",Akn,[S("button",{onClick:oe(c=>i.onPersonalitySelected({personality:a,isMounted:!0}),["stop"]),title:`Select: ${a.name}`},[S("img",{src:i.getPersonalityIconUrl(a.avatar),onError:e[0]||(e[0]=(...c)=>i.personalityImgPlaceholder&&i.personalityImgPlaceholder(...c)),class:Ee(["w-8 h-8 rounded-full object-cover border-2 active:scale-90 group-hover:border-blue-500 dark:group-hover:border-blue-400",i.isActivePersonality(a)?"border-blue-500 dark:border-blue-400":"border-blue-300 dark:border-blue-600"])},null,42,Okn)],8,wkn),S("button",{onClick:oe(c=>i.unmountPersonality({personality:a}),["stop"]),class:"absolute -top-1 -right-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150",title:"Unmount personality"},e[9]||(e[9]=[S("span",{class:"bg-red-500 hover:bg-red-600 text-white rounded-full p-0.5 flex items-center justify-center shadow-md"},[S("i",{"data-feather":"x",class:"w-3 h-3 stroke-current"})],-1)]),8,Mkn)])]))),128)),i.mountedPersArr.length>r.maxDisplayedMounted?(N(),H("div",{key:0,class:"w-8 h-8 rounded-full bg-blue-200 dark:bg-blue-700 border-2 border-blue-300 dark:border-blue-600 flex items-center justify-center text-xs font-semibold text-blue-600 dark:text-blue-300 cursor-default",title:`${i.mountedPersArr.length-r.maxDisplayedMounted} more mounted`}," +"+J(i.mountedPersArr.length-r.maxDisplayedMounted),9,Rkn)):Z("",!0)])])):Z("",!0),i.mountedPersArr.length>0?(N(),H("button",{key:1,onClick:e[1]||(e[1]=oe(a=>i.unmountAll(),["stop"])),class:"p-1 bg-red-100 hover:bg-red-200 dark:bg-red-900 dark:hover:bg-red-800 rounded-full border border-red-300 dark:border-red-700 active:scale-90",title:"Unmount All Personalities"},e[10]||(e[10]=[S("i",{"data-feather":"x-octagon",class:"w-4 h-4 text-red-600 dark:text-red-400 stroke-current"},null,-1)]))):Z("",!0)])]),S("div",Nkn,[S("div",Dkn,[e[12]||(e[12]=S("label",{for:"personality-search",class:"sr-only"},"Search",-1)),S("div",Ikn,[S("div",kkn,[r.searchPersonalityInProgress?(N(),H("div",Pkn,e[11]||(e[11]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 text-blue-400 animate-spin dark:text-blue-500 fill-blue-500",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})],-1)]))):(N(),H("i",Hkn))]),Ce(S("input",{type:"search",id:"personality-search",class:"block w-full p-3 pl-10 text-sm input text-blue-900 dark:text-blue-100",placeholder:"Search name, author, description...",required:"","onUpdate:modelValue":e[2]||(e[2]=a=>r.searchPersonality=a),onInput:e[3]||(e[3]=(...a)=>i.searchPersonality_func&&i.searchPersonality_func(...a))},null,544),[[Je,r.searchPersonality]]),r.searchPersonality?(N(),H("button",{key:0,onClick:e[4]||(e[4]=oe((...a)=>i.clearSearch&&i.clearSearch(...a),["stop"])),type:"button",class:"text-white absolute right-2.5 bottom-1.5 bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-xs px-3 py-1.5 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"}," Clear ")):Z("",!0)])]),S("div",$kn,[e[13]||(e[13]=S("label",{for:"persCat",class:"sr-only"},"Category",-1)),Ce(S("select",{id:"persCat","onUpdate:modelValue":e[5]||(e[5]=a=>r.selectedCategory=a),onChange:e[6]||(e[6]=(...a)=>i.applyFiltersAndSort&&i.applyFiltersAndSort(...a)),class:"block w-full p-3 text-sm input text-blue-900 dark:text-blue-100"},[S("option",Vkn,"All Categories ("+J(r.allPersonalities.length)+")",1),r.starredPaths.length>0?(N(),H("option",Bkn,"⭐ Starred ("+J(r.starredPaths.length)+")",1)):Z("",!0),r.starredPaths.length>0&&r.persCatgArr.length>0?(N(),H("option",Fkn,"──────────")):Z("",!0),(N(!0),H(Ae,null,Ue(r.persCatgArr,(a,l)=>(N(),H("option",{key:l,value:a},J(a)+" ("+J(i.getCategoryCount(a))+") ",9,Ukn))),128))],544),[[Ir,r.selectedCategory]])])]),r.isLoading&&r.allPersonalities.length===0?(N(),H("div",qkn,e[14]||(e[14]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 mr-2 text-blue-300 animate-spin dark:text-blue-600 fill-blue-500",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading personalities...",-1)]))):i.fullyFilteredPersonalities.length===0?(N(),H("div",Gkn," No personalities found"+J(r.searchPersonality?' matching "'+r.searchPersonality+'"':"")+J(r.selectedCategory&&r.selectedCategory!=="Starred"?' in category "'+r.selectedCategory+'"':"")+J(r.selectedCategory==="Starred"?" in Starred":"")+". ",1)):(N(),H("div",jkn,[S("label",zkn,J(i.getResultLabel())+": ("+J(i.fullyFilteredPersonalities.length)+") ",1),(N(),H("div",{key:r.selectedCategory+"-"+r.searchPersonality,class:"p-2 pb-0 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},[ne(O2,{name:"list"},{default:je(()=>[(N(!0),H(Ae,null,Ue(i.renderedPersonalities,(a,l)=>(N(),it(s,{key:"pers-"+(a.id||`${a.category}-${a.folder}-${l}`),personality:a,select_language:!0,full_path:a.full_path,"is-mounted":a.isMounted,"is-active":i.isActivePersonality(a),"is-processing":a.isProcessing,"is-starred":a.isStarred,"base-url":r.bUrl,onSelect:i.onPersonalitySelected,onMount:i.mountPersonality,onUnmount:i.unmountPersonality,onRemount:i.remountPersonality,onEdit:i.editPersonality,onToggleStar:i.toggleStar,onCopyToCustom:i.onCopyToCustom,onReinstall:i.onPersonalityReinstall,onSettings:i.onSettingsPersonality,onCopyPersonalityName:i.onCopyPersonalityName,onOpenFolder:i.handleOpenFolder,onError:i.personalityImgPlaceholder},null,8,["personality","full_path","is-mounted","is-active","is-processing","is-starred","base-url","onSelect","onMount","onUnmount","onRemount","onEdit","onToggleStar","onCopyToCustom","onReinstall","onSettings","onCopyPersonalityName","onOpenFolder","onError"]))),128))]),_:1})])),S("div",Ykn,[r.isLoading&&i.renderedPersonalities.length>0&&i.renderedPersonalities.length{Le.replace()})},methods:{show_settings(){this.onShowSettings(this)},formatDate(t){const e={year:"numeric",month:"short",day:"numeric"};return new Date(t).toLocaleDateString(void 0,e)},showThumbnail(){this.thumbnailVisible=!0},hideThumbnail(){this.thumbnailVisible=!1},updateThumbnailPosition(t){this.thumbnailPosition={x:t.clientX+10,y:t.clientY+10}},getImgUrl(){return Xkn+this.function_call.avatar},defaultImg(t){t.target.src=Zkn},toggleFavorite(){this.onToggleFavorite(this)},showFolder(){this.onOpenFolder(this)},toggleCopyLink(){this.onCopyfunction_callName(this)},edit(){this.onEdit(this)},copyToCustom(){this.onCopyToCustom(this)},reMount(){this.onRemount(this)},mount(){console.log("Mounting"),this.onMount(this)},unmount(){console.log("Unmounting"),console.log(this.onUnMount),this.onUnMount(this),this.mounted=!1},showHelp(){this.renderedHelp=Et(this.function_call.help),this.showHelpPopup=!0},closeHelp(){this.showHelpPopup=!1}},watch:{}},eHn=["title"],tHn={class:"flex-grow"},nHn={class:"flex items-center mb-4"},rHn=["src"],iHn={class:"font-bold text-xl text-gray-800 cursor-pointer"},oHn={class:"text-sm text-gray-600"},sHn={class:"text-sm text-gray-600"},aHn={class:"text-sm text-gray-600"},lHn={key:0,class:"text-sm text-gray-600"},cHn={key:1,class:"text-sm text-gray-600"},uHn={class:"mb-4"},dHn=["innerHTML"],THn={class:"mt-auto pt-4 border-t"},fHn={class:"flex justify-between items-center flex-wrap"},pHn=["title"],hHn=["fill"],mHn=["src"],gHn={key:1,class:"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center"},_Hn={class:"bg-white p-4 rounded-lg shadow-lg w-[500px] h-[400px] flex flex-col"},QHn={class:"flex justify-between items-center mb-2"},vHn={class:"flex-grow overflow-auto"},yHn=["innerHTML"];function bHn(t,e,n,o,r,i){const s=We("InteractiveMenu");return N(),H("div",{class:Ee(["app-card flex flex-col h-full",r.mounted?"border-primary-light":"border-transparent"]),title:n.function_call.installed?"":"Not installed"},[S("div",tHn,[S("div",nHn,[S("img",{src:i.getImgUrl(),onError:e[0]||(e[0]=a=>i.defaultImg(a)),alt:"function_call Icon",class:"w-16 h-16 rounded-full border border-gray-300 mr-4 cursor-pointer",onMouseover:e[1]||(e[1]=(...a)=>i.showThumbnail&&i.showThumbnail(...a)),onMousemove:e[2]||(e[2]=(...a)=>i.updateThumbnailPosition&&i.updateThumbnailPosition(...a)),onMouseleave:e[3]||(e[3]=(...a)=>i.hideThumbnail&&i.hideThumbnail(...a))},null,40,rHn),S("div",null,[S("h3",iHn,J(n.function_call.name),1),S("p",oHn,"Author: "+J(n.function_call.author),1),S("p",sHn,"Version: "+J(n.function_call.version),1),S("p",aHn,"Category: "+J(n.function_call.category),1),n.function_call.creation_date?(N(),H("p",lHn,"Creation Date: "+J(i.formatDate(n.function_call.creation_date)),1)):Z("",!0),n.function_call.last_update_date?(N(),H("p",cHn,"Last update Date: "+J(i.formatDate(n.function_call.last_update_date)),1)):Z("",!0)]),n.function_call.help?(N(),H("button",{key:0,onClick:e[4]||(e[4]=(...a)=>i.showHelp&&i.showHelp(...a)),class:"ml-2 text-blue-500 hover:text-blue-600 transition duration-300 ease-in-out",title:"Help"},e[9]||(e[9]=[S("i",{"data-feather":"help-circle",class:"h-6 w-6"},null,-1)]))):Z("",!0)]),S("div",uHn,[e[10]||(e[10]=S("h4",{class:"font-semibold mb-1 text-gray-700"},"Description:",-1)),S("p",{class:"text-sm text-gray-600 h-20 overflow-y-auto",innerHTML:n.function_call.description},null,8,dHn)])]),S("div",THn,[S("div",fHn,[S("button",{onClick:e[5]||(e[5]=(...a)=>i.toggleFavorite&&i.toggleFavorite(...a)),class:"text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out",title:t.isFavorite?"Remove from favorites":"Add to favorites"},[(N(),H("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:t.isFavorite?"currentColor":"none",viewBox:"0 0 24 24",stroke:"currentColor"},e[11]||(e[11]=[S("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,hHn))],8,pHn),S("button",{onClick:e[6]||(e[6]=(...a)=>i.showFolder&&i.showFolder(...a)),class:"text-purple-500 hover:text-purple-600 transition duration-300 ease-in-out",title:"Show Folder"},e[12]||(e[12]=[S("i",{"data-feather":"folder",class:"h-6 w-6"},null,-1)])),r.mounted?(N(),H("button",{key:0,onClick:e[7]||(e[7]=(...a)=>i.show_settings&&i.show_settings(...a)),class:"text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Settings"},e[13]||(e[13]=[S("i",{"data-feather":"settings",class:"h-6 w-6"},null,-1)]))):Z("",!0),ne(s,{commands:i.commandsList,force_position:2,title:"Menu",class:"text-gray-500 hover:text-gray-600 transition duration-300 ease-in-out"},null,8,["commands"])])]),r.thumbnailVisible?(N(),H("div",{key:0,style:Jt({top:r.thumbnailPosition.y+"px",left:r.thumbnailPosition.x+"px"}),class:"fixed z-50 w-20 h-20 rounded-full overflow-hidden"},[S("img",{src:i.getImgUrl(),class:"w-full h-full object-fill"},null,8,mHn)],4)):Z("",!0),r.showHelpPopup?(N(),H("div",gHn,[S("div",_Hn,[S("div",QHn,[e[14]||(e[14]=S("h2",{class:"text-lg font-bold"},"Help",-1)),S("button",{onClick:e[8]||(e[8]=(...a)=>i.closeHelp&&i.closeHelp(...a)),class:"text-red-500 hover:text-red-600"},"Close")]),S("div",vHn,[S("div",{innerHTML:r.renderedHelp},null,8,yHn)])])])):Z("",!0)],10,eHn)}const EHn=ze(Jkn,[["render",bHn]]),SHn="/assets/default_function-CyfcuNmo.png";function xHn(t,e){let n;return function(...r){const i=()=>{clearTimeout(n),t.apply(this,r)};clearTimeout(n),n=setTimeout(i,e)}}const LHn={name:"FunctionCallsZoo",components:{FunctionEntry:EHn},props:{config:{type:Object,required:!0},api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},show_universal_form:{type:Function,required:!0},show_message_box:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["update:setting"],data(){return{allFunctions:[],categoriesFunc:[],filteredFunctions:[],pagedFunctions:[],isLoadingFunctions:!1,isSearchingFunc:!1,searchTermFunc:"",selectedCategoryFunc:"",sortOptionFunc:"mounted",itemsPerPageFunc:15,currentPageFunc:1,maxDisplayedMountedFunc:7,functionEntryRefs:{},observerFunc:null,defaultIcon:SHn,axiosBaseUrl:fe.defaults.baseURL||""}},computed:{mountedFunctionPathsSet(){var t;return new Set(((t=this.config)==null?void 0:t.mounted_functions)||[])},mountedFunctions(){return this.allFunctions.filter(t=>this.mountedFunctionPathsSet.has(t.full_path))},displayedMountedFunctions(){return[...this.mountedFunctions].sort((e,n)=>(e.name||"").localeCompare(n.name||"")).slice(0,this.maxDisplayedMountedFunc)},hasMoreFunctionsToLoad(){return this.pagedFunctions.length{const r=e.has(o.full_path);o.isMounted!==r&&(o.isMounted=r,n=!0)}),n&&(console.log("Watcher: Re-applying filters and sort due to mounted status change."),this.resetAndReloadFunctions()),this.featherReplace()},deep:!0},searchTermFunc(){this.debouncedResetAndReload()},selectedCategoryFunc(){this.debouncedResetAndReload()},sortOptionFunc(){this.debouncedResetAndReload()},allFunctions:{handler(){console.log("Watcher: allFunctions list changed. Triggering initial load."),this.resetAndReloadFunctions()}}},methods:{getFunctionIcon(t){return t?t.startsWith("http://")||t.startsWith("https://")||t.startsWith("/")?t.startsWith("/")?`${this.axiosBaseUrl}${t}`:t:`${this.axiosBaseUrl}/${t}`:this.defaultIcon},imgPlaceholder(t){t.target.src=this.defaultIcon},featherReplace(){this.$nextTick(()=>{try{Le.replace()}catch(t){console.error("Feather replace error:",t)}})},setFunctionRef(t,e){e&&(this.functionEntryRefs[t]=e)},async fetchFunctionsAndCategories(){if(!this.isLoadingFunctions){this.isLoadingFunctions=!0,console.log("Fetching functions and categories...");try{const t=await this.api_get_req("list_function_calls"),e=(t==null?void 0:t.function_calls)||[],n=new Set(e.map(o=>o.category).filter(Boolean));this.categoriesFunc=Array.from(n).sort(),this.allFunctions=e.map(o=>{const r=`${o.category}/${o.name}`,i=o.id||r;return{...o,full_path:r,isMounted:!1,id:i,isProcessing:!1}}),console.log(`Fetched ${this.allFunctions.length} total functions.`),this.$nextTick(()=>{var o;(o=this.config)!=null&&o.mounted_functions&&this.watch["config.mounted_functions"].handler.call(this,this.config.mounted_functions)})}catch(t){this.show_toast("Failed to load functions list.",4,!1),console.error("Error fetching functions:",t),this.allFunctions=[],this.categoriesFunc=[]}finally{this.isLoadingFunctions=!1}}},applyFiltersAndSortFunc(){console.time("FilterSortFunctions");let t=[...this.allFunctions];if(this.selectedCategoryFunc&&(t=t.filter(e=>e.category===this.selectedCategoryFunc)),this.searchTermFunc){const e=this.searchTermFunc.toLowerCase();t=t.filter(n=>{var c,u,d,f,T;const o=(c=n.name)==null?void 0:c.toLowerCase().includes(e),r=(u=n.author)==null?void 0:u.toLowerCase().includes(e),i=(d=n.description)==null?void 0:d.toLowerCase().includes(e),s=(f=n.category)==null?void 0:f.toLowerCase().includes(e),a=(T=n.full_path)==null?void 0:T.toLowerCase().includes(e),l=Array.isArray(n.keywords)?n.keywords.some(h=>h.toLowerCase().includes(e)):!1;return o||r||i||s||a||l})}t.sort((e,n)=>{if(this.sortOptionFunc==="mounted"){if(e.isMounted&&!n.isMounted)return-1;if(!e.isMounted&&n.isMounted)return 1}switch(this.sortOptionFunc!=="mounted"?this.sortOptionFunc:"name"){case"name":return(e.name||"").localeCompare(n.name||"");case"author":return(e.author||"").localeCompare(n.author||"");case"category":return(e.category||"").localeCompare(n.category||"");default:return 0}}),this.filteredFunctions=t,console.timeEnd("FilterSortFunctions"),console.log(`Filtered/Sorted functions: ${this.filteredFunctions.length}`)},resetAndReloadFunctions(){this.currentPageFunc=1,this.pagedFunctions=[],this.applyFiltersAndSortFunc(),this.$nextTick(()=>{this.loadMoreFunctions()})},debouncedResetAndReload:xHn(function(){this.isSearchingFunc=!0,this.resetAndReloadFunctions(),setTimeout(()=>{this.isSearchingFunc=!1},100)},300),loadMoreFunctions(){if(this.isLoadingFunctions||this.isSearchingFunc||!this.hasMoreFunctionsToLoad)return;console.log(`Loading page ${this.currentPageFunc}`);const t=(this.currentPageFunc-1)*this.itemsPerPageFunc,e=t+this.itemsPerPageFunc,n=this.filteredFunctions.slice(t,e),o=new Set(this.pagedFunctions.map(i=>i.id||i.full_path)),r=n.filter(i=>!o.has(i.id||i.full_path));r.length>0?(this.pagedFunctions.push(...r),this.currentPageFunc++,this.featherReplace()):n.length>0&&console.log("Load more triggered but items already seem to be loaded.")},setFunctionProcessing(t,e){const n=i=>{i&&(i.isProcessing=e)},o=this.allFunctions.findIndex(i=>(i.id||i.full_path)===t);n(this.allFunctions[o]);const r=this.pagedFunctions.findIndex(i=>(i.id||i.full_path)===t);n(this.pagedFunctions[r])},async handleMount(t){if(t.isMounted||t.isProcessing)return;const e=t.id||t.full_path;this.setFunctionProcessing(e,!0),this.show_toast(`Mounting ${t.name}...`,3,!0);try{const n=await this.api_post_req("mount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});if(n&&n.status){this.show_toast(`${t.name} mounted successfully.`,4,!0);const o=[...this.mountedFunctionPathsSet,t.full_path];this.$emit("update:setting",{key:"mounted_functions",value:o})}else this.show_toast(`Failed to mount ${t.name}: ${(n==null?void 0:n.error)||"Error"}`,4,!1)}catch(n){this.show_toast(`Error mounting ${t.name}: ${n.message||n}`,4,!1),console.error("Mount error:",n)}finally{this.setFunctionProcessing(e,!1)}},async handleUnmount(t){var n;if(!t.isMounted||t.isProcessing)return;const e=t.id||t.full_path;this.setFunctionProcessing(e,!0),this.show_toast(`Unmounting ${t.name}...`,3,!0);try{const o=await this.api_post_req("unmount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});if(o&&o.status){this.show_toast(`${t.name} unmounted.`,4,!0);const r=(((n=this.config)==null?void 0:n.mounted_functions)||[]).filter(i=>i!==t.full_path);this.$emit("update:setting",{key:"mounted_functions",value:r})}else this.show_toast(`Failed to unmount ${t.name}: ${(o==null?void 0:o.error)||"Error"}`,4,!1)}catch(o){this.show_toast(`Error unmounting ${t.name}: ${o.message||o}`,4,!1),console.error("Unmount error:",o)}finally{this.setFunctionProcessing(e,!1)}},async unmountAll(){if(!(this.mountedFunctions.length===0||!await this.show_yes_no_dialog(`Unmount all ${this.mountedFunctions.length} functions?`,"Unmount All","Cancel"))){this.show_toast("Unmounting all functions...",3,!0),this.mountedFunctions.forEach(e=>this.setFunctionProcessing(e.id||e.full_path,!0));try{const e=await this.api_post_req("unmount_all_functions",{client_id:this.client_id});e&&e.status?(this.show_toast("All functions unmounted.",4,!0),this.$emit("update:setting",{key:"mounted_functions",value:[]})):(this.show_toast(`Failed to unmount all: ${(e==null?void 0:e.error)||"Error"}`,4,!1),this.mountedFunctions.forEach(n=>this.setFunctionProcessing(n.id||n.full_path,!1)))}catch(e){this.show_toast(`Error unmounting all: ${e.message||e}`,4,!1),console.error("Unmount all error:",e),this.mountedFunctions.forEach(n=>this.setFunctionProcessing(n.id||n.full_path,!1))}}},async handleRemount(t){const e=t.id||t.full_path;if(!t.isProcessing){this.setFunctionProcessing(e,!0),this.show_toast(`Remounting ${t.name}...`,3,!0);try{let n=[...this.config.mounted_functions||[]];if(n.includes(t.full_path)){const i=await this.api_post_req("unmount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});if(!i||!i.status){this.show_toast(`Failed to unmount ${t.name} during remount. Aborting.`,4,!1),this.setFunctionProcessing(e,!1);return}n=n.filter(s=>s!==t.full_path),this.$emit("update:setting",{key:"mounted_functions",value:n}),await be(),console.log("Remount Step 1: Unmounted and emitted.")}const r=await this.api_post_req("mount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});r&&r.status?(this.show_toast(`${t.name} remounted successfully.`,4,!0),n.includes(t.full_path)||n.push(t.full_path),this.$emit("update:setting",{key:"mounted_functions",value:n}),console.log("Remount Step 2: Mounted and emitted.")):this.show_toast(`Failed to mount ${t.name} during remount: ${(r==null?void 0:r.error)||"Error"}`,4,!1)}catch(n){this.show_toast(`Error remounting ${t.name}: ${n.message||n}`,4,!1),console.error("Remount error:",n)}finally{this.setFunctionProcessing(e,!1)}}},async handleSettings(t){if(t.isProcessing)return;const e=t.id||t.full_path;this.setFunctionProcessing(e,!0);try{const n=await this.api_post_req("get_function_call_settings",{client_id:this.client_id,category:t.category,name:t.name});if(n&&typeof n=="object"&&Object.keys(n).length>0){const o=await this.show_universal_form(n,`Function Settings - ${t.name}`,"Save","Cancel");if(o!=null){const r=await this.api_post_req("set_function_call_settings",{client_id:this.client_id,category:t.category,name:t.name,settings:o});r&&r.status?this.show_toast(`Settings for ${t.name} updated.`,4,!0):this.show_toast(`Failed to update settings for ${t.name}: ${(r==null?void 0:r.error)||"Error"}`,4,!1)}else this.show_toast(`Settings update for ${t.name} cancelled.`,3,!0)}else n&&typeof n=="object"&&Object.keys(n).length===0?this.show_message_box(`Function "${t.name}" has no configurable settings.`):this.show_toast(`Could not retrieve settings for ${t.name}: ${(n==null?void 0:n.error)||"Invalid response"}`,4,!1)}catch(n){this.show_toast(`Error accessing settings for ${t.name}: ${n.message||n}`,4,!1),console.error("Settings error:",n)}finally{this.setFunctionProcessing(e,!1)}},async handleEdit(t){this.show_toast(`Opening folder containing "${t.name}" for editing...`,3,!0),await this.handleOpenFolder(t)},async handleCopyToCustom(t){if(!await this.show_yes_no_dialog(`Copy "${t.name}" from "${t.category}" to your 'custom_functions' folder?`,"Copy","Cancel")||t.isProcessing)return;const n=t.id||t.full_path;this.setFunctionProcessing(n,!0);try{const o=await this.api_post_req("copy_to_custom_functions",{client_id:this.client_id,category:t.category,name:t.name});o&&o.status?(this.show_message_box(`Function "${t.name}" copied to 'custom_functions'. The list will refresh shortly.`),await this.fetchFunctionsAndCategories()):this.show_toast(`Failed to copy ${t.name}: ${(o==null?void 0:o.error)||"Already exists in custom?"}`,4,!1)}catch(o){this.show_toast(`Error copying ${t.name}: ${o.message||o}`,4,!1),console.error("Copy to custom error:",o)}finally{this.setFunctionProcessing(n,!1)}},handleCopyName(t){navigator.clipboard.writeText(t.name).then(()=>this.show_toast(`Copied name: ${t.name}`,3,!0)).catch(e=>{this.show_toast("Failed to copy name to clipboard.",3,!1),console.error("Clipboard copy failed:",e)})},async handleOpenFolder(t){try{await this.api_post_req("open_function_folder",{client_id:this.client_id,category:t.category,name:t.name})}catch(e){this.show_toast(`Error opening folder for ${t.name}: ${e.message||e}`,4,!1),console.error("Open folder error:",e)}},scrollToFunction(t){const e=t.id||t.full_path,n=this.functionEntryRefs[e];if(n&&n.$el){const o=n.$el;o.scrollIntoView({behavior:"smooth",block:"center"}),o.classList.add("ring-2","ring-offset-2","ring-blue-500","dark:ring-offset-gray-800","transition-all","duration-1000","ease-out"),setTimeout(()=>{o.classList.remove("ring-2","ring-offset-2","ring-blue-500","dark:ring-offset-gray-800","transition-all","duration-1000","ease-out")},1500)}else console.warn(`Could not find ref $el to scroll to for function ID: ${e}. Is it loaded?`),this.hasMoreFunctionsToLoad&&!this.pagedFunctions.some(o=>(o.id||o.full_path)===e)?(this.show_toast(`Function ${t.name} not visible, attempting to load more...`,3,!0),this.loadMoreFunctions(),setTimeout(()=>this.scrollToFunction(t),500)):this.show_toast(`Could not scroll to ${t.name}.`,3,!1)},setupIntersectionObserverFunc(){this.disconnectIntersectionObserver();const t={root:null,rootMargin:"100px",threshold:.1};this.observerFunc=new IntersectionObserver(n=>{n.forEach(o=>{o.isIntersecting&&this.hasMoreFunctionsToLoad&&this.loadMoreFunctions()})},t);const e=this.$refs.loadMoreTriggerFunc;e?(this.observerFunc.observe(e),console.log("IntersectionObserver setup complete.")):this.$nextTick(()=>{const n=this.$refs.loadMoreTriggerFunc;n?(this.observerFunc.observe(n),console.log("IntersectionObserver setup complete (nextTick).")):console.error("Load more trigger element not found for IntersectionObserver setup.")})},disconnectIntersectionObserver(){if(this.observerFunc){console.log("Disconnecting IntersectionObserver.");const t=this.$refs.loadMoreTriggerFunc;if(t)try{this.observerFunc.unobserve(t)}catch(e){console.warn("Error unobserving trigger:",e)}this.observerFunc.disconnect(),this.observerFunc=null}}},mounted(){console.log("FunctionCallsZoo Mounted."),this.fetchFunctionsAndCategories(),this.featherReplace(),this.$nextTick(()=>{this.setupIntersectionObserverFunc()})},beforeUpdate(){this.functionEntryRefs={}},updated(){this.featherReplace(),this.$nextTick(()=>{const t=this.$refs.loadMoreTriggerFunc;if(t&&this.observerFunc&&!this.observerFunc.takeRecords().some(e=>e.target===t)){console.warn("IntersectionObserver detached from trigger, re-observing.");try{this.observerFunc.unobserve(t)}catch{}this.observerFunc.observe(t)}else t&&!this.observerFunc&&(console.warn("IntersectionObserver lost, re-setting up."),this.setupIntersectionObserverFunc())})},unmounted(){console.log("FunctionCallsZoo Unmounted."),this.disconnectIntersectionObserver()}},CHn={class:"user-settings-panel space-y-6 p-4 md:p-6 rounded-lg shadow-md bg-white dark:bg-gray-800"},AHn={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b border-blue-300 dark:border-blue-600 pb-3 mb-4"},wHn={class:"flex flex-col items-end"},OHn={class:"flex items-center flex-wrap gap-2 text-sm font-medium mb-1"},MHn={key:0,class:"text-blue-500 dark:text-blue-500 italic text-xs"},RHn={key:1,class:"flex -space-x-3 items-center"},NHn=["src","title","onClick"],DHn=["onClick"],IHn=["title"],kHn={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4 items-center"},HHn={class:"relative md:col-span-1"},PHn={key:0,class:"absolute inset-y-0 right-0 pr-3 flex items-center"},$Hn={class:"md:col-span-1"},VHn=["value"],BHn={class:"md:col-span-1"},FHn={key:0,class:"flex justify-center items-center p-10 text-blue-500 dark:text-blue-400"},UHn={key:1,class:"text-center text-blue-500 dark:text-blue-400 py-10"},qHn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 scrollbar-thin scrollbar-thumb-blue-300 scrollbar-track-blue-100 dark:scrollbar-thumb-blue-700 dark:scrollbar-track-blue-900",ref:"scrollContainerFunc"},GHn={ref:"loadMoreTriggerFunc",class:"h-10"},jHn={key:0,class:"flex justify-center items-center text-center text-blue-500 dark:text-blue-400 py-4"};function zHn(t,e,n,o,r,i){const s=We("FunctionEntry");return N(),H("div",CHn,[S("div",AHn,[e[9]||(e[9]=S("h2",{class:"text-2xl font-semibold text-blue-800 dark:text-blue-100 mb-2 sm:mb-0"}," Function Calls Zoo ",-1)),S("div",wHn,[S("div",OHn,[e[7]||(e[7]=S("span",{class:"text-blue-600 dark:text-blue-400"},"Mounted:",-1)),i.mountedFunctions.length===0?(N(),H("div",MHn,"None")):(N(),H("div",RHn,[(N(!0),H(Ae,null,Ue(i.displayedMountedFunctions,(a,l)=>(N(),H("div",{key:`mounted-${a.id||a.full_path||l}`,class:"relative group"},[S("img",{src:i.getFunctionIcon(a.icon),onError:e[0]||(e[0]=(...c)=>i.imgPlaceholder&&i.imgPlaceholder(...c)),class:"w-7 h-7 rounded-full object-cover ring-2 ring-white dark:ring-gray-700 cursor-pointer hover:ring-blue-500 dark:hover:ring-blue-400 transition-all",title:`${a.name} (${a.category})`,onClick:c=>i.scrollToFunction(a)},null,40,NHn),S("button",{onClick:oe(c=>i.handleUnmount(a),["stop"]),class:"absolute -top-1 -right-1 p-0.5 rounded-full bg-red-600 text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-1 dark:focus:ring-offset-gray-900",title:"Unmount"},e[6]||(e[6]=[S("i",{"data-feather":"x",class:"w-3 h-3 stroke-current"},null,-1)]),8,DHn)]))),128)),i.mountedFunctions.length>r.maxDisplayedMountedFunc?(N(),H("div",{key:0,class:"w-7 h-7 rounded-full bg-blue-200 dark:bg-blue-700 ring-2 ring-white dark:ring-gray-700 flex items-center justify-center text-xs font-semibold text-blue-600 dark:text-blue-300",title:`${i.mountedFunctions.length-r.maxDisplayedMountedFunc} more mounted`}," +"+J(i.mountedFunctions.length-r.maxDisplayedMountedFunc),9,IHn)):Z("",!0)]))]),i.mountedFunctions.length>0?(N(),H("button",{key:0,onClick:e[1]||(e[1]=(...a)=>i.unmountAll&&i.unmountAll(...a)),class:"btn btn-sm bg-red-600 hover:bg-red-700 text-white text-xs mt-1 focus:ring-red-300 dark:focus:ring-red-600"},e[8]||(e[8]=[S("i",{"data-feather":"x-octagon",class:"w-3 h-3 mr-1 stroke-current"},null,-1),Oe("Unmount All ")]))):Z("",!0)])]),e[18]||(e[18]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400"}," Mount functions to grant the AI specific capabilities and tools it can use during conversations. Requires a model trained for function calling. ",-1)),S("div",kHn,[S("div",HHn,[e[11]||(e[11]=S("div",{class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},[S("i",{"data-feather":"search",class:"w-5 h-5 text-blue-400 dark:text-blue-500"})],-1)),Ce(S("input",{type:"search","onUpdate:modelValue":e[2]||(e[2]=a=>r.searchTermFunc=a),placeholder:"Search functions...",class:"input pl-10 w-full placeholder:text-blue-400 dark:placeholder:text-blue-500",onInput:e[3]||(e[3]=(...a)=>t.debounceSearchFunc&&t.debounceSearchFunc(...a))},null,544),[[Je,r.searchTermFunc]]),r.isSearchingFunc?(N(),H("div",PHn,e[10]||(e[10]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 text-blue-400 dark:text-blue-500 animate-spin fill-blue-500 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1)]))):Z("",!0)]),S("div",$Hn,[e[13]||(e[13]=S("label",{for:"func-category",class:"sr-only"},"Filter by Category",-1)),Ce(S("select",{id:"func-category","onUpdate:modelValue":e[4]||(e[4]=a=>r.selectedCategoryFunc=a),class:"input w-full"},[e[12]||(e[12]=S("option",{value:""},"All Categories",-1)),(N(!0),H(Ae,null,Ue(r.categoriesFunc,a=>(N(),H("option",{key:a,value:a},J(a),9,VHn))),128))],512),[[Ir,r.selectedCategoryFunc]])]),S("div",BHn,[e[15]||(e[15]=S("label",{for:"func-sort",class:"sr-only"},"Sort functions by",-1)),Ce(S("select",{id:"func-sort","onUpdate:modelValue":e[5]||(e[5]=a=>r.sortOptionFunc=a),class:"input w-full"},e[14]||(e[14]=[S("option",{value:"mounted"},"Sort by Mounted",-1),S("option",{value:"name"},"Sort by Name",-1),S("option",{value:"author"},"Sort by Author",-1),S("option",{value:"category"},"Sort by Category",-1)]),512),[[Ir,r.sortOptionFunc]])])]),r.isLoadingFunctions?(N(),H("div",FHn,e[16]||(e[16]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 mr-2 text-blue-300 dark:text-blue-600 animate-spin fill-blue-500 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading functions...",-1)]))):r.pagedFunctions.length===0&&r.filteredFunctions.length===0?(N(),H("div",UHn," No functions found"+J(r.searchTermFunc?' matching "'+r.searchTermFunc+'"':"")+J(r.selectedCategoryFunc?' in category "'+r.selectedCategoryFunc+'"':"")+". ",1)):Z("",!0),S("div",qHn,[(N(!0),H(Ae,null,Ue(r.pagedFunctions,a=>(N(),it(s,{key:a.id||a.full_path,ref_for:!0,ref:l=>i.setFunctionRef(a.id||a.full_path,l),function_call:a,"is-mounted":a.isMounted,"is-processing":a.isProcessing,"get-icon-url":i.getFunctionIcon,"on-img-error":i.imgPlaceholder,onMount:l=>i.handleMount(a),onUnmount:l=>i.handleUnmount(a),onRemount:l=>i.handleRemount(a),onShowSettings:l=>i.handleSettings(a),onEdit:l=>i.handleEdit(a),onCopyToCustom:l=>i.handleCopyToCustom(a),onCopyName:l=>i.handleCopyName(a),onOpenFolder:l=>i.handleOpenFolder(a)},null,8,["function_call","is-mounted","is-processing","get-icon-url","on-img-error","onMount","onUnmount","onRemount","onShowSettings","onEdit","onCopyToCustom","onCopyName","onOpenFolder"]))),128))],512),S("div",GHn,[i.hasMoreFunctionsToLoad&&!r.isLoadingFunctions&&!r.isSearchingFunc?(N(),H("div",jHn,e[17]||(e[17]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 mr-2 text-blue-300 dark:text-blue-600 animate-spin fill-blue-500 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading more...",-1)]))):Z("",!0)],512)])}const HO=ze(LHn,[["render",zHn],["__scopeId","data-v-8ff7e3ea"]]),YHn={name:"ModelGenerationParameters",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1}},emits:["update:setting"],computed:{isDisabled(){return!this.$store.state.config.override_personality_model_parameters}},methods:{updateValue(t,e){let n=e;t!=="seed"&&typeof e!="boolean"?(n=Number(e),isNaN(n)&&(console.warn(`Invalid number input for ${t}:`,e),n=e)):t==="seed"&&(n=parseInt(e),isNaN(n)&&String(e)!=="-"?n=-1:String(e)==="-"?n="-":n<-1&&(n=-1)),!(t!=="seed"&&typeof n=="number"&&isNaN(n))&&(t==="seed"&&n==="-"||this.$emit("update:setting",{key:t,value:n}))},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e})},replaceFeatherIcons(){be(()=>{Le.replace()})}},mounted(){this.replaceFeatherIcons()},updated(){this.replaceFeatherIcons()}},WHn={class:"user-settings-panel space-y-6"},KHn={class:"toggle-item !justify-start gap-4 border border-blue-200 dark:border-blue-700 rounded-lg p-3 panels-color"},ZHn={class:"setting-item"},XHn=["value","disabled"],JHn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},ePn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},tPn=["value","disabled"],nPn=["value","disabled"],rPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},iPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},oPn=["value","disabled"],sPn=["value","disabled"],aPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},lPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},cPn=["value","disabled"],uPn=["value","disabled"],dPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},TPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},fPn=["value","disabled"],pPn=["value","disabled"],hPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},mPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},gPn=["value","disabled"],_Pn=["value","disabled"],QPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},vPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},yPn=["value","disabled"],bPn=["value","disabled"];function EPn(t,e,n,o,r,i){const s=We("ToggleSwitch");return N(),H("div",WHn,[e[22]||(e[22]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Model Generation Parameters ",-1)),e[23]||(e[23]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400 mb-4"}," Adjust the core parameters that influence how the AI generates text. These settings can be overridden by specific personalities unless the option below is checked. ",-1)),S("div",KHn,[ne(s,{id:"override_personality_model_parameters",checked:t.$store.state.config.override_personality_model_parameters,"onUpdate:checked":e[0]||(e[0]=a=>i.updateBoolean("override_personality_model_parameters",a))},null,8,["checked"]),e[14]||(e[14]=S("label",{for:"override_personality_model_parameters",class:"toggle-label !flex-none"},[Oe(" Override Personality Parameters "),S("span",{class:"toggle-description"},"Force the use of these global parameters, ignoring any settings defined within the selected personality.")],-1))]),S("div",{class:Ee(["space-y-5 pt-4",i.isDisabled?"opacity-50 pointer-events-none":""])},[S("div",ZHn,[e[15]||(e[15]=tr('',1)),S("input",{type:"number",id:"seed",value:t.$store.state.config.seed,onInput:e[1]||(e[1]=a=>i.updateValue("seed",parseInt(a.target.value))),class:"input-sm w-full md:w-32",step:"1",placeholder:"-1",disabled:i.isDisabled},null,40,XHn)]),S("div",JHn,[e[16]||(e[16]=tr('',1)),S("div",ePn,[S("input",{id:"temperature-range",value:t.$store.state.config.temperature,onInput:e[2]||(e[2]=a=>i.updateValue("temperature",parseFloat(a.target.value))),type:"range",min:"0",max:"2",step:"0.01",class:"range-input flex-grow",disabled:i.isDisabled},null,40,tPn),S("input",{id:"temperature-number",value:t.$store.state.config.temperature,onInput:e[3]||(e[3]=a=>i.updateValue("temperature",parseFloat(a.target.value))),type:"number",min:"0",max:"2",step:"0.01",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,nPn)])]),S("div",rPn,[e[17]||(e[17]=tr('',1)),S("div",iPn,[S("input",{id:"n_predict-range",value:t.$store.state.config.n_predict,onInput:e[4]||(e[4]=a=>i.updateValue("n_predict",parseInt(a.target.value))),type:"range",min:"32",max:"8192",step:"32",class:"range-input flex-grow",disabled:i.isDisabled},null,40,oPn),S("input",{id:"n_predict-number",value:t.$store.state.config.n_predict,onInput:e[5]||(e[5]=a=>i.updateValue("n_predict",parseInt(a.target.value))),type:"number",min:"32",max:"8192",step:"32",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,sPn)])]),S("div",aPn,[e[18]||(e[18]=tr('',1)),S("div",lPn,[S("input",{id:"top_k-range",value:t.$store.state.config.top_k,onInput:e[6]||(e[6]=a=>i.updateValue("top_k",parseInt(a.target.value))),type:"range",min:"0",max:"100",step:"1",class:"range-input flex-grow",disabled:i.isDisabled},null,40,cPn),S("input",{id:"top_k-number",value:t.$store.state.config.top_k,onInput:e[7]||(e[7]=a=>i.updateValue("top_k",parseInt(a.target.value))),type:"number",min:"0",max:"100",step:"1",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,uPn)])]),S("div",dPn,[e[19]||(e[19]=tr('',1)),S("div",TPn,[S("input",{id:"top_p-range",value:t.$store.state.config.top_p,onInput:e[8]||(e[8]=a=>i.updateValue("top_p",parseFloat(a.target.value))),type:"range",min:"0",max:"1",step:"0.01",class:"range-input flex-grow",disabled:i.isDisabled},null,40,fPn),S("input",{id:"top_p-number",value:t.$store.state.config.top_p,onInput:e[9]||(e[9]=a=>i.updateValue("top_p",parseFloat(a.target.value))),type:"number",min:"0",max:"1",step:"0.01",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,pPn)])]),S("div",hPn,[e[20]||(e[20]=tr('',1)),S("div",mPn,[S("input",{id:"repeat_penalty-range",value:t.$store.state.config.repeat_penalty,onInput:e[10]||(e[10]=a=>i.updateValue("repeat_penalty",parseFloat(a.target.value))),type:"range",min:"0.5",max:"2.0",step:"0.01",class:"range-input flex-grow",disabled:i.isDisabled},null,40,gPn),S("input",{id:"repeat_penalty-number",value:t.$store.state.config.repeat_penalty,onInput:e[11]||(e[11]=a=>i.updateValue("repeat_penalty",parseFloat(a.target.value))),type:"number",min:"0.5",max:"2.0",step:"0.01",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,_Pn)])]),S("div",QPn,[e[21]||(e[21]=tr('',1)),S("div",vPn,[S("input",{id:"repeat_last_n-range",value:t.$store.state.config.repeat_last_n,onInput:e[12]||(e[12]=a=>i.updateValue("repeat_last_n",parseInt(a.target.value))),type:"range",min:"0",max:"512",step:"8",class:"range-input flex-grow",disabled:i.isDisabled},null,40,yPn),S("input",{id:"repeat_last_n-number",value:t.$store.state.config.repeat_last_n,onInput:e[13]||(e[13]=a=>i.updateValue("repeat_last_n",parseInt(a.target.value))),type:"number",min:"0",max:"512",step:"8",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,bPn)])])],2)])}const PO=ze(YHn,[["render",EPn],["__scopeId","data-v-99271729"]]);fe.defaults.baseURL="/";const R6={accept:"application/json","Content-Type":"application/json"},SPn={name:"SettingsView",components:{SettingsSidebar:dCn,SystemStatusSettings:LO,SmartRoutingSettings:CO,MainConfigSettings:AO,DataManagementSettings:wO,InternetSettings:OO,ServicesZooSettings:MO,BindingZooSettings:NO,ModelsZooSettings:DO,PersonalitiesZooSettings:kO,FunctionCallsZooSettings:HO,ModelConfigSettings:PO},data(){return{isLoading:!1,settingsChanged:!1,has_updates:!1,activeSection:"system_status",loading_text:"Loading settings...",sections:[{id:"system_status",name:"System Status",icon:"activity",component:LO},{id:"main_config",name:"Main Config",icon:"sliders",component:AO},{id:"smart_routing",name:"Smart Routing",icon:"git-branch",component:CO},{id:"data_management",name:"Data Management",icon:"database",component:wO},{id:"internet",name:"Internet",icon:"wifi",component:OO},{id:"services_zoo",name:"Services Zoo",icon:"server",component:MO},{id:"model_config",name:"Model Parameters",icon:"cpu",component:PO},{id:"binding_zoo",name:"Bindings",icon:"link",component:NO},{id:"models_zoo",name:"Models",icon:"package",component:DO},{id:"personalities_zoo",name:"Personalities",icon:"users",component:kO},{id:"function_calls_zoo",name:"Function Calls",icon:"tool",component:HO}]}},computed:{currentComponent(){const t=this.sections.find(e=>e.id===this.activeSection);return t?t.component:null}},watch:{},methods:{setActiveSection(t){this.settingsChanged?this.$store.state.yesNoDialog.askQuestion("You have unsaved changes in the current section. Do you want to discard them and switch?","Discard Changes","Stay").then(e=>{e&&(this.cancelConfiguration(!1),this.activeSection=t)}):this.activeSection=t},handleSettingUpdate(t){const e=t.key.split(".");let n=this.$store.state.config;try{for(;e.length>1;){const i=e.shift(),s=i.match(/(\w+)\[(\d+)\]/);if(s?n=n[s[1]][parseInt(s[2])]:n=n[i],n==null){console.error("Invalid key path segment:",i,"in",t.key),this.$store.state.toast.showToast(`Error updating setting: Invalid path ${t.key}`,4,!1);return}}const o=e[0],r=o.match(/(\w+)\[(\d+)\]/);if(r){if(n[r[1]]===void 0||n[r[1]][parseInt(r[2])]===void 0){console.error("Invalid final key path segment:",o,"in",t.key),this.$store.state.toast.showToast(`Error updating setting: Invalid path ${t.key}`,4,!1);return}n[r[1]][parseInt(r[2])]=t.value}else{if(n[o]===void 0){console.error("Invalid final key path segment:",o,"in",t.key),this.$store.state.toast.showToast(`Error updating setting: Invalid path ${t.key}`,4,!1);return}n[o]=t.value}console.log("Setting updated in parent:",t.key,t.value),this.settingsChanged=!0}catch(o){console.error("Error processing setting update:",t.key,o),this.$store.state.toast.showToast(`Error updating setting ${t.key}: ${o.message}`,4,!1)}},handleSettingsChanged(){console.log("settings changed"),this.settingsChanged=!0},async refreshConfig(){this.isLoading=!0,this.loading_text="Refreshing configuration...";try{await this.$store.dispatch("refreshConfig"),this.settingsChanged=!1}catch(t){console.error("Failed to refresh config:",t),this.$store.state.toast.showToast("Failed to load configuration.",4,!1)}finally{this.isLoading=!1,be(()=>{Le.replace()})}},async applyConfiguration(){this.isLoading=!0,this.loading_text="Applying settings...";try{const t=await fe.post("/apply_settings",{client_id:this.$store.state.client_id,config:this.$store.state.config},{headers:R6});t.data.status?(this.$store.state.toast.showToast("Configuration applied successfully.",4,!0),await this.refreshConfig()):this.$store.state.toast.showToast(`Configuration apply failed: ${t.data.error||"Unknown error"}`,4,!1)}catch(t){console.error("Error applying settings:",t),this.$store.state.toast.showToast(`Error applying settings: ${t.message||t}`,4,!1)}finally{this.isLoading=!1}},async cancelConfiguration(t=!0){t?await this.refreshConfig():this.settingsChanged=!1},async saveConfiguration(){this.isLoading=!0,this.loading_text="Saving settings to disk...";try{const t=await fe.post("/save_settings",{client_id:this.$store.state.client_id},{headers:R6});t.data.status?this.$store.state.toast.showToast("Settings saved successfully.",4,!0):this.$store.state.messageBox.showMessage(`Error saving settings: ${t.data.error||"Unknown error"}`)}catch(t){console.error("Error saving settings:",t),this.$store.state.messageBox.showMessage(`Error saving settings: ${t.message}`)}finally{this.isLoading=!1}},reset_configuration(){this.$store.state.yesNoDialog.askQuestion(`Are you sure? -This will delete your current configuration file and revert to the default.`,"Reset Now","Cancel").then(async t=>{if(t){this.isLoading=!0,this.loading_text="Resetting configuration...";try{const e=await fe.post("/reset_settings",{client_id:this.$store.state.client_id},{headers:R6});e.data.status?(this.$store.state.messageBox.showMessage("Settings reset successfully. The application will now reload."),setTimeout(()=>window.location.reload(),2e3)):(this.$store.state.messageBox.showMessage(`Couldn't reset settings: ${e.data.error||"Unknown error"}`),this.isLoading=!1)}catch(e){console.error("Error resetting settings:",e),this.$store.state.messageBox.showMessage(`Couldn't reset settings: ${e.message}`),this.isLoading=!1}}})},async restart_program(){this.loading_text="Restarting program...",this.isLoading=!0;try{const t=await this.api_post_req("restart_program");t.status?this.$store.state.toast.showToast("Restarting LoLLMs.",4,!0):(this.$store.state.toast.showToast(`Failed to restart: ${t.error||"Unknown error"}`,4,!1),this.isLoading=!1)}catch{this.isLoading=!1}},async clear_uploads(){this.loading_text="Clearing uploads...",this.isLoading=!0;try{const t=await this.api_get_req("clear_uploads");t.status?this.$store.state.toast.showToast("Uploads folder cleared!",4,!0):this.$store.state.toast.showToast(`Failed to clear uploads: ${t.error||"Unknown error"}`,4,!1)}catch{}finally{this.isLoading=!1}},async update_software(){this.loading_text="Updating software...",this.isLoading=!0;try{const t=await this.api_post_req("update_software");this.$store.state.toast.showToast("Update process initiated. LoLLMs might restart.",4,!0),this.has_updates=!1,t.status||(this.$store.state.toast.showToast(`Update command sent, but server reported: ${t.error||"Unknown issue"}`,4,!1),this.isLoading=!1)}catch{this.isLoading=!1}},async updateHasUpdates(){try{const t=await this.api_get_req("check_update");this.has_updates=(t==null?void 0:t.update_availability)||!1,console.log("Update available:",this.has_updates),be(()=>{Le.replace()})}catch(t){console.error("Failed to check for updates:",t),this.has_updates=!1}},async api_get_req(t){try{return(await fe.get(`/${t}?client_id=${this.$store.state.client_id}`)).data}catch(e){throw console.error(`API GET request failed for /${t}:`,e),this.$store.state.toast.showToast(`Failed to fetch data from ${t}. ${e.message}`,4,!1),e}},async api_post_req(t,e={}){try{const n={...e,client_id:this.$store.state.client_id};return(await fe.post(`/${t}`,n,{headers:R6})).data}catch(n){throw console.error(`API POST request failed for /${t}:`,n),this.$store.state.toast.showToast(`Failed to post data to ${t}. ${n.message}`,4,!1),n}}},mounted(){this.refreshConfig(),this.updateHasUpdates(),be(()=>{Le.replace()})},updated(){be(()=>{Le.replace()})}},xPn={class:"flex h-screen w-screen font-sans antialiased theme-bg-primary theme-text-primary"},LPn={class:"flex-1 flex flex-col overflow-hidden"},CPn={class:"flex items-center gap-4 flex-1"},APn={key:0,class:"flex items-center gap-2 theme-text-warning animate-pulse"},wPn={key:1,class:"flex gap-3 items-center"},OPn={key:0,class:"flex items-center gap-2"},MPn={key:1,class:"flex items-center gap-2 text-sm theme-text-muted"},RPn={class:"flex-1 overflow-x-hidden overflow-y-auto theme-scrollbar p-6"},NPn={key:1,class:"flex justify-center items-center h-full theme-text-secondary"};function DPn(t,e,n,o,r,i){const s=We("SettingsSidebar");return N(),H("div",xPn,[ne(s,{sections:r.sections,"active-section":r.activeSection,"onUpdate:activeSection":i.setActiveSection,class:"flex-shrink-0 w-64 border-r theme-border-primary theme-bg-secondary overflow-y-auto theme-scrollbar"},null,8,["sections","active-section","onUpdate:activeSection"]),S("div",LPn,[S("div",{class:Ee(["sticky top-0 z-20 flex items-center justify-between p-3 gap-3 shadow-md theme-bg-secondary theme-border-b theme-border-primary",r.isLoading?"opacity-50 pointer-events-none":""])},[S("div",CPn,[r.settingsChanged&&!r.isLoading?(N(),H("div",APn,e[6]||(e[6]=[S("i",{"data-feather":"alert-circle",class:"w-5 h-5"},null,-1),S("span",{class:"text-sm font-medium"},"Settings have changed",-1)]))):Z("",!0),!r.settingsChanged&&!r.isLoading?(N(),H("div",wPn,[S("button",{title:"Reset configuration to default",class:"icon-button theme-text-secondary hover:theme-text-primary",onClick:e[0]||(e[0]=a=>i.reset_configuration())},e[7]||(e[7]=[S("i",{"data-feather":"refresh-ccw"},null,-1)])),S("button",{title:"Restart program",class:"icon-button theme-text-secondary hover:theme-text-primary",onClick:e[1]||(e[1]=a=>i.restart_program())},e[8]||(e[8]=[S("i",{"data-feather":"power"},null,-1)])),S("button",{title:"Clear uploads folder",class:"icon-button theme-text-secondary hover:theme-text-danger",onClick:e[2]||(e[2]=a=>i.clear_uploads())},e[9]||(e[9]=[S("i",{"data-feather":"trash-2"},null,-1)])),r.has_updates?(N(),H("button",{key:0,title:"Upgrade program",class:"icon-button theme-text-success hover:theme-text-primary relative",onClick:e[3]||(e[3]=a=>i.update_software())},e[10]||(e[10]=[S("i",{"data-feather":"arrow-up-circle"},null,-1),S("span",{class:"absolute top-0 right-0 block h-2 w-2 rounded-full theme-bg-danger ring-2 theme-ring-bg"},null,-1)]))):Z("",!0)])):Z("",!0)]),r.settingsChanged&&!r.isLoading?(N(),H("div",OPn,[S("button",{class:"flex items-center gap-2 px-3 py-1.5 rounded theme-button-success duration-150 active:scale-95",title:"Apply changes",type:"button",onClick:e[4]||(e[4]=oe(a=>i.applyConfiguration(),["stop"]))},e[11]||(e[11]=[S("span",{class:"font-medium text-sm"},"Apply",-1),S("i",{"data-feather":"check",class:"w-4 h-4"},null,-1)])),S("button",{class:"flex items-center gap-2 px-3 py-1.5 rounded theme-button-danger duration-150 active:scale-95",title:"Cancel changes",type:"button",onClick:e[5]||(e[5]=oe(a=>i.cancelConfiguration(),["stop"]))},e[12]||(e[12]=[S("span",{class:"font-medium text-sm"},"Cancel",-1),S("i",{"data-feather":"x",class:"w-4 h-4"},null,-1)]))])):Z("",!0),r.isLoading?(N(),H("div",MPn,[S("span",null,J(r.loading_text),1),e[13]||(e[13]=S("svg",{"aria-hidden":"true",class:"w-5 h-5 animate-spin theme-spinner-color",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})],-1)),e[14]||(e[14]=S("span",{class:"sr-only"},"Loading...",-1))])):Z("",!0)],2),S("main",RPn,[t.$store.state.config?(N(),it(Vc(i.currentComponent),{key:0,loading:r.isLoading,"settings-changed":r.settingsChanged,onSettingsChanged:i.handleSettingsChanged,api_get_req:i.api_get_req,api_post_req:i.api_post_req,refresh_config:i.refreshConfig,show_toast:(a,l,c)=>t.$store.state.toast.showToast(a,l,c),show_yes_no_dialog:(a,l,c)=>t.$store.state.yesNoDialog.askQuestion(a,l,c),show_message_box:a=>t.$store.state.messageBox.showMessage(a),client_id:t.$store.state.client_id,show_universal_form:(a,l,c,u)=>t.$store.state.universalForm.showForm(a,l,c,u)},null,40,["loading","settings-changed","onSettingsChanged","api_get_req","api_post_req","refresh_config","show_toast","show_yes_no_dialog","show_message_box","client_id","show_universal_form"])):(N(),H("div",NPn,e[15]||(e[15]=[S("p",null,"Loading configuration...",-1)])))])])])}const IPn=ze(SPn,[["render",DPn],["__scopeId","data-v-9889ee74"]]),kPn={components:{ClipBoardTextInput:Th,Card:ph},data(){return{dataset_path:"",max_length:1024,batch_size:4,lr:5e-5,num_epochs:2,selectedFolder:"",selectedDataset:""}},methods:{submitForm(){const t={model_name:this.selectedModel,dataset_file:this.selectedDataset,max_length:this.max_length,batch_size:this.batch_size,lr:this.lr,num_epochs:this.num_epochs,output_dir:this.selectedFolder};fe.post("/start_training",t).then(e=>{})},openFolderSelector(){this.$refs.folder_selector.click()},selectOutputDirectory(t){var n;console.log("here");const e=(n=t.target.files[0])==null?void 0:n.path;console.log(e),e&&(this.selectedFolder=e)},selectDataset(t){const e=t.target.files;e.length>0&&(this.selectedDataset=e[0])}},computed:{selectedModel:{get(){return this.$store.state.selectedModel}},models:{get(){return this.$store.state.modelsArr}}},watch:{model_name(t){console.log("watching model_name",t),this.$refs.clipboardInput.inputValue=t}}},HPn={key:0,class:"container overflow-y-scroll flex flex-col no-scrollbar shadow-lg p-10 pt-2 bg-bg-light-tone dark:bg-bg-dark-tone"},PPn={class:"mb-4"},$Pn=["value"],VPn={class:"mb-4"},BPn={class:"mb-4"},FPn={class:"mb-4"},UPn={class:"mb-4"},qPn={class:"mb-4"},GPn={class:"mb-4"},jPn={key:1};function zPn(t,e,n,o,r,i){const s=We("Card"),a=We("ClipBoardTextInput");return i.selectedModel!==null&&i.selectedModel.toLowerCase().includes("gptq")?(N(),H("div",HPn,[S("form",{onSubmit:e[2]||(e[2]=oe((...l)=>i.submitForm&&i.submitForm(...l),["prevent"])),class:""},[ne(s,{title:"Training configuration",isHorizontal:!0,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[ne(s,{title:"Model",class:"",isHorizontal:!1},{default:je(()=>[S("div",PPn,[e[3]||(e[3]=S("label",{for:"model_name",class:"text-sm"},"Model Name:",-1)),Ce(S("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>i.selectedModel=l),onChange:e[1]||(e[1]=(...l)=>t.setModel&&t.setModel(...l)),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},[(N(!0),H(Ae,null,Ue(i.models,l=>(N(),H("option",{key:l,value:l},J(l),9,$Pn))),128))],544),[[Ir,i.selectedModel]])])]),_:1}),ne(s,{title:"Data",isHorizontal:!1},{default:je(()=>[S("div",VPn,[e[4]||(e[4]=S("label",{for:"dataset_path",class:"text-sm"},"Dataset:",-1)),ne(a,{id:"model_path",inputType:"file",value:r.dataset_path,onchange:"selectDataset()"},null,8,["value"])])]),_:1}),ne(s,{title:"Training",isHorizontal:!1},{default:je(()=>[S("div",BPn,[e[5]||(e[5]=S("label",{for:"lr",class:"text-sm"},"Learning Rate:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.lr},null,8,["value"])]),S("div",FPn,[e[6]||(e[6]=S("label",{for:"num_epochs",class:"text-sm"},"Number of Epochs:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.num_epochs},null,8,["value"])]),S("div",UPn,[e[7]||(e[7]=S("label",{for:"max_length",class:"text-sm"},"Max Length:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.max_length},null,8,["value"])]),S("div",qPn,[e[8]||(e[8]=S("label",{for:"batch_size",class:"text-sm"},"Batch Size:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.batch_size},null,8,["value"])])]),_:1}),ne(s,{title:"Output",isHorizontal:!1},{default:je(()=>[S("div",GPn,[e[9]||(e[9]=S("label",{for:"output_dir",class:"text-sm"},"Output Directory:",-1)),ne(a,{id:"model_path",inputType:"text",value:t.output_dir},null,8,["value"])])]),_:1})]),_:1}),ne(s,{disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>e[10]||(e[10]=[S("button",{class:"bg-blue-500 text-white px-4 py-2 rounded"},"Start training",-1)])),_:1})],32)])):(N(),H("div",jPn,[ne(s,{title:"Info",class:"",isHorizontal:!1},{default:je(()=>e[11]||(e[11]=[Oe(" Only GPTQ models are supported for QLora fine tuning. Please select a GPTQ compatible binding. ")])),_:1})]))}const YPn=ze(kPn,[["render",zPn]]),WPn={components:{ClipBoardTextInput:Th,Card:ph},data(){return{model_name:"jondurbin/airoboros-7b-gpt4",tokenizer_name:"jondurbin/airoboros-7b-gpt4",dataset_path:"",max_length:1024,batch_size:4,lr:5e-5,num_epochs:2,selectedFolder:"",selectedDatasetPath:""}},methods:{submitForm(){this.model_name,this.tokenizer_name,this.selectedDatasetPath,this.max_length,this.batch_size,this.lr,this.num_epochs,this.selectedFolder},openFolderSelector(){this.$refs.folder_selector.click()},selectOutputDirectory(t){var n;console.log("here");const e=(n=t.target.files[0])==null?void 0:n.path;console.log(e),e&&(this.selectedFolder=e)},selectDatasetPath(t){const e=t.target.files;e.length>0&&(this.selectedDatasetPath=e[0].webkitRelativePath)}}},KPn={class:"container overflow-y-scroll flex flex-col no-scrollbar shadow-lg p-10 pt-2 bg-bg-light-tone dark:bg-bg-dark-tone"},ZPn={class:"mb-4"},XPn={class:"mb-4"};function JPn(t,e,n,o,r,i){const s=We("ClipBoardTextInput"),a=We("Card");return N(),H("div",KPn,[S("form",{onSubmit:e[0]||(e[0]=oe((...l)=>i.submitForm&&i.submitForm(...l),["prevent"])),class:"max-w-md mx-auto"},[ne(a,{title:"Quantizing configuration",isHorizontal:!0,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[ne(a,{title:"Model",class:"",isHorizontal:!1},{default:je(()=>[S("div",ZPn,[e[1]||(e[1]=S("label",{for:"model_name",class:"text-sm"},"Model Name:",-1)),ne(s,{id:"model_path",inputType:"text",value:r.model_name},null,8,["value"])]),S("div",XPn,[e[2]||(e[2]=S("label",{for:"tokenizer_name",class:"text-sm"},"Tokenizer Name:",-1)),ne(s,{id:"model_path",inputType:"text",value:r.tokenizer_name},null,8,["value"])])]),_:1})]),_:1}),ne(a,{disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>e[3]||(e[3]=[S("button",{type:"submit",class:"bg-blue-500 text-white px-4 py-2 rounded"},"Quantize LLM",-1)])),_:1})],32)])}const e$n=ze(WPn,[["render",JPn]]),t$n={name:"Discussion",emits:["delete","select","openFolder","editTitle","makeTitle","checked"],props:{id:Number,title:String,selected:Boolean,loading:Boolean,isCheckbox:Boolean,checkBoxValue:Boolean,openfolder_enabled:Boolean},setup(){},data(){return{showConfirmation:!1,editTitleMode:!1,makeTitleMode:!1,deleteMode:!1,openFolder:!1,editTitle:!1,newTitle:String,checkBoxValue_local:!1}},methods:{cancel(){this.editTitleMode=!1,this.makeTitleMode=!1,this.deleteMode=!1,this.showConfirmation=!1},deleteEvent(){this.showConfirmation=!1,this.$emit("delete")},selectEvent(){this.$emit("select")},openFolderEvent(){this.$emit("openFolder",{id:this.id})},editTitleEvent(){this.editTitle=!1,this.editTitleMode=!1,this.makeTitleMode=!1,this.deleteMode=!1,this.showConfirmation=!1,this.$emit("editTitle",{title:this.newTitle,id:this.id})},makeTitleEvent(){this.$emit("makeTitle",{id:this.id}),this.showConfirmation=!1},chnageTitle(t){this.newTitle=t},checkedChangeEvent(t,e){this.$emit("checked",t,e)}},mounted(){this.newTitle=this.title,be(()=>{Le.replace()})},watch:{showConfirmation(){be(()=>{Le.replace()})},editTitleMode(t){this.showConfirmation=t,this.editTitle=t,t&&be(()=>{try{this.$refs.titleBox.focus()}catch{}})},deleteMode(t){this.showConfirmation=t,t&&be(()=>{this.$refs.titleBox.focus()})},makeTitleMode(t){this.showConfirmation=t},checkBoxValue(t,e){this.checkBoxValue_local=t}}},n$n=["id"],r$n={class:"flex flex-row items-center gap-2"},i$n={key:0},o$n={class:"flex flex-row items-center w-full"},s$n=["title"],a$n=["value"],l$n={class:"absolute top-0 right-0 h-full flex items-center group"},c$n={class:"discussion-toolbox"},u$n={key:0,class:"flex gap-2 items-center"},d$n={key:1,class:"flex gap-2 items-center"};function T$n(t,e,n,o,r,i){return N(),H("div",{class:Ee([n.selected?"discussion-hilighted":"discussion","m-1 py-2 flex flex-row sm:flex-row flex-wrap flex-shrink-0 items-center rounded-md duration-75 cursor-pointer relative w-[15rem]"]),id:"dis-"+n.id,onClick:e[13]||(e[13]=oe(s=>i.selectEvent(),["stop"]))},[S("div",r$n,[n.isCheckbox?(N(),H("div",i$n,[Ce(S("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-700 dark:focus:ring-offset-gray-700 focus:ring-2 dark:bg-gray-600 dark:border-gray-500",onClick:e[0]||(e[0]=oe(()=>{},["stop"])),"onUpdate:modelValue":e[1]||(e[1]=s=>r.checkBoxValue_local=s),onInput:e[2]||(e[2]=s=>i.checkedChangeEvent(s,n.id))},null,544),[[Ql,r.checkBoxValue_local]])])):Z("",!0),n.selected?(N(),H("div",{key:1,class:Ee(["min-h-full w-2 rounded-xl self-stretch",n.loading?"animate-bounce bg-accent":"bg-secondary"])},null,2)):Z("",!0),n.selected?Z("",!0):(N(),H("div",{key:2,class:Ee(["w-2",n.loading?"min-h-full w-2 rounded-xl self-stretch animate-bounce bg-accent":""])},null,2))]),S("div",o$n,[r.editTitle?Z("",!0):(N(),H("p",{key:0,title:n.title,class:"line-clamp-1 w-full ml-1 -mx-5 text-xs"},J(n.title?n.title==="untitled"?"New discussion":n.title:"New discussion"),9,s$n)),r.editTitle?(N(),H("input",{key:1,type:"text",id:"title-box",ref:"titleBox",class:"bg-bg-light dark:bg-bg-dark rounded-md border-0 w-full -m-1 p-1",value:n.title,required:"",onKeydown:[e[3]||(e[3]=Qn(oe(s=>i.editTitleEvent(),["exact"]),["enter"])),e[4]||(e[4]=Qn(oe(s=>r.editTitleMode=!1,["exact"]),["esc"]))],onInput:e[5]||(e[5]=s=>i.chnageTitle(s.target.value)),onClick:e[6]||(e[6]=oe(()=>{},["stop"]))},null,40,a$n)):Z("",!0)]),S("div",l$n,[S("div",c$n,[r.showConfirmation?(N(),H("div",u$n,[S("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Discard title changes",type:"button",onClick:e[7]||(e[7]=oe(s=>i.cancel(),["stop"]))},e[14]||(e[14]=[S("i",{"data-feather":"x"},null,-1)])),S("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Confirm title changes",type:"button",onClick:e[8]||(e[8]=oe(s=>r.editTitleMode?i.editTitleEvent():r.deleteMode?i.deleteEvent():i.makeTitleEvent(),["stop"]))},e[15]||(e[15]=[S("i",{"data-feather":"check"},null,-1)]))])):Z("",!0),r.showConfirmation?Z("",!0):(N(),H("div",d$n,[n.openfolder_enabled?(N(),H("button",{key:0,class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Open folder",type:"button",onClick:e[9]||(e[9]=oe(s=>i.openFolderEvent(),["stop"]))},e[16]||(e[16]=[S("i",{"data-feather":"folder"},null,-1)]))):Z("",!0),S("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Make a title",type:"button",onClick:e[10]||(e[10]=oe(s=>r.makeTitleMode=!0,["stop"]))},e[17]||(e[17]=[S("i",{"data-feather":"type"},null,-1)])),S("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Edit title",type:"button",onClick:e[11]||(e[11]=oe(s=>r.editTitleMode=!0,["stop"]))},e[18]||(e[18]=[S("i",{"data-feather":"edit-2"},null,-1)])),S("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Remove discussion",type:"button",onClick:e[12]||(e[12]=oe(s=>r.deleteMode=!0,["stop"]))},e[19]||(e[19]=[S("i",{"data-feather":"trash"},null,-1)]))]))])])],10,n$n)}const xh=ze(t$n,[["render",T$n],["__scopeId","data-v-2b3580ce"]]),f$n={data(){return{id:0,loading:!1,isCheckbox:!1,isVisible:!1,categories:[],titles:[],content:"",searchQuery:""}},components:{Discussion:xh,MarkdownRenderer:Q5},props:{host:{type:String,required:!1,default:"http://localhost:9600"}},methods:{showSkillsLibrary(){this.isVisible=!0,this.fetchTitles()},closeComponent(){this.isVisible=!1},fetchCategories(){fe.post("/get_skills_library_categories",{client_id:this.$store.state.client_id}).then(t=>{this.categories=t.data.categories}).catch(t=>{console.error("Error fetching categories:",t)})},fetchTitles(){console.log("Fetching categories"),fe.post("/get_skills_library_titles",{client_id:this.$store.state.client_id}).then(t=>{this.titles=t.data.titles,console.log("titles recovered")}).catch(t=>{console.error("Error fetching titles:",t)})},fetchContent(t){console.log("loading skill",t),fe.post("/get_skills_library_content",{client_id:this.$store.state.client_id,skill_id:t}).then(e=>{const n=e.data.contents[0];this.id=n.id,this.content=n.content}).catch(e=>{console.error("Error fetching content:",e)})},deleteCategory(t){console.log("Delete category")},editCategory(t){console.log("Edit category")},checkUncheckCategory(t){console.log("Unchecked category")},deleteSkill(t){console.log("Delete skill ",t),fe.post("/delete_skill",{client_id:this.$store.state.client_id,skill_id:t}).then(()=>{this.fetchTitles()})},editTitle(t){fe.post("/edit_skill_title",{client_id:this.$store.state.client_id,skill_id:t,title:t}).then(()=>{this.fetchTitles()}),console.log("Edit title")},makeTitle(t){console.log("Make title")},checkUncheckTitle(t){},searchSkills(){}}},p$n={id:"leftPanel",class:"flex flex-row h-full flex-grow shadow-lg rounded"},h$n={class:"w-[15rem] z-10 top-0 bg-bg-light-tone dark:bg-bg-dark-tone shadow-md overflow-y-scroll no-scrollbar"},m$n={classclass:"absolute flex flex-col no-scrollbar shadow-lg w-[15rem] bg-bg-light-tone dark:bg-bg-dark-tone top-20 left-20 bottom-20 right-20 bg-bg-light shadow-lg rounded"},g$n={class:"z-0 flex flex-col flex-grow 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"};function _$n(t,e,n,o,r,i){const s=We("Discussion"),a=We("MarkdownRenderer");return N(),H("div",{class:Ee([{hidden:!r.isVisible},"absolute flex flex-col no-scrollbar shadow-lg bg-bg-light dark:bg-bg-dark top-20 left-20 bottom-20 right-20 shadow-lg rounded"])},[S("div",p$n,[S("div",h$n,[Ce(S("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 skills by title","onUpdate:modelValue":e[0]||(e[0]=l=>r.searchQuery=l),onKeyup:e[1]||(e[1]=Qn((...l)=>i.searchSkills&&i.searchSkills(...l),["enter"]))},null,544),[[Je,r.searchQuery]]),S("div",m$n,[e[3]||(e[3]=S("h2",{class:"text-xl font-bold m-4"},"Titles",-1)),r.titles.length>0?(N(),it(O2,{key:0,name:"list"},{default:je(()=>[(N(!0),H(Ae,null,Ue(r.titles,l=>(N(),it(s,{key:l.id,id:l.id,title:l.title,selected:i.fetchContent(l.id),loading:r.loading,isCheckbox:r.isCheckbox,checkBoxValue:!1,openfolder_enabled:!1,onSelect:c=>i.fetchContent(l.id),onDelete:c=>i.deleteSkill(l.id),onEditTitle:i.editTitle,onMakeTitle:i.makeTitle,onChecked:i.checkUncheckTitle},null,8,["id","title","selected","loading","isCheckbox","onSelect","onDelete","onEditTitle","onMakeTitle","onChecked"]))),128))]),_:1})):Z("",!0)])]),S("div",g$n,[e[4]||(e[4]=S("h2",{class:"text-xl font-bold m-4"},"Content",-1)),ne(a,{host:n.host,"markdown-text":r.content,message_id:r.id,discussion_id:r.id,client_id:this.$store.state.client_id},null,8,["host","markdown-text","message_id","discussion_id","client_id"])])]),S("button",{onClick:e[2]||(e[2]=(...l)=>i.closeComponent&&i.closeComponent(...l)),class:"absolute top-2 right-2 bg-red-500 text-white rounded px-2 py-1 hover:bg-red-300"},"Close")],2)}const Nk=ze(f$n,[["render",_$n]]),Q$n={props:{htmlContent:{type:String,required:!0}}},v$n=["innerHTML"];function y$n(t,e,n,o,r,i){return N(),H("div",{class:"w-full h-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",innerHTML:n.htmlContent},null,8,v$n)}const b$n=ze(Q$n,[["render",y$n]]),E$n={name:"JsonNode",props:{data:{required:!0},label:{type:String,default:""},depth:{type:Number,default:0}},data(){return{expanded:!0}},computed:{isObject(){return this.data!==null&&typeof this.data=="object"},isArray(){return Array.isArray(this.data)}},methods:{toggle(){this.expanded=!this.expanded},getValueType(t){return t===null?"null":typeof t},formatValue(t){return t===null?"null":typeof t=="string"?`"${t}"`:t}}},S$n={class:"json-tree"},x$n={key:0,class:"tree-node"},L$n={class:"toggle-icon"},C$n={class:"key"},A$n={class:"bracket"},w$n={key:0,class:"node-content"},O$n={key:1,class:"bracket-close"},M$n={key:1,class:"tree-leaf"},R$n={key:0,class:"key"};function N$n(t,e,n,o,r,i){const s=We("json-node",!0);return N(),H("div",S$n,[i.isObject?(N(),H("div",x$n,[S("div",{class:"node-label",onClick:e[0]||(e[0]=(...a)=>i.toggle&&i.toggle(...a))},[S("span",L$n,J(r.expanded?"▼":"▶"),1),S("span",C$n,J(n.label),1),S("span",A$n,J(i.isArray?"[":"{"),1)]),r.expanded?(N(),H("div",w$n,[(N(!0),H(Ae,null,Ue(n.data,(a,l)=>(N(),H("div",{key:l,class:"node-item"},[ne(s,{data:a,label:l,depth:n.depth+1},null,8,["data","label","depth"])]))),128))])):Z("",!0),r.expanded?(N(),H("div",O$n,J(i.isArray?"]":"}"),1)):Z("",!0)])):(N(),H("div",M$n,[n.label?(N(),H("span",R$n,J(n.label)+":",1)):Z("",!0),S("span",{class:Ee(["value",i.getValueType(n.data)])},J(i.formatValue(n.data)),3)]))])}const D$n=ze(E$n,[["render",N$n],["__scopeId","data-v-0535817b"]]),I$n={name:"JsonViewer",components:{JsonNode:D$n},props:{data:{required:!0},title:{type:String,default:"JSON Data"}},data(){return{expanded:!0}},computed:{parsedData(){if(typeof this.data=="string")try{return JSON.parse(this.data)}catch{return{error:"Invalid JSON"}}return this.data}},methods:{toggle(){this.expanded=!this.expanded}}},k$n={class:"json-viewer"},H$n={class:"toggle-icon"},P$n={class:"title"},$$n={key:0,class:"viewer-content"};function V$n(t,e,n,o,r,i){const s=We("json-node");return N(),H("div",k$n,[S("div",{class:"viewer-header",onClick:e[0]||(e[0]=(...a)=>i.toggle&&i.toggle(...a))},[S("span",H$n,J(r.expanded?"▼":"▶"),1),S("span",P$n,J(n.title),1)]),r.expanded?(N(),H("div",$$n,[ne(s,{data:i.parsedData},null,8,["data"])])):Z("",!0)])}const B$n=ze(I$n,[["render",V$n],["__scopeId","data-v-6fbe5047"]]),F$n={props:{done:Boolean,text:String,status:Boolean,description:String}},U$n={class:"flex items-start gap-2 w-full"},q$n={class:"w-4 h-4 flex-shrink-0"},G$n={key:0,class:"w-4 h-4 text-green-500 dark:text-green-400",viewBox:"0 0 24 24",fill:"currentColor"},j$n={key:1,class:"w-4 h-4 text-red-500 dark:text-red-400",viewBox:"0 0 24 24",fill:"currentColor"},z$n={key:1,class:"w-4 h-4 border-2 border-t-primary rounded-full animate-spin"},Y$n={class:"min-w-0"},W$n={class:"text-sm text-gray-700 dark:text-gray-200 truncate"},K$n={key:0,class:"text-xs text-gray-500 dark:text-gray-400 truncate"};function Z$n(t,e,n,o,r,i){return N(),H("div",{class:Ee(["flex items-center p-2 rounded transition-colors duration-200",[n.done?"bg-opacity-5":"bg-opacity-3",n.status?"bg-green-50 dark:bg-green-900/20":"bg-gray-50 dark:bg-gray-800/20"]])},[S("div",U$n,[S("div",q$n,[n.done?(N(),H(Ae,{key:0},[n.status?(N(),H("svg",G$n,e[0]||(e[0]=[S("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},null,-1)]))):(N(),H("svg",j$n,e[1]||(e[1]=[S("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"},null,-1)])))],64)):(N(),H("div",z$n))]),S("div",Y$n,[S("div",W$n,J(n.text||"No text provided"),1),n.description?(N(),H("div",K$n,J(n.description),1)):Z("",!0)])])],2)}const X$n=ze(F$n,[["render",Z$n],["__scopeId","data-v-2cb174d6"]]),J$n=["title"],eVn={key:0,class:"icon icon-success",viewBox:"0 0 24 24"},tVn={key:1,class:"icon icon-fail",viewBox:"0 0 24 24"},nVn={key:2,class:"icon-spinner"},rVn={key:1,class:"icon-text"},iVn={__name:"StatusIcon",props:{status:{type:String,required:!0},icon:Boolean,iconDone:{type:String,default:"✓"},iconFailed:{type:String,default:"✗"},iconProcessing:{type:String,default:"⟳"},titleDone:{type:String,default:"Success"},titleFailed:{type:String,default:"Failure"},titleProcessing:{type:String,default:"Processing"}},setup(t){const e=t,n=$e(()=>e.status==="Done"?e.titleDone:e.status==="Failed"?e.titleFailed:e.titleProcessing),o=$e(()=>e.status==="Done"?e.iconDone:e.status==="Failed"?e.iconFailed:e.iconProcessing);return(r,i)=>(N(),H("div",{class:"status-icon",title:n.value},[t.icon?(N(),H(Ae,{key:0},[t.status==="Done"?(N(),H("svg",eVn,i[0]||(i[0]=[S("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},null,-1)]))):t.status==="Failed"?(N(),H("svg",tVn,i[1]||(i[1]=[S("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"},null,-1)]))):(N(),H("div",nVn))],64)):(N(),H("span",rVn,J(o.value),1))],8,J$n))}},oVn=ze(iVn,[["__scopeId","data-v-b3d110c2"]]),sVn="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%20480%20480'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cg%3e%3cpath%20d='M240,0C107.664,0,0,107.664,0,240s107.664,240,240,240s240-107.664,240-240S372.336,0,240,0z%20M240,460%20c-121.309,0-220-98.691-220-220S118.691,20,240,20s220,98.691,220,220S361.309,460,240,460z'/%3e%3cpath%20d='M410,194.999h-27.058c-2.643-8.44-6-16.56-10.03-24.271l19.158-19.158c3.776-3.775,5.854-8.79,5.854-14.121%20c0-5.332-2.08-10.347-5.854-14.121l-35.399-35.399c-3.775-3.775-8.79-5.854-14.122-5.854c-5.331,0-10.346,2.079-14.121,5.854%20l-19.158,19.158c-7.711-4.03-15.832-7.386-24.271-10.03V70c0-11.028-8.972-20-20-20h-50c-11.028,0-20,8.972-20,20v27.058%20c-8.44,2.643-16.56,6-24.271,10.03L151.57,87.93c-3.775-3.776-8.79-5.854-14.121-5.854c-5.332,0-10.347,2.08-14.121,5.854%20l-35.399,35.399c-3.775,3.775-5.854,8.79-5.854,14.122c0,5.331,2.079,10.346,5.854,14.121l19.158,19.158%20c-4.03,7.711-7.386,15.832-10.03,24.271H70c-11.028,0-20,8.972-20,20v50c0,11.028,8.972,20,20,20h27.057%20c2.643,8.44,6,16.56,10.03,24.271L87.929,328.43c-3.776,3.775-5.854,8.79-5.854,14.121c0,5.332,2.08,10.347,5.854,14.121%20l35.399,35.399c3.775,3.775,8.79,5.854,14.122,5.854c5.331,0,10.346-2.079,14.121-5.854l19.158-19.158%20c7.711,4.03,15.832,7.386,24.271,10.03V410c0,11.028,8.972,20,20,20h50c11.028,0,20-8.972,20.001-20v-27.058%20c8.44-2.643,16.56-6,24.271-10.03l19.158,19.158c3.775,3.776,8.79,5.854,14.121,5.854c5.332,0,10.347-2.08,14.121-5.854%20l35.399-35.399c3.775-3.775,5.854-8.79,5.854-14.122c0-5.331-2.079-10.346-5.854-14.121l-19.158-19.158%20c4.03-7.711,7.386-15.832,10.03-24.271H410c11.028,0,20-8.972,20-20v-50C430,203.971,421.028,194.999,410,194.999z%20M410,264.998%20h-34.598c-4.562,0-8.544,3.086-9.684,7.503c-3.069,11.901-7.716,23.133-13.813,33.387c-2.337,3.931-1.71,8.948,1.524,12.182%20l24.5,24.457l-35.357,35.4l-24.5-24.5c-3.236-3.235-8.253-3.86-12.182-1.524c-10.254,6.097-21.487,10.745-33.387,13.813%20c-4.417,1.14-7.503,5.122-7.503,9.684V410h-50v-34.599c0-4.562-3.086-8.544-7.503-9.684%20c-11.901-3.069-23.133-7.716-33.387-13.813c-1.587-0.944-3.353-1.404-5.107-1.404c-2.586,0-5.147,1.002-7.073,2.931l-24.457,24.5%20l-35.4-35.357l24.5-24.5c3.234-3.235,3.861-8.251,1.524-12.182c-6.097-10.254-10.745-21.487-13.813-33.387%20c-1.14-4.417-5.122-7.503-9.684-7.503H70v-50h34.596c4.562,0,8.544-3.086,9.684-7.503c3.069-11.901,7.716-23.133,13.813-33.387%20c2.337-3.931,1.71-8.948-1.524-12.182l-24.5-24.457l35.357-35.4l24.5,24.5c3.236,3.235,8.253,3.861,12.182,1.524%20c10.254-6.097,21.487-10.745,33.387-13.813c4.417-1.14,7.503-5.122,7.503-9.684V70h50v34.596c0,4.562,3.086,8.544,7.503,9.684%20c11.901,3.069,23.133,7.716,33.387,13.813c3.929,2.337,8.947,1.709,12.182-1.524l24.457-24.5l35.4,35.357l-24.5,24.5%20c-3.234,3.235-3.861,8.251-1.524,12.182c6.097,10.254,10.745,21.487,13.813,33.387c1.14,4.417,5.122,7.503,9.684,7.503H410%20V264.998z'/%3e%3cpath%20d='M331.585,292.475l-40-35l-13.17,15.051L298.386,290H240c-27.57,0-50-22.43-50-50h-20c0,38.598,31.402,70,70,70h58.386%20l-19.971,17.475l13.17,15.051l40-35c2.17-1.898,3.415-4.642,3.415-7.525S333.755,294.373,331.585,292.475z'/%3e%3cpath%20d='M201.585,207.473L181.614,190H240c27.57,0,50,22.43,50,50h20c0-38.598-31.402-70-70-70h-58.386l19.971-17.475%20l-13.17-15.051l-40,35c-2.17,1.898-3.415,4.642-3.415,7.525s1.245,5.627,3.415,7.525l40,35L201.585,207.473z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3canimateTransform%20attributeName='transform'%20attributeType='XML'%20type='rotate'%20from='0%20240%20240'%20to='360%20240%20240'%20dur='10s'%20repeatCount='indefinite'%20/%3e%3c/svg%3e",aVn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3cpath%20d='M25%200C11.6%200%200%2011.6%200%2025s11.6%2025%2025%2025%2025-11.6%2025-25S40.4%200%2025%200zm0%2048C12.8%2048%202%2039.2%202%2025S12.8%202%2025%202s24%2010.8%2024%2024-10.8%2024-24%2024zm-4-33l-8%208%2018%2018%2030-30-8-8-22%2022L22%2016'%20fill='green'/%3e%3c/svg%3e",lVn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M0%200h24v24H0z'%20fill='none'/%3e%3cpath%20d='M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012%2019%206.41z'%20fill='red'/%3e%3c/svg%3e",Dk="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20version='1.1'%20width='256'%20height='256'%20viewBox='0%200%20256%20256'%20xml:space='preserve'%3e%3cdefs%3e%3c/defs%3e%3cg%20style='stroke:%20white;%20stroke-width:%202px;%20stroke-dasharray:%20none;%20stroke-linecap:%20butt;%20stroke-linejoin:%20miter;%20stroke-miterlimit:%2010;%20fill:%20none;%20fill-rule:%20nonzero;%20opacity:%201;'%20transform='translate(1.4065934065934016%201.4065934065934016)%20scale(2.81%202.81)'%20%3e%3cpath%20d='M%2089.999%203.075%20C%2090%203.02%2090%202.967%2089.999%202.912%20c%20-0.004%20-0.134%20-0.017%20-0.266%20-0.038%20-0.398%20c%20-0.007%20-0.041%20-0.009%20-0.081%20-0.018%20-0.122%20c%20-0.034%20-0.165%20-0.082%20-0.327%20-0.144%20-0.484%20c%20-0.018%20-0.046%20-0.041%20-0.089%20-0.061%20-0.134%20c%20-0.053%20-0.119%20-0.113%20-0.234%20-0.182%20-0.346%20C%2089.528%201.382%2089.5%201.336%2089.469%201.29%20c%20-0.102%20-0.147%20-0.212%20-0.288%20-0.341%20-0.417%20c%20-0.13%20-0.13%20-0.273%20-0.241%20-0.421%20-0.344%20c%20-0.042%20-0.029%20-0.085%20-0.056%20-0.129%20-0.082%20c%20-0.118%20-0.073%20-0.239%20-0.136%20-0.364%20-0.191%20c%20-0.039%20-0.017%20-0.076%20-0.037%20-0.116%20-0.053%20c%20-0.161%20-0.063%20-0.327%20-0.113%20-0.497%20-0.147%20c%20-0.031%20-0.006%20-0.063%20-0.008%20-0.094%20-0.014%20c%20-0.142%20-0.024%20-0.285%20-0.038%20-0.429%20-0.041%20C%2087.03%200%2086.983%200%2086.936%200.001%20c%20-0.141%200.003%20-0.282%200.017%20-0.423%200.041%20c%20-0.035%200.006%20-0.069%200.008%20-0.104%200.015%20c%20-0.154%200.031%20-0.306%200.073%20-0.456%200.129%20L%201.946%2031.709%20c%20-1.124%200.422%20-1.888%201.473%20-1.943%202.673%20c%20-0.054%201.199%200.612%202.316%201.693%202.838%20l%2034.455%2016.628%20l%2016.627%2034.455%20C%2053.281%2089.344%2054.334%2090%2055.481%2090%20c%200.046%200%200.091%20-0.001%200.137%20-0.003%20c%201.199%20-0.055%202.251%20-0.819%202.673%20-1.943%20L%2089.815%204.048%20c%200.056%20-0.149%200.097%20-0.3%200.128%20-0.453%20c%200.008%20-0.041%200.011%20-0.081%200.017%20-0.122%20C%2089.982%203.341%2089.995%203.208%2089.999%203.075%20z%20M%2075.086%2010.672%20L%2037.785%2047.973%20L%2010.619%2034.864%20L%2075.086%2010.672%20z%20M%2055.136%2079.381%20L%2042.027%2052.216%20l%2037.302%20-37.302%20L%2055.136%2079.381%20z'%20style='stroke:%20none;%20stroke-width:%201;%20stroke-dasharray:%20none;%20stroke-linecap:%20butt;%20stroke-linejoin:%20miter;%20stroke-miterlimit:%2010;%20fill:%20rgb(0,0,0);%20fill-rule:%20nonzero;%20opacity:%201;'%20transform='%20matrix(1%200%200%201%200%200)%20'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='75'%20cy='75'%20r='15'%20fill='%23008000'/%3e%3cpath%20d='M75,60%20A15,15%200%200,1%2090,75%20A15,15%200%200,1%2075,90%20A15,15%200%200,1%2060,75%20A15,15%200%200,1%2075,60%20Z'%20stroke='%23FFFFFF'%20stroke-width='2'%20fill='none'/%3e%3cpath%20d='M81,75%20A6,6%200%200,1%2075,81%20A6,6%200%200,1%2069,75%20A6,6%200%200,1%2075,69%20A6,6%200%200,1%2081,75%20Z'%20fill='%23FFFFFF'/%3e%3c/g%3e%3c/svg%3e",cVn={name:"Message",emits:["copy","delete","rankUp","rankDown","updateMessage","resendMessage","continueMessage"],components:{MarkdownRenderer:Q5,Step:X$n,StatusIcon:oVn,RenderHTMLJS:b$n,JsonViewer:B$n,DynamicUIRenderer:Mk,ToolbarButton:hh,DropdownMenu:Ok},props:{host:{type:String,required:!1,default:"http://localhost:9600"},message:Object,avatar:{default:""}},data(){return{ui_componentKey:0,isSynthesizingVoice:!1,cpp_block:mk,html5_block:gk,LaTeX_block:_k,json_block:hk,javascript_block:pk,process_svg:sVn,ok_svg:aVn,failed_svg:lVn,loading_svg:vk,sendGlobe:Dk,code_block:Tk,python_block:fk,bash_block:Qk,audio_url:null,audio:null,msg:null,isSpeaking:!1,speechSynthesis:null,voices:[],expanded:!1,showConfirmation:!1,editMsgMode_:!1,deleteMsgMode:!1,mdRenderHeight:Number}},mounted(){if("speechSynthesis"in window?(this.speechSynthesis=window.speechSynthesis,this.voices=this.speechSynthesis.getVoices(),this.voices.length===0?this.speechSynthesis.addEventListener("voiceschanged",this.onVoicesChanged):console.log("Voices available:",this.voices.length)):console.error("Speech synthesis is not supported in this browser."),be(()=>{Le.replace(),this.$refs.mdRender&&this.$refs.mdRender.$el&&(this.mdRenderHeight=this.$refs.mdRender.$el.offsetHeight)}),console.log("Checking metadata"),console.log(this.message),Object.prototype.hasOwnProperty.call(this.message,"metadata")&&this.message.metadata!=null){console.log("Metadata found!"),Array.isArray(this.message.metadata)||(this.message.metadata=[]),console.log(typeof this.message.metadata),console.log(this.message.metadata);for(let t of this.message.metadata)Object.prototype.hasOwnProperty.call(t,"audio_url")&&t.audio_url!=null&&(this.audio_url=t.audio_url,console.log("Audio URL:",this.audio_url))}},methods:{toggleExpanded(){this.expanded=!this.expanded,be(()=>{Le.replace()})},computeTimeDiff(t,e){let n=e.getTime()-t.getTime();const o=Math.floor(n/(1e3*60*60));n-=o*(1e3*60*60);const r=Math.floor(n/(1e3*60));n-=r*(1e3*60);const i=Math.floor(n/1e3);return n-=i*1e3,[o,r,i]},insertTab(t){const e=t.target,n=e.selectionStart,o=e.selectionEnd,r=t.shiftKey,i=" ";if(n===o)if(r){if(e.value.substring(n-i.length,n)===i){const s=e.value.substring(0,n-i.length),a=e.value.substring(o);this.message.content=s+a,this.$nextTick(()=>{e.selectionStart=e.selectionEnd=n-i.length})}}else{const s=e.value.substring(0,n),a=e.value.substring(o);this.message.content=s+i+a,this.$nextTick(()=>{e.selectionStart=e.selectionEnd=n+i.length})}else{const a=e.value.substring(n,o).split(` +Error: ${(o==null?void 0:o.error)||"Unknown error"}`,4,!1),this.syncLocalMountedFlags()),this.setPersonalityProcessing(t,!1),be(Le.replace)},async unmount_personality(t){if(!t)return{status:!1,error:"no personality - unmount_personality"};const e={client_id:this.$store.state.client_id,language:t.language||"",category:t.category||"",folder:t.folder||""};try{return await this.api_post_req("/unmount_personality",e)}catch(n){return console.error("Error in unmount_personality helper:",n),{status:!1,error:n.message}}},async unmountAll(){if(!await this.$store.state.yesNoDialog.askQuestion("Unmount all personalities?","Unmount All","Cancel"))return;this.$store.state.toast.showToast("Unmounting all...",3,!0),this.isLoading=!0;const e=await this.api_post_req("/unmount_all_personalities");e&&e.status?(this.$store.state.config.personalities=[],this.$store.state.config.active_personality_id=-1,this.$emit("settings-changed"),this.$store.state.toast.showToast("All personalities unmounted.",4,!0)):this.$store.state.toast.showToast(`Failed to unmount all: ${(e==null?void 0:e.error)||"Unknown error"}`,4,!1),this.isLoading=!1,be(Le.replace)},async remountPersonality(t){const e=t.personality;this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Remounting ${e.name}...`,3,!0);try{await this.unmount_personality(e),await new Promise(o=>setTimeout(o,150));const n=await this.mount_personality(e);n&&n.status?(this.$store.state.config.personalities=n.personalities,this.$store.state.config.active_personality_id=n.active_personality_id,this.$emit("settings-changed"),this.$store.state.toast.showToast(`${e.name} remounted successfully.`,4,!0)):(this.$store.state.toast.showToast(`Failed to remount ${e.name}: ${(n==null?void 0:n.error)||"Mount failed"}`,4,!1),await this.fetchPersonalitiesAndCategories())}catch(n){this.$store.state.toast.showToast(`Error remounting ${e.name}: ${n.message}`,4,!1),await this.fetchPersonalitiesAndCategories()}finally{this.setPersonalityProcessing(t,!1)}},async editPersonality(t){var n;const e=t.personality;this.isLoading=!0;try{const r=(await fe.post("/get_personality_config",{client_id:this.$store.state.client_id,category:e.category,name:e.folder})).data;r.status?(this.$store.state.currentPersonConfig=r.config,this.$store.state.showPersonalityEditor=!0,(n=this.$store.state.personality_editor)!=null&&n.showPanel&&this.$store.state.personality_editor.showPanel(),this.$store.state.selectedPersonality=e):(console.error(r.error),this.$store.state.toast.showToast(`Failed to load config for ${e.name}: ${r.error}`,4,!1))}catch(o){console.error("Error fetching personality config:",o),this.$store.state.toast.showToast(`Error loading config for ${e.name}`,4,!1)}finally{this.isLoading=!1}},async onCopyToCustom(t){const e=t.personality;if(!await this.$store.state.yesNoDialog.askQuestion(`Copy "${e.name}" to 'custom_personalities'?`,"Copy","Cancel"))return;this.setPersonalityProcessing(t,!0);const o=await this.api_post_req("copy_to_custom_personas",{category:e.category,name:e.folder});o&&o.status?(this.$store.state.messageBox.showMessage(`"${e.name}" copied to 'custom_personalities'. Refreshing list...`),await new Promise(r=>setTimeout(r,500)),await this.fetchPersonalitiesAndCategories()):this.$store.state.toast.showToast(`Failed to copy ${e.name}: ${(o==null?void 0:o.error)||"Already exists?"}`,4,!1),this.setPersonalityProcessing(t,!1)},async onPersonalityReinstall(t){const e=t.personality;if(!await this.$store.state.yesNoDialog.askQuestion(`Reinstall "${e.name}"? This overwrites local changes.`,"Reinstall","Cancel"))return;this.setPersonalityProcessing(t,!0),this.$store.state.toast.showToast(`Reinstalling ${e.name}...`,3,!0);const o=await this.api_post_req("reinstall_personality",{name:e.full_path});o&&o.status?this.$store.state.toast.showToast(`${e.name} reinstalled successfully.`,4,!0):this.$store.state.toast.showToast(`Failed to reinstall ${e.name}: ${(o==null?void 0:o.error)||"Not found?"}`,4,!1),this.setPersonalityProcessing(t,!1)},async onSettingsPersonality(t){var n,o;const e=t.personality;if(!this.isActivePersonality(e)){this.$store.state.toast.showToast(`Select and activate "${e.name}" first to configure its settings.`,4,!1);return}this.setPersonalityProcessing(t,!0);try{const i=(await fe.get("/get_active_personality_settings")).data;if(i&&typeof i=="object"&&Object.keys(i).length>0){const s=await this.$store.state.universalForm.showForm(i,`Settings - ${e.name}`,"Save","Cancel");if(s!==null){const a=await fe.post("/set_active_personality_settings",s);(n=a==null?void 0:a.data)!=null&&n.status?this.$store.state.toast.showToast(`Settings for ${e.name} updated.`,4,!0):this.$store.state.toast.showToast(`Failed to update settings: ${((o=a==null?void 0:a.data)==null?void 0:o.error)||"Unknown error"}`,4,!1)}}else i&&typeof i=="object"?this.$store.state.toast.showToast(`"${e.name}" has no configurable settings.`,4,!1):this.$store.state.toast.showToast(`Could not get settings for ${e.name}.`,4,!1)}catch(r){console.error("Error getting/setting personality settings:",r),this.$store.state.toast.showToast(`Error accessing settings: ${r.message}`,4,!1)}finally{this.setPersonalityProcessing(t,!1)}},onCopyPersonalityName(t){const e=t.personality;navigator.clipboard.writeText(e.name).then(()=>this.$store.state.toast.showToast(`Copied name: ${e.name}`,3,!0)).catch(()=>this.$store.state.toast.showToast("Failed to copy name.",3,!1))},async handleOpenFolder(t){const e=t.personality;await this.api_post_req("open_personality_folder",{category:e.category,name:e.folder})},loadMore(){this.isLoading||this.displayedCount>=this.fullyFilteredPersonalities.length||(console.log("Loading more personalities..."),this.displayedCount+=this.loadBatchSize,be(Le.replace))},setupObserver(){this.observer&&this.observer.disconnect();const t=this.$refs.sentinel;if(!t)return;const e={root:null,rootMargin:"0px",threshold:.1};this.observer=new IntersectionObserver(n=>{n[0].isIntersecting&&this.loadMore()},e),this.observer.observe(t)}},async mounted(){console.log("PersonalitiesZoo mounted (Options API). Initializing..."),this.isLoading=!0,this.loadStarred(),await this.fetchPersonalitiesAndCategories(),be(()=>{Le.replace(),this.setupObserver()}),this.isLoading=!1,console.log("PersonalitiesZoo initialization complete.")},beforeUnmount(){this.observer&&(this.observer.disconnect(),this.observer=null),clearTimeout(this.searchDebounceTimer)},updated(){be(()=>{Le.replace()})}},ykn={class:"user-settings-panel flex flex-col mb-2 rounded-lg shadow-lg p-4"},bkn={class:"flex flex-row justify-between items-center mb-4 flex-wrap gap-y-2"},Ekn={class:"flex items-center flex-wrap"},Skn={key:0,class:"flex items-center mr-2 text-lg text-blue-600 dark:text-blue-300"},xkn=["title"],Lkn={class:"flex items-center space-x-3 shrink-0"},Ckn={key:0,class:"text-base font-semibold cursor-pointer select-none items-center flex flex-row"},Akn={class:"flex -space-x-4 items-center"},wkn={class:"group items-center flex flex-row"},Okn=["onClick","title"],Mkn=["src"],Rkn=["onClick"],Nkn=["title"],Dkn={class:"flex flex-col sm:flex-row gap-4 mb-4"},Ikn={class:"flex-grow"},kkn={class:"relative"},Hkn={class:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none"},Pkn={key:0,"data-feather":"search",class:"w-5 h-5 text-blue-400 dark:text-blue-500"},$kn={key:1,role:"status"},Vkn={class:"flex-shrink-0 sm:w-64"},Bkn={value:""},Fkn={key:0,value:"Starred"},Ukn={key:1,disabled:"",class:"text-blue-400 dark:text-blue-600"},qkn=["value"],Gkn={key:0,class:"flex justify-center items-center p-10 text-blue-500 dark:text-blue-400"},jkn={key:1,class:"text-center text-blue-500 dark:text-blue-400 py-10"},zkn={key:2,class:"overflow-y-auto flex-grow personalities-grid-container scrollbar scrollbar-thin",style:{"max-height":"calc(100vh - 300px)"}},Ykn={class:"label block ml-2 mb-2"},Wkn={ref:"sentinel",class:"h-10"},Kkn={key:0,class:"flex justify-center items-center p-4 text-blue-500 dark:text-blue-400"};function Zkn(t,e,n,o,r,i){const s=We("PersonalityEntry");return N(),H("div",ykn,[S("div",bkn,[S("div",Ekn,[e[8]||(e[8]=S("p",{class:"text-xl font-semibold cursor-default select-none mr-3 text-blue-800 dark:text-blue-100"}," Personalities Zoo ",-1)),i.active_personality_name?(N(),H("div",Skn,[e[7]||(e[7]=S("span",{class:"mx-2 text-blue-400 dark:text-blue-500"},"|",-1)),S("span",{class:"font-bold line-clamp-1",title:`Active: ${i.active_personality_name}`},J(i.active_personality_name),9,xkn)])):Z("",!0)]),S("div",Lkn,[i.mountedPersArr.length>0?(N(),H("div",Ckn,[S("div",Akn,[(N(!0),H(Ae,null,Ue(i.displayedMountedPersonalities,(a,l)=>(N(),H("div",{class:"relative hover:-translate-y-1 duration-300 hover:z-10 shrink-0",key:l+"-"+a.name,ref_for:!0,ref:"mountedPersonalitiesRefs"},[S("div",wkn,[S("button",{onClick:oe(c=>i.onPersonalitySelected({personality:a,isMounted:!0}),["stop"]),title:`Select: ${a.name}`},[S("img",{src:i.getPersonalityIconUrl(a.avatar),onError:e[0]||(e[0]=(...c)=>i.personalityImgPlaceholder&&i.personalityImgPlaceholder(...c)),class:Ee(["w-8 h-8 rounded-full object-cover border-2 active:scale-90 group-hover:border-blue-500 dark:group-hover:border-blue-400",i.isActivePersonality(a)?"border-blue-500 dark:border-blue-400":"border-blue-300 dark:border-blue-600"])},null,42,Mkn)],8,Okn),S("button",{onClick:oe(c=>i.unmountPersonality({personality:a}),["stop"]),class:"absolute -top-1 -right-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150",title:"Unmount personality"},e[9]||(e[9]=[S("span",{class:"bg-red-500 hover:bg-red-600 text-white rounded-full p-0.5 flex items-center justify-center shadow-md"},[S("i",{"data-feather":"x",class:"w-3 h-3 stroke-current"})],-1)]),8,Rkn)])]))),128)),i.mountedPersArr.length>r.maxDisplayedMounted?(N(),H("div",{key:0,class:"w-8 h-8 rounded-full bg-blue-200 dark:bg-blue-700 border-2 border-blue-300 dark:border-blue-600 flex items-center justify-center text-xs font-semibold text-blue-600 dark:text-blue-300 cursor-default",title:`${i.mountedPersArr.length-r.maxDisplayedMounted} more mounted`}," +"+J(i.mountedPersArr.length-r.maxDisplayedMounted),9,Nkn)):Z("",!0)])])):Z("",!0),i.mountedPersArr.length>0?(N(),H("button",{key:1,onClick:e[1]||(e[1]=oe(a=>i.unmountAll(),["stop"])),class:"p-1 bg-red-100 hover:bg-red-200 dark:bg-red-900 dark:hover:bg-red-800 rounded-full border border-red-300 dark:border-red-700 active:scale-90",title:"Unmount All Personalities"},e[10]||(e[10]=[S("i",{"data-feather":"x-octagon",class:"w-4 h-4 text-red-600 dark:text-red-400 stroke-current"},null,-1)]))):Z("",!0)])]),S("div",Dkn,[S("div",Ikn,[e[12]||(e[12]=S("label",{for:"personality-search",class:"sr-only"},"Search",-1)),S("div",kkn,[S("div",Hkn,[r.searchPersonalityInProgress?(N(),H("div",$kn,e[11]||(e[11]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 text-blue-400 animate-spin dark:text-blue-500 fill-blue-500",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})],-1)]))):(N(),H("i",Pkn))]),Ce(S("input",{type:"search",id:"personality-search",class:"block w-full p-3 pl-10 text-sm input text-blue-900 dark:text-blue-100",placeholder:"Search name, author, description...",required:"","onUpdate:modelValue":e[2]||(e[2]=a=>r.searchPersonality=a),onInput:e[3]||(e[3]=(...a)=>i.searchPersonality_func&&i.searchPersonality_func(...a))},null,544),[[Je,r.searchPersonality]]),r.searchPersonality?(N(),H("button",{key:0,onClick:e[4]||(e[4]=oe((...a)=>i.clearSearch&&i.clearSearch(...a),["stop"])),type:"button",class:"text-white absolute right-2.5 bottom-1.5 bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-xs px-3 py-1.5 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"}," Clear ")):Z("",!0)])]),S("div",Vkn,[e[13]||(e[13]=S("label",{for:"persCat",class:"sr-only"},"Category",-1)),Ce(S("select",{id:"persCat","onUpdate:modelValue":e[5]||(e[5]=a=>r.selectedCategory=a),onChange:e[6]||(e[6]=(...a)=>i.applyFiltersAndSort&&i.applyFiltersAndSort(...a)),class:"block w-full p-3 text-sm input text-blue-900 dark:text-blue-100"},[S("option",Bkn,"All Categories ("+J(r.allPersonalities.length)+")",1),r.starredPaths.length>0?(N(),H("option",Fkn,"⭐ Starred ("+J(r.starredPaths.length)+")",1)):Z("",!0),r.starredPaths.length>0&&r.persCatgArr.length>0?(N(),H("option",Ukn,"──────────")):Z("",!0),(N(!0),H(Ae,null,Ue(r.persCatgArr,(a,l)=>(N(),H("option",{key:l,value:a},J(a)+" ("+J(i.getCategoryCount(a))+") ",9,qkn))),128))],544),[[Ir,r.selectedCategory]])])]),r.isLoading&&r.allPersonalities.length===0?(N(),H("div",Gkn,e[14]||(e[14]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 mr-2 text-blue-300 animate-spin dark:text-blue-600 fill-blue-500",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading personalities...",-1)]))):i.fullyFilteredPersonalities.length===0?(N(),H("div",jkn," No personalities found"+J(r.searchPersonality?' matching "'+r.searchPersonality+'"':"")+J(r.selectedCategory&&r.selectedCategory!=="Starred"?' in category "'+r.selectedCategory+'"':"")+J(r.selectedCategory==="Starred"?" in Starred":"")+". ",1)):(N(),H("div",zkn,[S("label",Ykn,J(i.getResultLabel())+": ("+J(i.fullyFilteredPersonalities.length)+") ",1),(N(),H("div",{key:r.selectedCategory+"-"+r.searchPersonality,class:"p-2 pb-0 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},[ne(O2,{name:"list"},{default:je(()=>[(N(!0),H(Ae,null,Ue(i.renderedPersonalities,(a,l)=>(N(),it(s,{key:"pers-"+(a.id||`${a.category}-${a.folder}-${l}`),personality:a,select_language:!0,full_path:a.full_path,"is-mounted":a.isMounted,"is-active":i.isActivePersonality(a),"is-processing":a.isProcessing,"is-starred":a.isStarred,"base-url":r.bUrl,onSelect:i.onPersonalitySelected,onMount:i.mountPersonality,onUnmount:i.unmountPersonality,onRemount:i.remountPersonality,onEdit:i.editPersonality,onToggleStar:i.toggleStar,onCopyToCustom:i.onCopyToCustom,onReinstall:i.onPersonalityReinstall,onSettings:i.onSettingsPersonality,onCopyPersonalityName:i.onCopyPersonalityName,onOpenFolder:i.handleOpenFolder,onError:i.personalityImgPlaceholder},null,8,["personality","full_path","is-mounted","is-active","is-processing","is-starred","base-url","onSelect","onMount","onUnmount","onRemount","onEdit","onToggleStar","onCopyToCustom","onReinstall","onSettings","onCopyPersonalityName","onOpenFolder","onError"]))),128))]),_:1})])),S("div",Wkn,[r.isLoading&&i.renderedPersonalities.length>0&&i.renderedPersonalities.length{Le.replace()})},methods:{show_settings(){this.onShowSettings(this)},formatDate(t){const e={year:"numeric",month:"short",day:"numeric"};return new Date(t).toLocaleDateString(void 0,e)},showThumbnail(){this.thumbnailVisible=!0},hideThumbnail(){this.thumbnailVisible=!1},updateThumbnailPosition(t){this.thumbnailPosition={x:t.clientX+10,y:t.clientY+10}},getImgUrl(){return Jkn+this.function_call.avatar},defaultImg(t){t.target.src=Xkn},toggleFavorite(){this.onToggleFavorite(this)},showFolder(){this.onOpenFolder(this)},toggleCopyLink(){this.onCopyfunction_callName(this)},edit(){this.onEdit(this)},copyToCustom(){this.onCopyToCustom(this)},reMount(){this.onRemount(this)},mount(){console.log("Mounting"),this.onMount(this)},unmount(){console.log("Unmounting"),console.log(this.onUnMount),this.onUnMount(this),this.mounted=!1},showHelp(){this.renderedHelp=Et(this.function_call.help),this.showHelpPopup=!0},closeHelp(){this.showHelpPopup=!1}},watch:{}},tHn=["title"],nHn={class:"flex-grow"},rHn={class:"flex items-center mb-4"},iHn=["src"],oHn={class:"font-bold text-xl text-gray-800 cursor-pointer"},sHn={class:"text-sm text-gray-600"},aHn={class:"text-sm text-gray-600"},lHn={class:"text-sm text-gray-600"},cHn={key:0,class:"text-sm text-gray-600"},uHn={key:1,class:"text-sm text-gray-600"},dHn={class:"mb-4"},THn=["innerHTML"],fHn={class:"mt-auto pt-4 border-t"},pHn={class:"flex justify-between items-center flex-wrap"},hHn=["title"],mHn=["fill"],gHn=["src"],_Hn={key:1,class:"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center"},QHn={class:"bg-white p-4 rounded-lg shadow-lg w-[500px] h-[400px] flex flex-col"},vHn={class:"flex justify-between items-center mb-2"},yHn={class:"flex-grow overflow-auto"},bHn=["innerHTML"];function EHn(t,e,n,o,r,i){const s=We("InteractiveMenu");return N(),H("div",{class:Ee(["app-card flex flex-col h-full",r.mounted?"border-primary-light":"border-transparent"]),title:n.function_call.installed?"":"Not installed"},[S("div",nHn,[S("div",rHn,[S("img",{src:i.getImgUrl(),onError:e[0]||(e[0]=a=>i.defaultImg(a)),alt:"function_call Icon",class:"w-16 h-16 rounded-full border border-gray-300 mr-4 cursor-pointer",onMouseover:e[1]||(e[1]=(...a)=>i.showThumbnail&&i.showThumbnail(...a)),onMousemove:e[2]||(e[2]=(...a)=>i.updateThumbnailPosition&&i.updateThumbnailPosition(...a)),onMouseleave:e[3]||(e[3]=(...a)=>i.hideThumbnail&&i.hideThumbnail(...a))},null,40,iHn),S("div",null,[S("h3",oHn,J(n.function_call.name),1),S("p",sHn,"Author: "+J(n.function_call.author),1),S("p",aHn,"Version: "+J(n.function_call.version),1),S("p",lHn,"Category: "+J(n.function_call.category),1),n.function_call.creation_date?(N(),H("p",cHn,"Creation Date: "+J(i.formatDate(n.function_call.creation_date)),1)):Z("",!0),n.function_call.last_update_date?(N(),H("p",uHn,"Last update Date: "+J(i.formatDate(n.function_call.last_update_date)),1)):Z("",!0)]),n.function_call.help?(N(),H("button",{key:0,onClick:e[4]||(e[4]=(...a)=>i.showHelp&&i.showHelp(...a)),class:"ml-2 text-blue-500 hover:text-blue-600 transition duration-300 ease-in-out",title:"Help"},e[9]||(e[9]=[S("i",{"data-feather":"help-circle",class:"h-6 w-6"},null,-1)]))):Z("",!0)]),S("div",dHn,[e[10]||(e[10]=S("h4",{class:"font-semibold mb-1 text-gray-700"},"Description:",-1)),S("p",{class:"text-sm text-gray-600 h-20 overflow-y-auto",innerHTML:n.function_call.description},null,8,THn)])]),S("div",fHn,[S("div",pHn,[S("button",{onClick:e[5]||(e[5]=(...a)=>i.toggleFavorite&&i.toggleFavorite(...a)),class:"text-yellow-500 hover:text-yellow-600 transition duration-300 ease-in-out",title:t.isFavorite?"Remove from favorites":"Add to favorites"},[(N(),H("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:t.isFavorite?"currentColor":"none",viewBox:"0 0 24 24",stroke:"currentColor"},e[11]||(e[11]=[S("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,mHn))],8,hHn),S("button",{onClick:e[6]||(e[6]=(...a)=>i.showFolder&&i.showFolder(...a)),class:"text-purple-500 hover:text-purple-600 transition duration-300 ease-in-out",title:"Show Folder"},e[12]||(e[12]=[S("i",{"data-feather":"folder",class:"h-6 w-6"},null,-1)])),r.mounted?(N(),H("button",{key:0,onClick:e[7]||(e[7]=(...a)=>i.show_settings&&i.show_settings(...a)),class:"text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Settings"},e[13]||(e[13]=[S("i",{"data-feather":"settings",class:"h-6 w-6"},null,-1)]))):Z("",!0),ne(s,{commands:i.commandsList,force_position:2,title:"Menu",class:"text-gray-500 hover:text-gray-600 transition duration-300 ease-in-out"},null,8,["commands"])])]),r.thumbnailVisible?(N(),H("div",{key:0,style:Jt({top:r.thumbnailPosition.y+"px",left:r.thumbnailPosition.x+"px"}),class:"fixed z-50 w-20 h-20 rounded-full overflow-hidden"},[S("img",{src:i.getImgUrl(),class:"w-full h-full object-fill"},null,8,gHn)],4)):Z("",!0),r.showHelpPopup?(N(),H("div",_Hn,[S("div",QHn,[S("div",vHn,[e[14]||(e[14]=S("h2",{class:"text-lg font-bold"},"Help",-1)),S("button",{onClick:e[8]||(e[8]=(...a)=>i.closeHelp&&i.closeHelp(...a)),class:"text-red-500 hover:text-red-600"},"Close")]),S("div",yHn,[S("div",{innerHTML:r.renderedHelp},null,8,bHn)])])])):Z("",!0)],10,tHn)}const SHn=ze(eHn,[["render",EHn]]),xHn="/assets/default_function-CyfcuNmo.png";function LHn(t,e){let n;return function(...r){const i=()=>{clearTimeout(n),t.apply(this,r)};clearTimeout(n),n=setTimeout(i,e)}}const CHn={name:"FunctionCallsZoo",components:{FunctionEntry:SHn},props:{config:{type:Object,required:!0},api_post_req:{type:Function,required:!0},api_get_req:{type:Function,required:!0},show_toast:{type:Function,required:!0},show_yes_no_dialog:{type:Function,required:!0},show_universal_form:{type:Function,required:!0},show_message_box:{type:Function,required:!0},client_id:{type:String,required:!0}},emits:["update:setting"],data(){return{allFunctions:[],categoriesFunc:[],filteredFunctions:[],pagedFunctions:[],isLoadingFunctions:!1,isSearchingFunc:!1,searchTermFunc:"",selectedCategoryFunc:"",sortOptionFunc:"mounted",itemsPerPageFunc:15,currentPageFunc:1,maxDisplayedMountedFunc:7,functionEntryRefs:{},observerFunc:null,defaultIcon:xHn,axiosBaseUrl:fe.defaults.baseURL||""}},computed:{mountedFunctionPathsSet(){var t;return new Set(((t=this.config)==null?void 0:t.mounted_functions)||[])},mountedFunctions(){return this.allFunctions.filter(t=>this.mountedFunctionPathsSet.has(t.full_path))},displayedMountedFunctions(){return[...this.mountedFunctions].sort((e,n)=>(e.name||"").localeCompare(n.name||"")).slice(0,this.maxDisplayedMountedFunc)},hasMoreFunctionsToLoad(){return this.pagedFunctions.length{const r=e.has(o.full_path);o.isMounted!==r&&(o.isMounted=r,n=!0)}),n&&(console.log("Watcher: Re-applying filters and sort due to mounted status change."),this.resetAndReloadFunctions()),this.featherReplace()},deep:!0},searchTermFunc(){this.debouncedResetAndReload()},selectedCategoryFunc(){this.debouncedResetAndReload()},sortOptionFunc(){this.debouncedResetAndReload()},allFunctions:{handler(){console.log("Watcher: allFunctions list changed. Triggering initial load."),this.resetAndReloadFunctions()}}},methods:{getFunctionIcon(t){return t?t.startsWith("http://")||t.startsWith("https://")||t.startsWith("/")?t.startsWith("/")?`${this.axiosBaseUrl}${t}`:t:`${this.axiosBaseUrl}/${t}`:this.defaultIcon},imgPlaceholder(t){t.target.src=this.defaultIcon},featherReplace(){this.$nextTick(()=>{try{Le.replace()}catch(t){console.error("Feather replace error:",t)}})},setFunctionRef(t,e){e&&(this.functionEntryRefs[t]=e)},async fetchFunctionsAndCategories(){if(!this.isLoadingFunctions){this.isLoadingFunctions=!0,console.log("Fetching functions and categories...");try{const t=await this.api_get_req("list_function_calls"),e=(t==null?void 0:t.function_calls)||[],n=new Set(e.map(o=>o.category).filter(Boolean));this.categoriesFunc=Array.from(n).sort(),this.allFunctions=e.map(o=>{const r=`${o.category}/${o.name}`,i=o.id||r;return{...o,full_path:r,isMounted:!1,id:i,isProcessing:!1}}),console.log(`Fetched ${this.allFunctions.length} total functions.`),this.$nextTick(()=>{var o;(o=this.config)!=null&&o.mounted_functions&&this.watch["config.mounted_functions"].handler.call(this,this.config.mounted_functions)})}catch(t){this.show_toast("Failed to load functions list.",4,!1),console.error("Error fetching functions:",t),this.allFunctions=[],this.categoriesFunc=[]}finally{this.isLoadingFunctions=!1}}},applyFiltersAndSortFunc(){console.time("FilterSortFunctions");let t=[...this.allFunctions];if(this.selectedCategoryFunc&&(t=t.filter(e=>e.category===this.selectedCategoryFunc)),this.searchTermFunc){const e=this.searchTermFunc.toLowerCase();t=t.filter(n=>{var c,u,d,f,T;const o=(c=n.name)==null?void 0:c.toLowerCase().includes(e),r=(u=n.author)==null?void 0:u.toLowerCase().includes(e),i=(d=n.description)==null?void 0:d.toLowerCase().includes(e),s=(f=n.category)==null?void 0:f.toLowerCase().includes(e),a=(T=n.full_path)==null?void 0:T.toLowerCase().includes(e),l=Array.isArray(n.keywords)?n.keywords.some(h=>h.toLowerCase().includes(e)):!1;return o||r||i||s||a||l})}t.sort((e,n)=>{if(this.sortOptionFunc==="mounted"){if(e.isMounted&&!n.isMounted)return-1;if(!e.isMounted&&n.isMounted)return 1}switch(this.sortOptionFunc!=="mounted"?this.sortOptionFunc:"name"){case"name":return(e.name||"").localeCompare(n.name||"");case"author":return(e.author||"").localeCompare(n.author||"");case"category":return(e.category||"").localeCompare(n.category||"");default:return 0}}),this.filteredFunctions=t,console.timeEnd("FilterSortFunctions"),console.log(`Filtered/Sorted functions: ${this.filteredFunctions.length}`)},resetAndReloadFunctions(){this.currentPageFunc=1,this.pagedFunctions=[],this.applyFiltersAndSortFunc(),this.$nextTick(()=>{this.loadMoreFunctions()})},debouncedResetAndReload:LHn(function(){this.isSearchingFunc=!0,this.resetAndReloadFunctions(),setTimeout(()=>{this.isSearchingFunc=!1},100)},300),loadMoreFunctions(){if(this.isLoadingFunctions||this.isSearchingFunc||!this.hasMoreFunctionsToLoad)return;console.log(`Loading page ${this.currentPageFunc}`);const t=(this.currentPageFunc-1)*this.itemsPerPageFunc,e=t+this.itemsPerPageFunc,n=this.filteredFunctions.slice(t,e),o=new Set(this.pagedFunctions.map(i=>i.id||i.full_path)),r=n.filter(i=>!o.has(i.id||i.full_path));r.length>0?(this.pagedFunctions.push(...r),this.currentPageFunc++,this.featherReplace()):n.length>0&&console.log("Load more triggered but items already seem to be loaded.")},setFunctionProcessing(t,e){const n=i=>{i&&(i.isProcessing=e)},o=this.allFunctions.findIndex(i=>(i.id||i.full_path)===t);n(this.allFunctions[o]);const r=this.pagedFunctions.findIndex(i=>(i.id||i.full_path)===t);n(this.pagedFunctions[r])},async handleMount(t){if(t.isMounted||t.isProcessing)return;const e=t.id||t.full_path;this.setFunctionProcessing(e,!0),this.show_toast(`Mounting ${t.name}...`,3,!0);try{const n=await this.api_post_req("mount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});if(n&&n.status){this.show_toast(`${t.name} mounted successfully.`,4,!0);const o=[...this.mountedFunctionPathsSet,t.full_path];this.$emit("update:setting",{key:"mounted_functions",value:o})}else this.show_toast(`Failed to mount ${t.name}: ${(n==null?void 0:n.error)||"Error"}`,4,!1)}catch(n){this.show_toast(`Error mounting ${t.name}: ${n.message||n}`,4,!1),console.error("Mount error:",n)}finally{this.setFunctionProcessing(e,!1)}},async handleUnmount(t){var n;if(!t.isMounted||t.isProcessing)return;const e=t.id||t.full_path;this.setFunctionProcessing(e,!0),this.show_toast(`Unmounting ${t.name}...`,3,!0);try{const o=await this.api_post_req("unmount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});if(o&&o.status){this.show_toast(`${t.name} unmounted.`,4,!0);const r=(((n=this.config)==null?void 0:n.mounted_functions)||[]).filter(i=>i!==t.full_path);this.$emit("update:setting",{key:"mounted_functions",value:r})}else this.show_toast(`Failed to unmount ${t.name}: ${(o==null?void 0:o.error)||"Error"}`,4,!1)}catch(o){this.show_toast(`Error unmounting ${t.name}: ${o.message||o}`,4,!1),console.error("Unmount error:",o)}finally{this.setFunctionProcessing(e,!1)}},async unmountAll(){if(!(this.mountedFunctions.length===0||!await this.show_yes_no_dialog(`Unmount all ${this.mountedFunctions.length} functions?`,"Unmount All","Cancel"))){this.show_toast("Unmounting all functions...",3,!0),this.mountedFunctions.forEach(e=>this.setFunctionProcessing(e.id||e.full_path,!0));try{const e=await this.api_post_req("unmount_all_functions",{client_id:this.client_id});e&&e.status?(this.show_toast("All functions unmounted.",4,!0),this.$emit("update:setting",{key:"mounted_functions",value:[]})):(this.show_toast(`Failed to unmount all: ${(e==null?void 0:e.error)||"Error"}`,4,!1),this.mountedFunctions.forEach(n=>this.setFunctionProcessing(n.id||n.full_path,!1)))}catch(e){this.show_toast(`Error unmounting all: ${e.message||e}`,4,!1),console.error("Unmount all error:",e),this.mountedFunctions.forEach(n=>this.setFunctionProcessing(n.id||n.full_path,!1))}}},async handleRemount(t){const e=t.id||t.full_path;if(!t.isProcessing){this.setFunctionProcessing(e,!0),this.show_toast(`Remounting ${t.name}...`,3,!0);try{let n=[...this.config.mounted_functions||[]];if(n.includes(t.full_path)){const i=await this.api_post_req("unmount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});if(!i||!i.status){this.show_toast(`Failed to unmount ${t.name} during remount. Aborting.`,4,!1),this.setFunctionProcessing(e,!1);return}n=n.filter(s=>s!==t.full_path),this.$emit("update:setting",{key:"mounted_functions",value:n}),await be(),console.log("Remount Step 1: Unmounted and emitted.")}const r=await this.api_post_req("mount_function_call",{client_id:this.client_id,function_category:t.category,function_name:t.name});r&&r.status?(this.show_toast(`${t.name} remounted successfully.`,4,!0),n.includes(t.full_path)||n.push(t.full_path),this.$emit("update:setting",{key:"mounted_functions",value:n}),console.log("Remount Step 2: Mounted and emitted.")):this.show_toast(`Failed to mount ${t.name} during remount: ${(r==null?void 0:r.error)||"Error"}`,4,!1)}catch(n){this.show_toast(`Error remounting ${t.name}: ${n.message||n}`,4,!1),console.error("Remount error:",n)}finally{this.setFunctionProcessing(e,!1)}}},async handleSettings(t){if(t.isProcessing)return;const e=t.id||t.full_path;this.setFunctionProcessing(e,!0);try{const n=await this.api_post_req("get_function_call_settings",{client_id:this.client_id,category:t.category,name:t.name});if(n&&typeof n=="object"&&Object.keys(n).length>0){const o=await this.show_universal_form(n,`Function Settings - ${t.name}`,"Save","Cancel");if(o!=null){const r=await this.api_post_req("set_function_call_settings",{client_id:this.client_id,category:t.category,name:t.name,settings:o});r&&r.status?this.show_toast(`Settings for ${t.name} updated.`,4,!0):this.show_toast(`Failed to update settings for ${t.name}: ${(r==null?void 0:r.error)||"Error"}`,4,!1)}else this.show_toast(`Settings update for ${t.name} cancelled.`,3,!0)}else n&&typeof n=="object"&&Object.keys(n).length===0?this.show_message_box(`Function "${t.name}" has no configurable settings.`):this.show_toast(`Could not retrieve settings for ${t.name}: ${(n==null?void 0:n.error)||"Invalid response"}`,4,!1)}catch(n){this.show_toast(`Error accessing settings for ${t.name}: ${n.message||n}`,4,!1),console.error("Settings error:",n)}finally{this.setFunctionProcessing(e,!1)}},async handleEdit(t){this.show_toast(`Opening folder containing "${t.name}" for editing...`,3,!0),await this.handleOpenFolder(t)},async handleCopyToCustom(t){if(!await this.show_yes_no_dialog(`Copy "${t.name}" from "${t.category}" to your 'custom_functions' folder?`,"Copy","Cancel")||t.isProcessing)return;const n=t.id||t.full_path;this.setFunctionProcessing(n,!0);try{const o=await this.api_post_req("copy_to_custom_functions",{client_id:this.client_id,category:t.category,name:t.name});o&&o.status?(this.show_message_box(`Function "${t.name}" copied to 'custom_functions'. The list will refresh shortly.`),await this.fetchFunctionsAndCategories()):this.show_toast(`Failed to copy ${t.name}: ${(o==null?void 0:o.error)||"Already exists in custom?"}`,4,!1)}catch(o){this.show_toast(`Error copying ${t.name}: ${o.message||o}`,4,!1),console.error("Copy to custom error:",o)}finally{this.setFunctionProcessing(n,!1)}},handleCopyName(t){navigator.clipboard.writeText(t.name).then(()=>this.show_toast(`Copied name: ${t.name}`,3,!0)).catch(e=>{this.show_toast("Failed to copy name to clipboard.",3,!1),console.error("Clipboard copy failed:",e)})},async handleOpenFolder(t){try{await this.api_post_req("open_function_folder",{client_id:this.client_id,category:t.category,name:t.name})}catch(e){this.show_toast(`Error opening folder for ${t.name}: ${e.message||e}`,4,!1),console.error("Open folder error:",e)}},scrollToFunction(t){const e=t.id||t.full_path,n=this.functionEntryRefs[e];if(n&&n.$el){const o=n.$el;o.scrollIntoView({behavior:"smooth",block:"center"}),o.classList.add("ring-2","ring-offset-2","ring-blue-500","dark:ring-offset-gray-800","transition-all","duration-1000","ease-out"),setTimeout(()=>{o.classList.remove("ring-2","ring-offset-2","ring-blue-500","dark:ring-offset-gray-800","transition-all","duration-1000","ease-out")},1500)}else console.warn(`Could not find ref $el to scroll to for function ID: ${e}. Is it loaded?`),this.hasMoreFunctionsToLoad&&!this.pagedFunctions.some(o=>(o.id||o.full_path)===e)?(this.show_toast(`Function ${t.name} not visible, attempting to load more...`,3,!0),this.loadMoreFunctions(),setTimeout(()=>this.scrollToFunction(t),500)):this.show_toast(`Could not scroll to ${t.name}.`,3,!1)},setupIntersectionObserverFunc(){this.disconnectIntersectionObserver();const t={root:null,rootMargin:"100px",threshold:.1};this.observerFunc=new IntersectionObserver(n=>{n.forEach(o=>{o.isIntersecting&&this.hasMoreFunctionsToLoad&&this.loadMoreFunctions()})},t);const e=this.$refs.loadMoreTriggerFunc;e?(this.observerFunc.observe(e),console.log("IntersectionObserver setup complete.")):this.$nextTick(()=>{const n=this.$refs.loadMoreTriggerFunc;n?(this.observerFunc.observe(n),console.log("IntersectionObserver setup complete (nextTick).")):console.error("Load more trigger element not found for IntersectionObserver setup.")})},disconnectIntersectionObserver(){if(this.observerFunc){console.log("Disconnecting IntersectionObserver.");const t=this.$refs.loadMoreTriggerFunc;if(t)try{this.observerFunc.unobserve(t)}catch(e){console.warn("Error unobserving trigger:",e)}this.observerFunc.disconnect(),this.observerFunc=null}}},mounted(){console.log("FunctionCallsZoo Mounted."),this.fetchFunctionsAndCategories(),this.featherReplace(),this.$nextTick(()=>{this.setupIntersectionObserverFunc()})},beforeUpdate(){this.functionEntryRefs={}},updated(){this.featherReplace(),this.$nextTick(()=>{const t=this.$refs.loadMoreTriggerFunc;if(t&&this.observerFunc&&!this.observerFunc.takeRecords().some(e=>e.target===t)){console.warn("IntersectionObserver detached from trigger, re-observing.");try{this.observerFunc.unobserve(t)}catch{}this.observerFunc.observe(t)}else t&&!this.observerFunc&&(console.warn("IntersectionObserver lost, re-setting up."),this.setupIntersectionObserverFunc())})},unmounted(){console.log("FunctionCallsZoo Unmounted."),this.disconnectIntersectionObserver()}},AHn={class:"user-settings-panel space-y-6 p-4 md:p-6 rounded-lg shadow-md bg-white dark:bg-gray-800"},wHn={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b border-blue-300 dark:border-blue-600 pb-3 mb-4"},OHn={class:"flex flex-col items-end"},MHn={class:"flex items-center flex-wrap gap-2 text-sm font-medium mb-1"},RHn={key:0,class:"text-blue-500 dark:text-blue-500 italic text-xs"},NHn={key:1,class:"flex -space-x-3 items-center"},DHn=["src","title","onClick"],IHn=["onClick"],kHn=["title"],HHn={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4 items-center"},PHn={class:"relative md:col-span-1"},$Hn={key:0,class:"absolute inset-y-0 right-0 pr-3 flex items-center"},VHn={class:"md:col-span-1"},BHn=["value"],FHn={class:"md:col-span-1"},UHn={key:0,class:"flex justify-center items-center p-10 text-blue-500 dark:text-blue-400"},qHn={key:1,class:"text-center text-blue-500 dark:text-blue-400 py-10"},GHn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 scrollbar-thin scrollbar-thumb-blue-300 scrollbar-track-blue-100 dark:scrollbar-thumb-blue-700 dark:scrollbar-track-blue-900",ref:"scrollContainerFunc"},jHn={ref:"loadMoreTriggerFunc",class:"h-10"},zHn={key:0,class:"flex justify-center items-center text-center text-blue-500 dark:text-blue-400 py-4"};function YHn(t,e,n,o,r,i){const s=We("FunctionEntry");return N(),H("div",AHn,[S("div",wHn,[e[9]||(e[9]=S("h2",{class:"text-2xl font-semibold text-blue-800 dark:text-blue-100 mb-2 sm:mb-0"}," Function Calls Zoo ",-1)),S("div",OHn,[S("div",MHn,[e[7]||(e[7]=S("span",{class:"text-blue-600 dark:text-blue-400"},"Mounted:",-1)),i.mountedFunctions.length===0?(N(),H("div",RHn,"None")):(N(),H("div",NHn,[(N(!0),H(Ae,null,Ue(i.displayedMountedFunctions,(a,l)=>(N(),H("div",{key:`mounted-${a.id||a.full_path||l}`,class:"relative group"},[S("img",{src:i.getFunctionIcon(a.icon),onError:e[0]||(e[0]=(...c)=>i.imgPlaceholder&&i.imgPlaceholder(...c)),class:"w-7 h-7 rounded-full object-cover ring-2 ring-white dark:ring-gray-700 cursor-pointer hover:ring-blue-500 dark:hover:ring-blue-400 transition-all",title:`${a.name} (${a.category})`,onClick:c=>i.scrollToFunction(a)},null,40,DHn),S("button",{onClick:oe(c=>i.handleUnmount(a),["stop"]),class:"absolute -top-1 -right-1 p-0.5 rounded-full bg-red-600 text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-1 dark:focus:ring-offset-gray-900",title:"Unmount"},e[6]||(e[6]=[S("i",{"data-feather":"x",class:"w-3 h-3 stroke-current"},null,-1)]),8,IHn)]))),128)),i.mountedFunctions.length>r.maxDisplayedMountedFunc?(N(),H("div",{key:0,class:"w-7 h-7 rounded-full bg-blue-200 dark:bg-blue-700 ring-2 ring-white dark:ring-gray-700 flex items-center justify-center text-xs font-semibold text-blue-600 dark:text-blue-300",title:`${i.mountedFunctions.length-r.maxDisplayedMountedFunc} more mounted`}," +"+J(i.mountedFunctions.length-r.maxDisplayedMountedFunc),9,kHn)):Z("",!0)]))]),i.mountedFunctions.length>0?(N(),H("button",{key:0,onClick:e[1]||(e[1]=(...a)=>i.unmountAll&&i.unmountAll(...a)),class:"btn btn-sm bg-red-600 hover:bg-red-700 text-white text-xs mt-1 focus:ring-red-300 dark:focus:ring-red-600"},e[8]||(e[8]=[S("i",{"data-feather":"x-octagon",class:"w-3 h-3 mr-1 stroke-current"},null,-1),Oe("Unmount All ")]))):Z("",!0)])]),e[18]||(e[18]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400"}," Mount functions to grant the AI specific capabilities and tools it can use during conversations. Requires a model trained for function calling. ",-1)),S("div",HHn,[S("div",PHn,[e[11]||(e[11]=S("div",{class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},[S("i",{"data-feather":"search",class:"w-5 h-5 text-blue-400 dark:text-blue-500"})],-1)),Ce(S("input",{type:"search","onUpdate:modelValue":e[2]||(e[2]=a=>r.searchTermFunc=a),placeholder:"Search functions...",class:"input pl-10 w-full placeholder:text-blue-400 dark:placeholder:text-blue-500",onInput:e[3]||(e[3]=(...a)=>t.debounceSearchFunc&&t.debounceSearchFunc(...a))},null,544),[[Je,r.searchTermFunc]]),r.isSearchingFunc?(N(),H("div",$Hn,e[10]||(e[10]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 text-blue-400 dark:text-blue-500 animate-spin fill-blue-500 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1)]))):Z("",!0)]),S("div",VHn,[e[13]||(e[13]=S("label",{for:"func-category",class:"sr-only"},"Filter by Category",-1)),Ce(S("select",{id:"func-category","onUpdate:modelValue":e[4]||(e[4]=a=>r.selectedCategoryFunc=a),class:"input w-full"},[e[12]||(e[12]=S("option",{value:""},"All Categories",-1)),(N(!0),H(Ae,null,Ue(r.categoriesFunc,a=>(N(),H("option",{key:a,value:a},J(a),9,BHn))),128))],512),[[Ir,r.selectedCategoryFunc]])]),S("div",FHn,[e[15]||(e[15]=S("label",{for:"func-sort",class:"sr-only"},"Sort functions by",-1)),Ce(S("select",{id:"func-sort","onUpdate:modelValue":e[5]||(e[5]=a=>r.sortOptionFunc=a),class:"input w-full"},e[14]||(e[14]=[S("option",{value:"mounted"},"Sort by Mounted",-1),S("option",{value:"name"},"Sort by Name",-1),S("option",{value:"author"},"Sort by Author",-1),S("option",{value:"category"},"Sort by Category",-1)]),512),[[Ir,r.sortOptionFunc]])])]),r.isLoadingFunctions?(N(),H("div",UHn,e[16]||(e[16]=[S("svg",{"aria-hidden":"true",class:"w-8 h-8 mr-2 text-blue-300 dark:text-blue-600 animate-spin fill-blue-500 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading functions...",-1)]))):r.pagedFunctions.length===0&&r.filteredFunctions.length===0?(N(),H("div",qHn," No functions found"+J(r.searchTermFunc?' matching "'+r.searchTermFunc+'"':"")+J(r.selectedCategoryFunc?' in category "'+r.selectedCategoryFunc+'"':"")+". ",1)):Z("",!0),S("div",GHn,[(N(!0),H(Ae,null,Ue(r.pagedFunctions,a=>(N(),it(s,{key:a.id||a.full_path,ref_for:!0,ref:l=>i.setFunctionRef(a.id||a.full_path,l),function_call:a,"is-mounted":a.isMounted,"is-processing":a.isProcessing,"get-icon-url":i.getFunctionIcon,"on-img-error":i.imgPlaceholder,onMount:l=>i.handleMount(a),onUnmount:l=>i.handleUnmount(a),onRemount:l=>i.handleRemount(a),onShowSettings:l=>i.handleSettings(a),onEdit:l=>i.handleEdit(a),onCopyToCustom:l=>i.handleCopyToCustom(a),onCopyName:l=>i.handleCopyName(a),onOpenFolder:l=>i.handleOpenFolder(a)},null,8,["function_call","is-mounted","is-processing","get-icon-url","on-img-error","onMount","onUnmount","onRemount","onShowSettings","onEdit","onCopyToCustom","onCopyName","onOpenFolder"]))),128))],512),S("div",jHn,[i.hasMoreFunctionsToLoad&&!r.isLoadingFunctions&&!r.isSearchingFunc?(N(),H("div",zHn,e[17]||(e[17]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5 mr-2 text-blue-300 dark:text-blue-600 animate-spin fill-blue-500 dark:fill-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),Oe(),S("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"})],-1),S("span",null,"Loading more...",-1)]))):Z("",!0)],512)])}const HO=ze(CHn,[["render",YHn],["__scopeId","data-v-8ff7e3ea"]]),WHn={name:"ModelGenerationParameters",components:{ToggleSwitch:n6},props:{loading:{type:Boolean,default:!1}},emits:["update:setting"],computed:{isDisabled(){return!this.$store.state.config.override_personality_model_parameters}},methods:{updateValue(t,e){let n=e;t!=="seed"&&typeof e!="boolean"?(n=Number(e),isNaN(n)&&(console.warn(`Invalid number input for ${t}:`,e),n=e)):t==="seed"&&(n=parseInt(e),isNaN(n)&&String(e)!=="-"?n=-1:String(e)==="-"?n="-":n<-1&&(n=-1)),!(t!=="seed"&&typeof n=="number"&&isNaN(n))&&(t==="seed"&&n==="-"||this.$emit("update:setting",{key:t,value:n}))},updateBoolean(t,e){this.$emit("update:setting",{key:t,value:!!e})},replaceFeatherIcons(){be(()=>{Le.replace()})}},mounted(){this.replaceFeatherIcons()},updated(){this.replaceFeatherIcons()}},KHn={class:"user-settings-panel space-y-6"},ZHn={class:"toggle-item !justify-start gap-4 border border-blue-200 dark:border-blue-700 rounded-lg p-3 panels-color"},XHn={class:"setting-item"},JHn=["value","disabled"],ePn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},tPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},nPn=["value","disabled"],rPn=["value","disabled"],iPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},oPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},sPn=["value","disabled"],aPn=["value","disabled"],lPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},cPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},uPn=["value","disabled"],dPn=["value","disabled"],TPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},fPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},pPn=["value","disabled"],hPn=["value","disabled"],mPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},gPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},_Pn=["value","disabled"],QPn=["value","disabled"],vPn={class:"setting-item items-start md:items-center border-t border-blue-200 dark:border-blue-700 pt-4 mt-4"},yPn={class:"flex-1 flex flex-col sm:flex-row items-center gap-4 w-full"},bPn=["value","disabled"],EPn=["value","disabled"];function SPn(t,e,n,o,r,i){const s=We("ToggleSwitch");return N(),H("div",KHn,[e[22]||(e[22]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100 border-b border-blue-300 dark:border-blue-600 pb-2"}," Model Generation Parameters ",-1)),e[23]||(e[23]=S("p",{class:"text-sm text-blue-600 dark:text-blue-400 mb-4"}," Adjust the core parameters that influence how the AI generates text. These settings can be overridden by specific personalities unless the option below is checked. ",-1)),S("div",ZHn,[ne(s,{id:"override_personality_model_parameters",checked:t.$store.state.config.override_personality_model_parameters,"onUpdate:checked":e[0]||(e[0]=a=>i.updateBoolean("override_personality_model_parameters",a))},null,8,["checked"]),e[14]||(e[14]=S("label",{for:"override_personality_model_parameters",class:"toggle-label !flex-none"},[Oe(" Override Personality Parameters "),S("span",{class:"toggle-description"},"Force the use of these global parameters, ignoring any settings defined within the selected personality.")],-1))]),S("div",{class:Ee(["space-y-5 pt-4",i.isDisabled?"opacity-50 pointer-events-none":""])},[S("div",XHn,[e[15]||(e[15]=tr('',1)),S("input",{type:"number",id:"seed",value:t.$store.state.config.seed,onInput:e[1]||(e[1]=a=>i.updateValue("seed",parseInt(a.target.value))),class:"input-sm w-full md:w-32",step:"1",placeholder:"-1",disabled:i.isDisabled},null,40,JHn)]),S("div",ePn,[e[16]||(e[16]=tr('',1)),S("div",tPn,[S("input",{id:"temperature-range",value:t.$store.state.config.temperature,onInput:e[2]||(e[2]=a=>i.updateValue("temperature",parseFloat(a.target.value))),type:"range",min:"0",max:"2",step:"0.01",class:"range-input flex-grow",disabled:i.isDisabled},null,40,nPn),S("input",{id:"temperature-number",value:t.$store.state.config.temperature,onInput:e[3]||(e[3]=a=>i.updateValue("temperature",parseFloat(a.target.value))),type:"number",min:"0",max:"2",step:"0.01",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,rPn)])]),S("div",iPn,[e[17]||(e[17]=tr('',1)),S("div",oPn,[S("input",{id:"n_predict-range",value:t.$store.state.config.n_predict,onInput:e[4]||(e[4]=a=>i.updateValue("n_predict",parseInt(a.target.value))),type:"range",min:"32",max:"8192",step:"32",class:"range-input flex-grow",disabled:i.isDisabled},null,40,sPn),S("input",{id:"n_predict-number",value:t.$store.state.config.n_predict,onInput:e[5]||(e[5]=a=>i.updateValue("n_predict",parseInt(a.target.value))),type:"number",min:"32",max:"8192",step:"32",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,aPn)])]),S("div",lPn,[e[18]||(e[18]=tr('',1)),S("div",cPn,[S("input",{id:"top_k-range",value:t.$store.state.config.top_k,onInput:e[6]||(e[6]=a=>i.updateValue("top_k",parseInt(a.target.value))),type:"range",min:"0",max:"100",step:"1",class:"range-input flex-grow",disabled:i.isDisabled},null,40,uPn),S("input",{id:"top_k-number",value:t.$store.state.config.top_k,onInput:e[7]||(e[7]=a=>i.updateValue("top_k",parseInt(a.target.value))),type:"number",min:"0",max:"100",step:"1",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,dPn)])]),S("div",TPn,[e[19]||(e[19]=tr('',1)),S("div",fPn,[S("input",{id:"top_p-range",value:t.$store.state.config.top_p,onInput:e[8]||(e[8]=a=>i.updateValue("top_p",parseFloat(a.target.value))),type:"range",min:"0",max:"1",step:"0.01",class:"range-input flex-grow",disabled:i.isDisabled},null,40,pPn),S("input",{id:"top_p-number",value:t.$store.state.config.top_p,onInput:e[9]||(e[9]=a=>i.updateValue("top_p",parseFloat(a.target.value))),type:"number",min:"0",max:"1",step:"0.01",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,hPn)])]),S("div",mPn,[e[20]||(e[20]=tr('',1)),S("div",gPn,[S("input",{id:"repeat_penalty-range",value:t.$store.state.config.repeat_penalty,onInput:e[10]||(e[10]=a=>i.updateValue("repeat_penalty",parseFloat(a.target.value))),type:"range",min:"0.5",max:"2.0",step:"0.01",class:"range-input flex-grow",disabled:i.isDisabled},null,40,_Pn),S("input",{id:"repeat_penalty-number",value:t.$store.state.config.repeat_penalty,onInput:e[11]||(e[11]=a=>i.updateValue("repeat_penalty",parseFloat(a.target.value))),type:"number",min:"0.5",max:"2.0",step:"0.01",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,QPn)])]),S("div",vPn,[e[21]||(e[21]=tr('',1)),S("div",yPn,[S("input",{id:"repeat_last_n-range",value:t.$store.state.config.repeat_last_n,onInput:e[12]||(e[12]=a=>i.updateValue("repeat_last_n",parseInt(a.target.value))),type:"range",min:"0",max:"512",step:"8",class:"range-input flex-grow",disabled:i.isDisabled},null,40,bPn),S("input",{id:"repeat_last_n-number",value:t.$store.state.config.repeat_last_n,onInput:e[13]||(e[13]=a=>i.updateValue("repeat_last_n",parseInt(a.target.value))),type:"number",min:"0",max:"512",step:"8",class:"input-sm w-24 text-center",disabled:i.isDisabled},null,40,EPn)])])],2)])}const PO=ze(WHn,[["render",SPn],["__scopeId","data-v-99271729"]]);fe.defaults.baseURL="/";const R6={accept:"application/json","Content-Type":"application/json"},xPn={name:"SettingsView",components:{SettingsSidebar:TCn,SystemStatusSettings:LO,SmartRoutingSettings:CO,MainConfigSettings:AO,DataManagementSettings:wO,InternetSettings:OO,ServicesZooSettings:MO,BindingZooSettings:NO,ModelsZooSettings:DO,PersonalitiesZooSettings:kO,FunctionCallsZooSettings:HO,ModelConfigSettings:PO},data(){return{isLoading:!1,settingsChanged:!1,has_updates:!1,activeSection:"system_status",loading_text:"Loading settings...",sections:[{id:"system_status",name:"System Status",icon:"activity",component:LO},{id:"main_config",name:"Main Config",icon:"sliders",component:AO},{id:"smart_routing",name:"Smart Routing",icon:"git-branch",component:CO},{id:"data_management",name:"Data Management",icon:"database",component:wO},{id:"internet",name:"Internet",icon:"wifi",component:OO},{id:"services_zoo",name:"Services Zoo",icon:"server",component:MO},{id:"model_config",name:"Model Parameters",icon:"cpu",component:PO},{id:"binding_zoo",name:"Bindings",icon:"link",component:NO},{id:"models_zoo",name:"Models",icon:"package",component:DO},{id:"personalities_zoo",name:"Personalities",icon:"users",component:kO},{id:"function_calls_zoo",name:"Function Calls",icon:"tool",component:HO}]}},computed:{currentComponent(){const t=this.sections.find(e=>e.id===this.activeSection);return t?t.component:null}},watch:{},methods:{setActiveSection(t){this.settingsChanged?this.$store.state.yesNoDialog.askQuestion("You have unsaved changes in the current section. Do you want to discard them and switch?","Discard Changes","Stay").then(e=>{e&&(this.cancelConfiguration(!1),this.activeSection=t)}):this.activeSection=t},handleSettingUpdate(t){const e=t.key.split(".");let n=this.$store.state.config;try{for(;e.length>1;){const i=e.shift(),s=i.match(/(\w+)\[(\d+)\]/);if(s?n=n[s[1]][parseInt(s[2])]:n=n[i],n==null){console.error("Invalid key path segment:",i,"in",t.key),this.$store.state.toast.showToast(`Error updating setting: Invalid path ${t.key}`,4,!1);return}}const o=e[0],r=o.match(/(\w+)\[(\d+)\]/);if(r){if(n[r[1]]===void 0||n[r[1]][parseInt(r[2])]===void 0){console.error("Invalid final key path segment:",o,"in",t.key),this.$store.state.toast.showToast(`Error updating setting: Invalid path ${t.key}`,4,!1);return}n[r[1]][parseInt(r[2])]=t.value}else{if(n[o]===void 0){console.error("Invalid final key path segment:",o,"in",t.key),this.$store.state.toast.showToast(`Error updating setting: Invalid path ${t.key}`,4,!1);return}n[o]=t.value}console.log("Setting updated in parent:",t.key,t.value),this.settingsChanged=!0}catch(o){console.error("Error processing setting update:",t.key,o),this.$store.state.toast.showToast(`Error updating setting ${t.key}: ${o.message}`,4,!1)}},handleSettingsChanged(){console.log("settings changed"),this.settingsChanged=!0},async refreshConfig(){this.isLoading=!0,this.loading_text="Refreshing configuration...";try{await this.$store.dispatch("refreshConfig"),this.settingsChanged=!1}catch(t){console.error("Failed to refresh config:",t),this.$store.state.toast.showToast("Failed to load configuration.",4,!1)}finally{this.isLoading=!1,be(()=>{Le.replace()})}},async applyConfiguration(){this.isLoading=!0,this.loading_text="Applying settings...";try{const t=await fe.post("/apply_settings",{client_id:this.$store.state.client_id,config:this.$store.state.config},{headers:R6});t.data.status?(this.$store.state.toast.showToast("Configuration applied successfully.",4,!0),await this.refreshConfig()):this.$store.state.toast.showToast(`Configuration apply failed: ${t.data.error||"Unknown error"}`,4,!1)}catch(t){console.error("Error applying settings:",t),this.$store.state.toast.showToast(`Error applying settings: ${t.message||t}`,4,!1)}finally{this.isLoading=!1}},async cancelConfiguration(t=!0){t?await this.refreshConfig():this.settingsChanged=!1},async saveConfiguration(){this.isLoading=!0,this.loading_text="Saving settings to disk...";try{const t=await fe.post("/save_settings",{client_id:this.$store.state.client_id},{headers:R6});t.data.status?this.$store.state.toast.showToast("Settings saved successfully.",4,!0):this.$store.state.messageBox.showMessage(`Error saving settings: ${t.data.error||"Unknown error"}`)}catch(t){console.error("Error saving settings:",t),this.$store.state.messageBox.showMessage(`Error saving settings: ${t.message}`)}finally{this.isLoading=!1}},reset_configuration(){this.$store.state.yesNoDialog.askQuestion(`Are you sure? +This will delete your current configuration file and revert to the default.`,"Reset Now","Cancel").then(async t=>{if(t){this.isLoading=!0,this.loading_text="Resetting configuration...";try{const e=await fe.post("/reset_settings",{client_id:this.$store.state.client_id},{headers:R6});e.data.status?(this.$store.state.messageBox.showMessage("Settings reset successfully. The application will now reload."),setTimeout(()=>window.location.reload(),2e3)):(this.$store.state.messageBox.showMessage(`Couldn't reset settings: ${e.data.error||"Unknown error"}`),this.isLoading=!1)}catch(e){console.error("Error resetting settings:",e),this.$store.state.messageBox.showMessage(`Couldn't reset settings: ${e.message}`),this.isLoading=!1}}})},async restart_program(){this.loading_text="Restarting program...",this.isLoading=!0;try{const t=await this.api_post_req("restart_program");t.status?this.$store.state.toast.showToast("Restarting LoLLMs.",4,!0):(this.$store.state.toast.showToast(`Failed to restart: ${t.error||"Unknown error"}`,4,!1),this.isLoading=!1)}catch{this.isLoading=!1}},async clear_uploads(){this.loading_text="Clearing uploads...",this.isLoading=!0;try{const t=await this.api_get_req("clear_uploads");t.status?this.$store.state.toast.showToast("Uploads folder cleared!",4,!0):this.$store.state.toast.showToast(`Failed to clear uploads: ${t.error||"Unknown error"}`,4,!1)}catch{}finally{this.isLoading=!1}},async update_software(){this.loading_text="Updating software...",this.isLoading=!0;try{const t=await this.api_post_req("update_software");this.$store.state.toast.showToast("Update process initiated. LoLLMs might restart.",4,!0),this.has_updates=!1,t.status||(this.$store.state.toast.showToast(`Update command sent, but server reported: ${t.error||"Unknown issue"}`,4,!1),this.isLoading=!1)}catch{this.isLoading=!1}},async updateHasUpdates(){try{const t=await this.api_get_req("check_update");this.has_updates=(t==null?void 0:t.update_availability)||!1,console.log("Update available:",this.has_updates),be(()=>{Le.replace()})}catch(t){console.error("Failed to check for updates:",t),this.has_updates=!1}},async api_get_req(t){try{return(await fe.get(`/${t}?client_id=${this.$store.state.client_id}`)).data}catch(e){throw console.error(`API GET request failed for /${t}:`,e),this.$store.state.toast.showToast(`Failed to fetch data from ${t}. ${e.message}`,4,!1),e}},async api_post_req(t,e={}){try{const n={...e,client_id:this.$store.state.client_id};return(await fe.post(`/${t}`,n,{headers:R6})).data}catch(n){throw console.error(`API POST request failed for /${t}:`,n),this.$store.state.toast.showToast(`Failed to post data to ${t}. ${n.message}`,4,!1),n}}},mounted(){this.refreshConfig(),this.updateHasUpdates(),be(()=>{Le.replace()})},updated(){be(()=>{Le.replace()})}},LPn={class:"flex h-screen w-screen font-sans antialiased theme-bg-primary theme-text-primary"},CPn={class:"flex-1 flex flex-col overflow-hidden"},APn={class:"flex items-center gap-4 flex-1"},wPn={key:0,class:"flex items-center gap-2 theme-text-warning animate-pulse"},OPn={key:1,class:"flex gap-3 items-center"},MPn={key:0,class:"flex items-center gap-2"},RPn={key:1,class:"flex items-center gap-2 text-sm theme-text-muted"},NPn={class:"flex-1 overflow-x-hidden overflow-y-auto theme-scrollbar p-6"},DPn={key:1,class:"flex justify-center items-center h-full theme-text-secondary"};function IPn(t,e,n,o,r,i){const s=We("SettingsSidebar");return N(),H("div",LPn,[ne(s,{sections:r.sections,"active-section":r.activeSection,"onUpdate:activeSection":i.setActiveSection,class:"flex-shrink-0 w-64 border-r theme-border-primary theme-bg-secondary overflow-y-auto theme-scrollbar"},null,8,["sections","active-section","onUpdate:activeSection"]),S("div",CPn,[S("div",{class:Ee(["sticky top-0 z-20 flex items-center justify-between p-3 gap-3 shadow-md theme-bg-secondary theme-border-b theme-border-primary",r.isLoading?"opacity-50 pointer-events-none":""])},[S("div",APn,[r.settingsChanged&&!r.isLoading?(N(),H("div",wPn,e[6]||(e[6]=[S("i",{"data-feather":"alert-circle",class:"w-5 h-5"},null,-1),S("span",{class:"text-sm font-medium"},"Settings have changed",-1)]))):Z("",!0),!r.settingsChanged&&!r.isLoading?(N(),H("div",OPn,[S("button",{title:"Reset configuration to default",class:"icon-button theme-text-secondary hover:theme-text-primary",onClick:e[0]||(e[0]=a=>i.reset_configuration())},e[7]||(e[7]=[S("i",{"data-feather":"refresh-ccw"},null,-1)])),S("button",{title:"Restart program",class:"icon-button theme-text-secondary hover:theme-text-primary",onClick:e[1]||(e[1]=a=>i.restart_program())},e[8]||(e[8]=[S("i",{"data-feather":"power"},null,-1)])),S("button",{title:"Clear uploads folder",class:"icon-button theme-text-secondary hover:theme-text-danger",onClick:e[2]||(e[2]=a=>i.clear_uploads())},e[9]||(e[9]=[S("i",{"data-feather":"trash-2"},null,-1)])),r.has_updates?(N(),H("button",{key:0,title:"Upgrade program",class:"icon-button theme-text-success hover:theme-text-primary relative",onClick:e[3]||(e[3]=a=>i.update_software())},e[10]||(e[10]=[S("i",{"data-feather":"arrow-up-circle"},null,-1),S("span",{class:"absolute top-0 right-0 block h-2 w-2 rounded-full theme-bg-danger ring-2 theme-ring-bg"},null,-1)]))):Z("",!0)])):Z("",!0)]),r.settingsChanged&&!r.isLoading?(N(),H("div",MPn,[S("button",{class:"flex items-center gap-2 px-3 py-1.5 rounded theme-button-success duration-150 active:scale-95",title:"Apply changes",type:"button",onClick:e[4]||(e[4]=oe(a=>i.applyConfiguration(),["stop"]))},e[11]||(e[11]=[S("span",{class:"font-medium text-sm"},"Apply",-1),S("i",{"data-feather":"check",class:"w-4 h-4"},null,-1)])),S("button",{class:"flex items-center gap-2 px-3 py-1.5 rounded theme-button-danger duration-150 active:scale-95",title:"Cancel changes",type:"button",onClick:e[5]||(e[5]=oe(a=>i.cancelConfiguration(),["stop"]))},e[12]||(e[12]=[S("span",{class:"font-medium text-sm"},"Cancel",-1),S("i",{"data-feather":"x",class:"w-4 h-4"},null,-1)]))])):Z("",!0),r.isLoading?(N(),H("div",RPn,[S("span",null,J(r.loading_text),1),e[13]||(e[13]=S("svg",{"aria-hidden":"true",class:"w-5 h-5 animate-spin theme-spinner-color",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})],-1)),e[14]||(e[14]=S("span",{class:"sr-only"},"Loading...",-1))])):Z("",!0)],2),S("main",NPn,[t.$store.state.config?(N(),it(Vc(i.currentComponent),{key:0,loading:r.isLoading,"settings-changed":r.settingsChanged,onSettingsChanged:i.handleSettingsChanged,api_get_req:i.api_get_req,api_post_req:i.api_post_req,refresh_config:i.refreshConfig,show_toast:(a,l,c)=>t.$store.state.toast.showToast(a,l,c),show_yes_no_dialog:(a,l,c)=>t.$store.state.yesNoDialog.askQuestion(a,l,c),show_message_box:a=>t.$store.state.messageBox.showMessage(a),client_id:t.$store.state.client_id,show_universal_form:(a,l,c,u)=>t.$store.state.universalForm.showForm(a,l,c,u)},null,40,["loading","settings-changed","onSettingsChanged","api_get_req","api_post_req","refresh_config","show_toast","show_yes_no_dialog","show_message_box","client_id","show_universal_form"])):(N(),H("div",DPn,e[15]||(e[15]=[S("p",null,"Loading configuration...",-1)])))])])])}const kPn=ze(xPn,[["render",IPn],["__scopeId","data-v-9889ee74"]]),HPn={components:{ClipBoardTextInput:Th,Card:ph},data(){return{dataset_path:"",max_length:1024,batch_size:4,lr:5e-5,num_epochs:2,selectedFolder:"",selectedDataset:""}},methods:{submitForm(){const t={model_name:this.selectedModel,dataset_file:this.selectedDataset,max_length:this.max_length,batch_size:this.batch_size,lr:this.lr,num_epochs:this.num_epochs,output_dir:this.selectedFolder};fe.post("/start_training",t).then(e=>{})},openFolderSelector(){this.$refs.folder_selector.click()},selectOutputDirectory(t){var n;console.log("here");const e=(n=t.target.files[0])==null?void 0:n.path;console.log(e),e&&(this.selectedFolder=e)},selectDataset(t){const e=t.target.files;e.length>0&&(this.selectedDataset=e[0])}},computed:{selectedModel:{get(){return this.$store.state.selectedModel}},models:{get(){return this.$store.state.modelsArr}}},watch:{model_name(t){console.log("watching model_name",t),this.$refs.clipboardInput.inputValue=t}}},PPn={key:0,class:"container overflow-y-scroll flex flex-col no-scrollbar shadow-lg p-10 pt-2 bg-bg-light-tone dark:bg-bg-dark-tone"},$Pn={class:"mb-4"},VPn=["value"],BPn={class:"mb-4"},FPn={class:"mb-4"},UPn={class:"mb-4"},qPn={class:"mb-4"},GPn={class:"mb-4"},jPn={class:"mb-4"},zPn={key:1};function YPn(t,e,n,o,r,i){const s=We("Card"),a=We("ClipBoardTextInput");return i.selectedModel!==null&&i.selectedModel.toLowerCase().includes("gptq")?(N(),H("div",PPn,[S("form",{onSubmit:e[2]||(e[2]=oe((...l)=>i.submitForm&&i.submitForm(...l),["prevent"])),class:""},[ne(s,{title:"Training configuration",isHorizontal:!0,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[ne(s,{title:"Model",class:"",isHorizontal:!1},{default:je(()=>[S("div",$Pn,[e[3]||(e[3]=S("label",{for:"model_name",class:"text-sm"},"Model Name:",-1)),Ce(S("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>i.selectedModel=l),onChange:e[1]||(e[1]=(...l)=>t.setModel&&t.setModel(...l)),class:"bg-white dark:bg-black m-0 border-2 rounded-md shadow-sm w-full"},[(N(!0),H(Ae,null,Ue(i.models,l=>(N(),H("option",{key:l,value:l},J(l),9,VPn))),128))],544),[[Ir,i.selectedModel]])])]),_:1}),ne(s,{title:"Data",isHorizontal:!1},{default:je(()=>[S("div",BPn,[e[4]||(e[4]=S("label",{for:"dataset_path",class:"text-sm"},"Dataset:",-1)),ne(a,{id:"model_path",inputType:"file",value:r.dataset_path,onchange:"selectDataset()"},null,8,["value"])])]),_:1}),ne(s,{title:"Training",isHorizontal:!1},{default:je(()=>[S("div",FPn,[e[5]||(e[5]=S("label",{for:"lr",class:"text-sm"},"Learning Rate:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.lr},null,8,["value"])]),S("div",UPn,[e[6]||(e[6]=S("label",{for:"num_epochs",class:"text-sm"},"Number of Epochs:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.num_epochs},null,8,["value"])]),S("div",qPn,[e[7]||(e[7]=S("label",{for:"max_length",class:"text-sm"},"Max Length:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.max_length},null,8,["value"])]),S("div",GPn,[e[8]||(e[8]=S("label",{for:"batch_size",class:"text-sm"},"Batch Size:",-1)),ne(a,{id:"model_path",inputType:"integer",value:r.batch_size},null,8,["value"])])]),_:1}),ne(s,{title:"Output",isHorizontal:!1},{default:je(()=>[S("div",jPn,[e[9]||(e[9]=S("label",{for:"output_dir",class:"text-sm"},"Output Directory:",-1)),ne(a,{id:"model_path",inputType:"text",value:t.output_dir},null,8,["value"])])]),_:1})]),_:1}),ne(s,{disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>e[10]||(e[10]=[S("button",{class:"bg-blue-500 text-white px-4 py-2 rounded"},"Start training",-1)])),_:1})],32)])):(N(),H("div",zPn,[ne(s,{title:"Info",class:"",isHorizontal:!1},{default:je(()=>e[11]||(e[11]=[Oe(" Only GPTQ models are supported for QLora fine tuning. Please select a GPTQ compatible binding. ")])),_:1})]))}const WPn=ze(HPn,[["render",YPn]]),KPn={components:{ClipBoardTextInput:Th,Card:ph},data(){return{model_name:"jondurbin/airoboros-7b-gpt4",tokenizer_name:"jondurbin/airoboros-7b-gpt4",dataset_path:"",max_length:1024,batch_size:4,lr:5e-5,num_epochs:2,selectedFolder:"",selectedDatasetPath:""}},methods:{submitForm(){this.model_name,this.tokenizer_name,this.selectedDatasetPath,this.max_length,this.batch_size,this.lr,this.num_epochs,this.selectedFolder},openFolderSelector(){this.$refs.folder_selector.click()},selectOutputDirectory(t){var n;console.log("here");const e=(n=t.target.files[0])==null?void 0:n.path;console.log(e),e&&(this.selectedFolder=e)},selectDatasetPath(t){const e=t.target.files;e.length>0&&(this.selectedDatasetPath=e[0].webkitRelativePath)}}},ZPn={class:"container overflow-y-scroll flex flex-col no-scrollbar shadow-lg p-10 pt-2 bg-bg-light-tone dark:bg-bg-dark-tone"},XPn={class:"mb-4"},JPn={class:"mb-4"};function e$n(t,e,n,o,r,i){const s=We("ClipBoardTextInput"),a=We("Card");return N(),H("div",ZPn,[S("form",{onSubmit:e[0]||(e[0]=oe((...l)=>i.submitForm&&i.submitForm(...l),["prevent"])),class:"max-w-md mx-auto"},[ne(a,{title:"Quantizing configuration",isHorizontal:!0,disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>[ne(a,{title:"Model",class:"",isHorizontal:!1},{default:je(()=>[S("div",XPn,[e[1]||(e[1]=S("label",{for:"model_name",class:"text-sm"},"Model Name:",-1)),ne(s,{id:"model_path",inputType:"text",value:r.model_name},null,8,["value"])]),S("div",JPn,[e[2]||(e[2]=S("label",{for:"tokenizer_name",class:"text-sm"},"Tokenizer Name:",-1)),ne(s,{id:"model_path",inputType:"text",value:r.tokenizer_name},null,8,["value"])])]),_:1})]),_:1}),ne(a,{disableHoverAnimation:!0,disableFocus:!0},{default:je(()=>e[3]||(e[3]=[S("button",{type:"submit",class:"bg-blue-500 text-white px-4 py-2 rounded"},"Quantize LLM",-1)])),_:1})],32)])}const t$n=ze(KPn,[["render",e$n]]),n$n={name:"Discussion",emits:["delete","select","openFolder","editTitle","makeTitle","checked"],props:{id:Number,title:String,selected:Boolean,loading:Boolean,isCheckbox:Boolean,checkBoxValue:Boolean,openfolder_enabled:Boolean},setup(){},data(){return{showConfirmation:!1,editTitleMode:!1,makeTitleMode:!1,deleteMode:!1,openFolder:!1,editTitle:!1,newTitle:String,checkBoxValue_local:!1}},methods:{cancel(){this.editTitleMode=!1,this.makeTitleMode=!1,this.deleteMode=!1,this.showConfirmation=!1},deleteEvent(){this.showConfirmation=!1,this.$emit("delete")},selectEvent(){this.$emit("select")},openFolderEvent(){this.$emit("openFolder",{id:this.id})},editTitleEvent(){this.editTitle=!1,this.editTitleMode=!1,this.makeTitleMode=!1,this.deleteMode=!1,this.showConfirmation=!1,this.$emit("editTitle",{title:this.newTitle,id:this.id})},makeTitleEvent(){this.$emit("makeTitle",{id:this.id}),this.showConfirmation=!1},chnageTitle(t){this.newTitle=t},checkedChangeEvent(t,e){this.$emit("checked",t,e)}},mounted(){this.newTitle=this.title,be(()=>{Le.replace()})},watch:{showConfirmation(){be(()=>{Le.replace()})},editTitleMode(t){this.showConfirmation=t,this.editTitle=t,t&&be(()=>{try{this.$refs.titleBox.focus()}catch{}})},deleteMode(t){this.showConfirmation=t,t&&be(()=>{this.$refs.titleBox.focus()})},makeTitleMode(t){this.showConfirmation=t},checkBoxValue(t,e){this.checkBoxValue_local=t}}},r$n=["id"],i$n={class:"flex flex-row items-center gap-2"},o$n={key:0},s$n={class:"flex flex-row items-center w-full"},a$n=["title"],l$n=["value"],c$n={class:"absolute top-0 right-0 h-full flex items-center group"},u$n={class:"discussion-toolbox"},d$n={key:0,class:"flex gap-2 items-center"},T$n={key:1,class:"flex gap-2 items-center"};function f$n(t,e,n,o,r,i){return N(),H("div",{class:Ee([n.selected?"discussion-hilighted":"discussion","m-1 py-2 flex flex-row sm:flex-row flex-wrap flex-shrink-0 items-center rounded-md duration-75 cursor-pointer relative w-[15rem]"]),id:"dis-"+n.id,onClick:e[13]||(e[13]=oe(s=>i.selectEvent(),["stop"]))},[S("div",i$n,[n.isCheckbox?(N(),H("div",o$n,[Ce(S("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-700 dark:focus:ring-offset-gray-700 focus:ring-2 dark:bg-gray-600 dark:border-gray-500",onClick:e[0]||(e[0]=oe(()=>{},["stop"])),"onUpdate:modelValue":e[1]||(e[1]=s=>r.checkBoxValue_local=s),onInput:e[2]||(e[2]=s=>i.checkedChangeEvent(s,n.id))},null,544),[[Ql,r.checkBoxValue_local]])])):Z("",!0),n.selected?(N(),H("div",{key:1,class:Ee(["min-h-full w-2 rounded-xl self-stretch",n.loading?"animate-bounce bg-accent":"bg-secondary"])},null,2)):Z("",!0),n.selected?Z("",!0):(N(),H("div",{key:2,class:Ee(["w-2",n.loading?"min-h-full w-2 rounded-xl self-stretch animate-bounce bg-accent":""])},null,2))]),S("div",s$n,[r.editTitle?Z("",!0):(N(),H("p",{key:0,title:n.title,class:"line-clamp-1 w-full ml-1 -mx-5 text-xs"},J(n.title?n.title==="untitled"?"New discussion":n.title:"New discussion"),9,a$n)),r.editTitle?(N(),H("input",{key:1,type:"text",id:"title-box",ref:"titleBox",class:"bg-bg-light dark:bg-bg-dark rounded-md border-0 w-full -m-1 p-1",value:n.title,required:"",onKeydown:[e[3]||(e[3]=Qn(oe(s=>i.editTitleEvent(),["exact"]),["enter"])),e[4]||(e[4]=Qn(oe(s=>r.editTitleMode=!1,["exact"]),["esc"]))],onInput:e[5]||(e[5]=s=>i.chnageTitle(s.target.value)),onClick:e[6]||(e[6]=oe(()=>{},["stop"]))},null,40,l$n)):Z("",!0)]),S("div",c$n,[S("div",u$n,[r.showConfirmation?(N(),H("div",d$n,[S("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Discard title changes",type:"button",onClick:e[7]||(e[7]=oe(s=>i.cancel(),["stop"]))},e[14]||(e[14]=[S("i",{"data-feather":"x"},null,-1)])),S("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Confirm title changes",type:"button",onClick:e[8]||(e[8]=oe(s=>r.editTitleMode?i.editTitleEvent():r.deleteMode?i.deleteEvent():i.makeTitleEvent(),["stop"]))},e[15]||(e[15]=[S("i",{"data-feather":"check"},null,-1)]))])):Z("",!0),r.showConfirmation?Z("",!0):(N(),H("div",T$n,[n.openfolder_enabled?(N(),H("button",{key:0,class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Open folder",type:"button",onClick:e[9]||(e[9]=oe(s=>i.openFolderEvent(),["stop"]))},e[16]||(e[16]=[S("i",{"data-feather":"folder"},null,-1)]))):Z("",!0),S("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Make a title",type:"button",onClick:e[10]||(e[10]=oe(s=>r.makeTitleMode=!0,["stop"]))},e[17]||(e[17]=[S("i",{"data-feather":"type"},null,-1)])),S("button",{class:"text-2xl hover:text-secondary duration-75 active:scale-90",title:"Edit title",type:"button",onClick:e[11]||(e[11]=oe(s=>r.editTitleMode=!0,["stop"]))},e[18]||(e[18]=[S("i",{"data-feather":"edit-2"},null,-1)])),S("button",{class:"text-2xl hover:text-red-600 duration-75 active:scale-90",title:"Remove discussion",type:"button",onClick:e[12]||(e[12]=oe(s=>r.deleteMode=!0,["stop"]))},e[19]||(e[19]=[S("i",{"data-feather":"trash"},null,-1)]))]))])])],10,r$n)}const xh=ze(n$n,[["render",f$n],["__scopeId","data-v-2b3580ce"]]),p$n={data(){return{id:0,loading:!1,isCheckbox:!1,isVisible:!1,categories:[],titles:[],content:"",searchQuery:""}},components:{Discussion:xh,MarkdownRenderer:Q5},props:{host:{type:String,required:!1,default:"http://localhost:9600"}},methods:{showSkillsLibrary(){this.isVisible=!0,this.fetchTitles()},closeComponent(){this.isVisible=!1},fetchCategories(){fe.post("/get_skills_library_categories",{client_id:this.$store.state.client_id}).then(t=>{this.categories=t.data.categories}).catch(t=>{console.error("Error fetching categories:",t)})},fetchTitles(){console.log("Fetching categories"),fe.post("/get_skills_library_titles",{client_id:this.$store.state.client_id}).then(t=>{this.titles=t.data.titles,console.log("titles recovered")}).catch(t=>{console.error("Error fetching titles:",t)})},fetchContent(t){console.log("loading skill",t),fe.post("/get_skills_library_content",{client_id:this.$store.state.client_id,skill_id:t}).then(e=>{const n=e.data.contents[0];this.id=n.id,this.content=n.content}).catch(e=>{console.error("Error fetching content:",e)})},deleteCategory(t){console.log("Delete category")},editCategory(t){console.log("Edit category")},checkUncheckCategory(t){console.log("Unchecked category")},deleteSkill(t){console.log("Delete skill ",t),fe.post("/delete_skill",{client_id:this.$store.state.client_id,skill_id:t}).then(()=>{this.fetchTitles()})},editTitle(t){fe.post("/edit_skill_title",{client_id:this.$store.state.client_id,skill_id:t,title:t}).then(()=>{this.fetchTitles()}),console.log("Edit title")},makeTitle(t){console.log("Make title")},checkUncheckTitle(t){},searchSkills(){}}},h$n={id:"leftPanel",class:"flex flex-row h-full flex-grow shadow-lg rounded"},m$n={class:"w-[15rem] z-10 top-0 bg-bg-light-tone dark:bg-bg-dark-tone shadow-md overflow-y-scroll no-scrollbar"},g$n={classclass:"absolute flex flex-col no-scrollbar shadow-lg w-[15rem] bg-bg-light-tone dark:bg-bg-dark-tone top-20 left-20 bottom-20 right-20 bg-bg-light shadow-lg rounded"},_$n={class:"z-0 flex flex-col flex-grow 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"};function Q$n(t,e,n,o,r,i){const s=We("Discussion"),a=We("MarkdownRenderer");return N(),H("div",{class:Ee([{hidden:!r.isVisible},"absolute flex flex-col no-scrollbar shadow-lg bg-bg-light dark:bg-bg-dark top-20 left-20 bottom-20 right-20 shadow-lg rounded"])},[S("div",h$n,[S("div",m$n,[Ce(S("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 skills by title","onUpdate:modelValue":e[0]||(e[0]=l=>r.searchQuery=l),onKeyup:e[1]||(e[1]=Qn((...l)=>i.searchSkills&&i.searchSkills(...l),["enter"]))},null,544),[[Je,r.searchQuery]]),S("div",g$n,[e[3]||(e[3]=S("h2",{class:"text-xl font-bold m-4"},"Titles",-1)),r.titles.length>0?(N(),it(O2,{key:0,name:"list"},{default:je(()=>[(N(!0),H(Ae,null,Ue(r.titles,l=>(N(),it(s,{key:l.id,id:l.id,title:l.title,selected:i.fetchContent(l.id),loading:r.loading,isCheckbox:r.isCheckbox,checkBoxValue:!1,openfolder_enabled:!1,onSelect:c=>i.fetchContent(l.id),onDelete:c=>i.deleteSkill(l.id),onEditTitle:i.editTitle,onMakeTitle:i.makeTitle,onChecked:i.checkUncheckTitle},null,8,["id","title","selected","loading","isCheckbox","onSelect","onDelete","onEditTitle","onMakeTitle","onChecked"]))),128))]),_:1})):Z("",!0)])]),S("div",_$n,[e[4]||(e[4]=S("h2",{class:"text-xl font-bold m-4"},"Content",-1)),ne(a,{host:n.host,"markdown-text":r.content,message_id:r.id,discussion_id:r.id,client_id:this.$store.state.client_id},null,8,["host","markdown-text","message_id","discussion_id","client_id"])])]),S("button",{onClick:e[2]||(e[2]=(...l)=>i.closeComponent&&i.closeComponent(...l)),class:"absolute top-2 right-2 bg-red-500 text-white rounded px-2 py-1 hover:bg-red-300"},"Close")],2)}const Nk=ze(p$n,[["render",Q$n]]),v$n={props:{htmlContent:{type:String,required:!0}}},y$n=["innerHTML"];function b$n(t,e,n,o,r,i){return N(),H("div",{class:"w-full h-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",innerHTML:n.htmlContent},null,8,y$n)}const E$n=ze(v$n,[["render",b$n]]),S$n={name:"JsonNode",props:{data:{required:!0},label:{type:String,default:""},depth:{type:Number,default:0}},data(){return{expanded:!0}},computed:{isObject(){return this.data!==null&&typeof this.data=="object"},isArray(){return Array.isArray(this.data)}},methods:{toggle(){this.expanded=!this.expanded},getValueType(t){return t===null?"null":typeof t},formatValue(t){return t===null?"null":typeof t=="string"?`"${t}"`:t}}},x$n={class:"json-tree"},L$n={key:0,class:"tree-node"},C$n={class:"toggle-icon"},A$n={class:"key"},w$n={class:"bracket"},O$n={key:0,class:"node-content"},M$n={key:1,class:"bracket-close"},R$n={key:1,class:"tree-leaf"},N$n={key:0,class:"key"};function D$n(t,e,n,o,r,i){const s=We("json-node",!0);return N(),H("div",x$n,[i.isObject?(N(),H("div",L$n,[S("div",{class:"node-label",onClick:e[0]||(e[0]=(...a)=>i.toggle&&i.toggle(...a))},[S("span",C$n,J(r.expanded?"▼":"▶"),1),S("span",A$n,J(n.label),1),S("span",w$n,J(i.isArray?"[":"{"),1)]),r.expanded?(N(),H("div",O$n,[(N(!0),H(Ae,null,Ue(n.data,(a,l)=>(N(),H("div",{key:l,class:"node-item"},[ne(s,{data:a,label:l,depth:n.depth+1},null,8,["data","label","depth"])]))),128))])):Z("",!0),r.expanded?(N(),H("div",M$n,J(i.isArray?"]":"}"),1)):Z("",!0)])):(N(),H("div",R$n,[n.label?(N(),H("span",N$n,J(n.label)+":",1)):Z("",!0),S("span",{class:Ee(["value",i.getValueType(n.data)])},J(i.formatValue(n.data)),3)]))])}const I$n=ze(S$n,[["render",D$n],["__scopeId","data-v-0535817b"]]),k$n={name:"JsonViewer",components:{JsonNode:I$n},props:{data:{required:!0},title:{type:String,default:"JSON Data"}},data(){return{expanded:!0}},computed:{parsedData(){if(typeof this.data=="string")try{return JSON.parse(this.data)}catch{return{error:"Invalid JSON"}}return this.data}},methods:{toggle(){this.expanded=!this.expanded}}},H$n={class:"json-viewer"},P$n={class:"toggle-icon"},$$n={class:"title"},V$n={key:0,class:"viewer-content"};function B$n(t,e,n,o,r,i){const s=We("json-node");return N(),H("div",H$n,[S("div",{class:"viewer-header",onClick:e[0]||(e[0]=(...a)=>i.toggle&&i.toggle(...a))},[S("span",P$n,J(r.expanded?"▼":"▶"),1),S("span",$$n,J(n.title),1)]),r.expanded?(N(),H("div",V$n,[ne(s,{data:i.parsedData},null,8,["data"])])):Z("",!0)])}const F$n=ze(k$n,[["render",B$n],["__scopeId","data-v-6fbe5047"]]),U$n={props:{done:Boolean,text:String,status:Boolean,description:String}},q$n={class:"flex items-start gap-2 w-full"},G$n={class:"w-4 h-4 flex-shrink-0"},j$n={key:0,class:"w-4 h-4 text-green-500 dark:text-green-400",viewBox:"0 0 24 24",fill:"currentColor"},z$n={key:1,class:"w-4 h-4 text-red-500 dark:text-red-400",viewBox:"0 0 24 24",fill:"currentColor"},Y$n={key:1,class:"w-4 h-4 border-2 border-t-primary rounded-full animate-spin"},W$n={class:"min-w-0"},K$n={class:"text-sm text-gray-700 dark:text-gray-200 truncate"},Z$n={key:0,class:"text-xs text-gray-500 dark:text-gray-400 truncate"};function X$n(t,e,n,o,r,i){return N(),H("div",{class:Ee(["flex items-center p-2 rounded transition-colors duration-200",[n.done?"bg-opacity-5":"bg-opacity-3",n.status?"bg-green-50 dark:bg-green-900/20":"bg-gray-50 dark:bg-gray-800/20"]])},[S("div",q$n,[S("div",G$n,[n.done?(N(),H(Ae,{key:0},[n.status?(N(),H("svg",j$n,e[0]||(e[0]=[S("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},null,-1)]))):(N(),H("svg",z$n,e[1]||(e[1]=[S("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"},null,-1)])))],64)):(N(),H("div",Y$n))]),S("div",W$n,[S("div",K$n,J(n.text||"No text provided"),1),n.description?(N(),H("div",Z$n,J(n.description),1)):Z("",!0)])])],2)}const J$n=ze(U$n,[["render",X$n],["__scopeId","data-v-2cb174d6"]]),eVn=["title"],tVn={key:0,class:"icon icon-success",viewBox:"0 0 24 24"},nVn={key:1,class:"icon icon-fail",viewBox:"0 0 24 24"},rVn={key:2,class:"icon-spinner"},iVn={key:1,class:"icon-text"},oVn={__name:"StatusIcon",props:{status:{type:String,required:!0},icon:Boolean,iconDone:{type:String,default:"✓"},iconFailed:{type:String,default:"✗"},iconProcessing:{type:String,default:"⟳"},titleDone:{type:String,default:"Success"},titleFailed:{type:String,default:"Failure"},titleProcessing:{type:String,default:"Processing"}},setup(t){const e=t,n=$e(()=>e.status==="Done"?e.titleDone:e.status==="Failed"?e.titleFailed:e.titleProcessing),o=$e(()=>e.status==="Done"?e.iconDone:e.status==="Failed"?e.iconFailed:e.iconProcessing);return(r,i)=>(N(),H("div",{class:"status-icon",title:n.value},[t.icon?(N(),H(Ae,{key:0},[t.status==="Done"?(N(),H("svg",tVn,i[0]||(i[0]=[S("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},null,-1)]))):t.status==="Failed"?(N(),H("svg",nVn,i[1]||(i[1]=[S("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"},null,-1)]))):(N(),H("div",rVn))],64)):(N(),H("span",iVn,J(o.value),1))],8,eVn))}},sVn=ze(oVn,[["__scopeId","data-v-b3d110c2"]]),aVn="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%20480%20480'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cg%3e%3cpath%20d='M240,0C107.664,0,0,107.664,0,240s107.664,240,240,240s240-107.664,240-240S372.336,0,240,0z%20M240,460%20c-121.309,0-220-98.691-220-220S118.691,20,240,20s220,98.691,220,220S361.309,460,240,460z'/%3e%3cpath%20d='M410,194.999h-27.058c-2.643-8.44-6-16.56-10.03-24.271l19.158-19.158c3.776-3.775,5.854-8.79,5.854-14.121%20c0-5.332-2.08-10.347-5.854-14.121l-35.399-35.399c-3.775-3.775-8.79-5.854-14.122-5.854c-5.331,0-10.346,2.079-14.121,5.854%20l-19.158,19.158c-7.711-4.03-15.832-7.386-24.271-10.03V70c0-11.028-8.972-20-20-20h-50c-11.028,0-20,8.972-20,20v27.058%20c-8.44,2.643-16.56,6-24.271,10.03L151.57,87.93c-3.775-3.776-8.79-5.854-14.121-5.854c-5.332,0-10.347,2.08-14.121,5.854%20l-35.399,35.399c-3.775,3.775-5.854,8.79-5.854,14.122c0,5.331,2.079,10.346,5.854,14.121l19.158,19.158%20c-4.03,7.711-7.386,15.832-10.03,24.271H70c-11.028,0-20,8.972-20,20v50c0,11.028,8.972,20,20,20h27.057%20c2.643,8.44,6,16.56,10.03,24.271L87.929,328.43c-3.776,3.775-5.854,8.79-5.854,14.121c0,5.332,2.08,10.347,5.854,14.121%20l35.399,35.399c3.775,3.775,8.79,5.854,14.122,5.854c5.331,0,10.346-2.079,14.121-5.854l19.158-19.158%20c7.711,4.03,15.832,7.386,24.271,10.03V410c0,11.028,8.972,20,20,20h50c11.028,0,20-8.972,20.001-20v-27.058%20c8.44-2.643,16.56-6,24.271-10.03l19.158,19.158c3.775,3.776,8.79,5.854,14.121,5.854c5.332,0,10.347-2.08,14.121-5.854%20l35.399-35.399c3.775-3.775,5.854-8.79,5.854-14.122c0-5.331-2.079-10.346-5.854-14.121l-19.158-19.158%20c4.03-7.711,7.386-15.832,10.03-24.271H410c11.028,0,20-8.972,20-20v-50C430,203.971,421.028,194.999,410,194.999z%20M410,264.998%20h-34.598c-4.562,0-8.544,3.086-9.684,7.503c-3.069,11.901-7.716,23.133-13.813,33.387c-2.337,3.931-1.71,8.948,1.524,12.182%20l24.5,24.457l-35.357,35.4l-24.5-24.5c-3.236-3.235-8.253-3.86-12.182-1.524c-10.254,6.097-21.487,10.745-33.387,13.813%20c-4.417,1.14-7.503,5.122-7.503,9.684V410h-50v-34.599c0-4.562-3.086-8.544-7.503-9.684%20c-11.901-3.069-23.133-7.716-33.387-13.813c-1.587-0.944-3.353-1.404-5.107-1.404c-2.586,0-5.147,1.002-7.073,2.931l-24.457,24.5%20l-35.4-35.357l24.5-24.5c3.234-3.235,3.861-8.251,1.524-12.182c-6.097-10.254-10.745-21.487-13.813-33.387%20c-1.14-4.417-5.122-7.503-9.684-7.503H70v-50h34.596c4.562,0,8.544-3.086,9.684-7.503c3.069-11.901,7.716-23.133,13.813-33.387%20c2.337-3.931,1.71-8.948-1.524-12.182l-24.5-24.457l35.357-35.4l24.5,24.5c3.236,3.235,8.253,3.861,12.182,1.524%20c10.254-6.097,21.487-10.745,33.387-13.813c4.417-1.14,7.503-5.122,7.503-9.684V70h50v34.596c0,4.562,3.086,8.544,7.503,9.684%20c11.901,3.069,23.133,7.716,33.387,13.813c3.929,2.337,8.947,1.709,12.182-1.524l24.457-24.5l35.4,35.357l-24.5,24.5%20c-3.234,3.235-3.861,8.251-1.524,12.182c6.097,10.254,10.745,21.487,13.813,33.387c1.14,4.417,5.122,7.503,9.684,7.503H410%20V264.998z'/%3e%3cpath%20d='M331.585,292.475l-40-35l-13.17,15.051L298.386,290H240c-27.57,0-50-22.43-50-50h-20c0,38.598,31.402,70,70,70h58.386%20l-19.971,17.475l13.17,15.051l40-35c2.17-1.898,3.415-4.642,3.415-7.525S333.755,294.373,331.585,292.475z'/%3e%3cpath%20d='M201.585,207.473L181.614,190H240c27.57,0,50,22.43,50,50h20c0-38.598-31.402-70-70-70h-58.386l19.971-17.475%20l-13.17-15.051l-40,35c-2.17,1.898-3.415,4.642-3.415,7.525s1.245,5.627,3.415,7.525l40,35L201.585,207.473z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3canimateTransform%20attributeName='transform'%20attributeType='XML'%20type='rotate'%20from='0%20240%20240'%20to='360%20240%20240'%20dur='10s'%20repeatCount='indefinite'%20/%3e%3c/svg%3e",lVn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3cpath%20d='M25%200C11.6%200%200%2011.6%200%2025s11.6%2025%2025%2025%2025-11.6%2025-25S40.4%200%2025%200zm0%2048C12.8%2048%202%2039.2%202%2025S12.8%202%2025%202s24%2010.8%2024%2024-10.8%2024-24%2024zm-4-33l-8%208%2018%2018%2030-30-8-8-22%2022L22%2016'%20fill='green'/%3e%3c/svg%3e",cVn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M0%200h24v24H0z'%20fill='none'/%3e%3cpath%20d='M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012%2019%206.41z'%20fill='red'/%3e%3c/svg%3e",Dk="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20version='1.1'%20width='256'%20height='256'%20viewBox='0%200%20256%20256'%20xml:space='preserve'%3e%3cdefs%3e%3c/defs%3e%3cg%20style='stroke:%20white;%20stroke-width:%202px;%20stroke-dasharray:%20none;%20stroke-linecap:%20butt;%20stroke-linejoin:%20miter;%20stroke-miterlimit:%2010;%20fill:%20none;%20fill-rule:%20nonzero;%20opacity:%201;'%20transform='translate(1.4065934065934016%201.4065934065934016)%20scale(2.81%202.81)'%20%3e%3cpath%20d='M%2089.999%203.075%20C%2090%203.02%2090%202.967%2089.999%202.912%20c%20-0.004%20-0.134%20-0.017%20-0.266%20-0.038%20-0.398%20c%20-0.007%20-0.041%20-0.009%20-0.081%20-0.018%20-0.122%20c%20-0.034%20-0.165%20-0.082%20-0.327%20-0.144%20-0.484%20c%20-0.018%20-0.046%20-0.041%20-0.089%20-0.061%20-0.134%20c%20-0.053%20-0.119%20-0.113%20-0.234%20-0.182%20-0.346%20C%2089.528%201.382%2089.5%201.336%2089.469%201.29%20c%20-0.102%20-0.147%20-0.212%20-0.288%20-0.341%20-0.417%20c%20-0.13%20-0.13%20-0.273%20-0.241%20-0.421%20-0.344%20c%20-0.042%20-0.029%20-0.085%20-0.056%20-0.129%20-0.082%20c%20-0.118%20-0.073%20-0.239%20-0.136%20-0.364%20-0.191%20c%20-0.039%20-0.017%20-0.076%20-0.037%20-0.116%20-0.053%20c%20-0.161%20-0.063%20-0.327%20-0.113%20-0.497%20-0.147%20c%20-0.031%20-0.006%20-0.063%20-0.008%20-0.094%20-0.014%20c%20-0.142%20-0.024%20-0.285%20-0.038%20-0.429%20-0.041%20C%2087.03%200%2086.983%200%2086.936%200.001%20c%20-0.141%200.003%20-0.282%200.017%20-0.423%200.041%20c%20-0.035%200.006%20-0.069%200.008%20-0.104%200.015%20c%20-0.154%200.031%20-0.306%200.073%20-0.456%200.129%20L%201.946%2031.709%20c%20-1.124%200.422%20-1.888%201.473%20-1.943%202.673%20c%20-0.054%201.199%200.612%202.316%201.693%202.838%20l%2034.455%2016.628%20l%2016.627%2034.455%20C%2053.281%2089.344%2054.334%2090%2055.481%2090%20c%200.046%200%200.091%20-0.001%200.137%20-0.003%20c%201.199%20-0.055%202.251%20-0.819%202.673%20-1.943%20L%2089.815%204.048%20c%200.056%20-0.149%200.097%20-0.3%200.128%20-0.453%20c%200.008%20-0.041%200.011%20-0.081%200.017%20-0.122%20C%2089.982%203.341%2089.995%203.208%2089.999%203.075%20z%20M%2075.086%2010.672%20L%2037.785%2047.973%20L%2010.619%2034.864%20L%2075.086%2010.672%20z%20M%2055.136%2079.381%20L%2042.027%2052.216%20l%2037.302%20-37.302%20L%2055.136%2079.381%20z'%20style='stroke:%20none;%20stroke-width:%201;%20stroke-dasharray:%20none;%20stroke-linecap:%20butt;%20stroke-linejoin:%20miter;%20stroke-miterlimit:%2010;%20fill:%20rgb(0,0,0);%20fill-rule:%20nonzero;%20opacity:%201;'%20transform='%20matrix(1%200%200%201%200%200)%20'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='75'%20cy='75'%20r='15'%20fill='%23008000'/%3e%3cpath%20d='M75,60%20A15,15%200%200,1%2090,75%20A15,15%200%200,1%2075,90%20A15,15%200%200,1%2060,75%20A15,15%200%200,1%2075,60%20Z'%20stroke='%23FFFFFF'%20stroke-width='2'%20fill='none'/%3e%3cpath%20d='M81,75%20A6,6%200%200,1%2075,81%20A6,6%200%200,1%2069,75%20A6,6%200%200,1%2075,69%20A6,6%200%200,1%2081,75%20Z'%20fill='%23FFFFFF'/%3e%3c/g%3e%3c/svg%3e",uVn={name:"Message",emits:["copy","delete","rankUp","rankDown","updateMessage","resendMessage","continueMessage"],components:{MarkdownRenderer:Q5,Step:J$n,StatusIcon:sVn,RenderHTMLJS:E$n,JsonViewer:F$n,DynamicUIRenderer:Mk,ToolbarButton:hh,DropdownMenu:Ok},props:{host:{type:String,required:!1,default:"http://localhost:9600"},message:Object,avatar:{default:""}},data(){return{ui_componentKey:0,isSynthesizingVoice:!1,cpp_block:mk,html5_block:gk,LaTeX_block:_k,json_block:hk,javascript_block:pk,process_svg:aVn,ok_svg:lVn,failed_svg:cVn,loading_svg:vk,sendGlobe:Dk,code_block:Tk,python_block:fk,bash_block:Qk,audio_url:null,audio:null,msg:null,isSpeaking:!1,speechSynthesis:null,voices:[],expanded:!1,showConfirmation:!1,editMsgMode_:!1,deleteMsgMode:!1,mdRenderHeight:Number}},mounted(){if("speechSynthesis"in window?(this.speechSynthesis=window.speechSynthesis,this.voices=this.speechSynthesis.getVoices(),this.voices.length===0?this.speechSynthesis.addEventListener("voiceschanged",this.onVoicesChanged):console.log("Voices available:",this.voices.length)):console.error("Speech synthesis is not supported in this browser."),be(()=>{Le.replace(),this.$refs.mdRender&&this.$refs.mdRender.$el&&(this.mdRenderHeight=this.$refs.mdRender.$el.offsetHeight)}),console.log("Checking metadata"),console.log(this.message),Object.prototype.hasOwnProperty.call(this.message,"metadata")&&this.message.metadata!=null){console.log("Metadata found!"),Array.isArray(this.message.metadata)||(this.message.metadata=[]),console.log(typeof this.message.metadata),console.log(this.message.metadata);for(let t of this.message.metadata)Object.prototype.hasOwnProperty.call(t,"audio_url")&&t.audio_url!=null&&(this.audio_url=t.audio_url,console.log("Audio URL:",this.audio_url))}},methods:{toggleExpanded(){this.expanded=!this.expanded,be(()=>{Le.replace()})},computeTimeDiff(t,e){let n=e.getTime()-t.getTime();const o=Math.floor(n/(1e3*60*60));n-=o*(1e3*60*60);const r=Math.floor(n/(1e3*60));n-=r*(1e3*60);const i=Math.floor(n/1e3);return n-=i*1e3,[o,r,i]},insertTab(t){const e=t.target,n=e.selectionStart,o=e.selectionEnd,r=t.shiftKey,i=" ";if(n===o)if(r){if(e.value.substring(n-i.length,n)===i){const s=e.value.substring(0,n-i.length),a=e.value.substring(o);this.message.content=s+a,this.$nextTick(()=>{e.selectionStart=e.selectionEnd=n-i.length})}}else{const s=e.value.substring(0,n),a=e.value.substring(o);this.message.content=s+i+a,this.$nextTick(()=>{e.selectionStart=e.selectionEnd=n+i.length})}else{const a=e.value.substring(n,o).split(` `);let l=0;const c=a.map((f,T)=>r?f.startsWith(i)?(l-=i.length,f.substring(i.length)):f:(l+=i.length,i+f)),u=e.value.substring(0,n),d=e.value.substring(o);this.message.content=u+c.join(` `)+d,this.$nextTick(()=>{e.selectionStart=n,e.selectionEnd=o+l})}t.preventDefault(),this.adjustTextareaHeight(e)},adjustTextareaHeight(t){t.style.height="auto",t.style.height=t.scrollHeight+"px"},onVoicesChanged(){this.voices=this.speechSynthesis.getVoices(),console.log("Voices loaded:",this.voices.length)},read(){this.isSynthesizingVoice?(this.isSynthesizingVoice=!1,this.$refs.audio_player&&this.$refs.audio_player.pause()):(this.isSynthesizingVoice=!0,fe.post(`${this.host}/text2wav`,{text:this.message.content}).then(t=>{this.isSynthesizingVoice=!1;let e=t.data.url;console.log(e),this.audio_url=e,this.message.metadata||(this.message.metadata=[]);let n=!1;for(let o of this.message.metadata)if(o&&Object.prototype.hasOwnProperty.call(o,"audio_url")){o.audio_url=this.audio_url,n=!0;break}n||this.message.metadata.push({audio_url:this.audio_url}),be(()=>{this.$refs.audio_player&&(this.$refs.audio_player.load(),this.$refs.audio_player.play())})}).catch(t=>{this.$store.state.toast.showToast(`Error generating audio: ${t.message||t}`,4,!1),this.isSynthesizingVoice=!1}))},async speak(){if(this.isSpeaking){this.$store.state.config.active_tts_service!=="browser"&&this.$store.state.config.active_tts_service!=="None"?fe.post(`${this.host}/stop_audio`,{client_id:this.$store.state.client_id}).then(t=>{this.isSpeaking=!1}).catch(t=>{this.$store.state.toast.showToast(`Error stopping audio: ${t.message||t}`,4,!1),this.isSpeaking=!1}):this.speechSynthesis&&(this.speechSynthesis.cancel(),this.msg=null,this.isSpeaking=!1);return}if(this.isSpeaking=!0,console.log("Starting speech..."),this.$store.state.config.active_tts_service!=="browser"&&this.$store.state.config.active_tts_service!=="None")fe.post(`${this.host}/text2Audio`,{client_id:this.$store.state.client_id,text:this.message.content}).then(t=>{console.log("Backend TTS request sent.")}).catch(t=>{this.$store.state.toast.showToast(`Error starting backend TTS: ${t.message||t}`,4,!1),this.isSpeaking=!1});else if(this.speechSynthesis){let t=0;const e=180,n=this.message.content;this.msg=new SpeechSynthesisUtterance,this.msg.pitch=this.$store.state.config.audio_pitch||1,this.msg.rate=this.$store.state.config.audio_rate||1;const o=this.voices.find(s=>s.name===this.$store.state.config.audio_out_voice);o?(this.msg.voice=o,console.log("Using voice:",o.name)):console.warn("Selected voice not found, using default.");const r=s=>{let a=n.substring(s,s+e);const l=[".","!","?",` `,";",":"];let c=-1;return l.forEach(u=>{const d=a.lastIndexOf(u);d>c&&(c=d)}),c===-1&&a.length===e?(c=a.lastIndexOf(" "),c===-1&&(c=e-1)):c===-1&&(c=a.length-1),c+s+1},i=()=>{if(!this.isSpeaking||t>=n.length){console.log("Speech stopped or finished."),this.isSpeaking=!1,this.msg=null;return}const s=r(t),a=n.substring(t,s).trim();t=s,a?(console.log("Speaking chunk:",a),this.msg=new SpeechSynthesisUtterance(a),this.msg.pitch=this.$store.state.config.audio_pitch||1,this.msg.rate=this.$store.state.config.audio_rate||1,o&&(this.msg.voice=o),this.msg.onend=l=>{console.log("Chunk ended."),setTimeout(i,50)},this.msg.onerror=l=>{console.error("Speech synthesis error:",l.error),this.isSpeaking=!1,this.msg=null},this.speechSynthesis.speak(this.msg)):t{e.focus(),e.selectionStart=e.selectionEnd=l,this.adjustTextareaHeight(e)})},copyContentToClipboard(){navigator.clipboard.writeText(this.message.content).then(()=>{this.$store.state.toast.showToast("Message copied to clipboard!",4,!0)}).catch(t=>{this.$store.state.toast.showToast("Failed to copy message: "+t,4,!1)})},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.message.metadata),this.editMsgMode=!1},resendMessage(t){this.$emit("resendMessage",this.message.id,this.message.content,t)},continueMessage(){console.log("Emitting continueMessage"),this.$emit("continueMessage",this.message.id,this.message.content)},getImgUrl(){return this.avatar&&this.avatar.startsWith("http")?this.avatar:this.avatar?(this.host||"")+"/"+this.avatar.split("/").pop():Wi},defaultImg(t){console.warn("Failed to load avatar, using placeholder."),t.target.src=Wi},parseDate(t){let e=new Date(Date.parse(t)),n=new Date;if(isNaN(e))return t;let o=Math.floor((n-e)/1e3);if(o<=1)return"just now";if(o<20)return o+" seconds ago";if(o<40)return"half a minute ago";if(o<60)return"less than a minute ago";if(o<=90)return"one minute ago";if(o<=3540)return Math.round(o/60)+" minutes ago";if(o<=5400)return"1 hour ago";if(o<=86400)return Math.round(o/3600)+" hours ago";if(o<=129600)return"1 day ago";if(o<604800)return Math.round(o/86400)+" days ago";if(o<=777600)return"1 week ago";const r={year:"numeric",month:"short",day:"numeric"};return e.toLocaleDateString(void 0,r)},prettyDate(t){if(!t)return"";let e;try{if(e=new Date((t||"").replace(/-/g,"/").replace(/[TZ]/g," ")),isNaN(e))throw new Error("Invalid date")}catch(r){return console.error("Error parsing date:",t,r),t}let n=(new Date().getTime()-e.getTime())/1e3,o=Math.floor(n/86400);if(o<0)return e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});if(o===0)return n<60?"just now":n<120?"1 minute ago":n<3600?Math.floor(n/60)+" minutes ago":n<7200?"1 hour ago":Math.floor(n/3600)+" hours ago";if(o===1)return"Yesterday";if(o<7)return o+" days ago";if(o<31)return Math.ceil(o/7)+" weeks ago";{const r={year:"numeric",month:"short",day:"numeric"};return e.toLocaleDateString(void 0,r)}},checkForFullSentence(){const t=this.message.content.trim(),e=t.slice(-1);[".","!","?",` -`].includes(e)&&t.split(/\s+/).length>2&&this.speak()}},watch:{audio_url(t){be(()=>{t&&this.$refs.audio_player&&this.$refs.audio_player.load()})},"message.content":function(t,e){this.editMsgMode&&this.$refs.mdTextarea?this.$nextTick(()=>{this.adjustTextareaHeight(this.$refs.mdTextarea)}):this.$store.state.config.auto_speak&&!(this.$store.state.config.xtts_enable&&this.$store.state.config.xtts_use_streaming_mode)&&!this.isSpeaking&&t!==e&&this.checkForFullSentence()},"message.ui":function(t,e){JSON.stringify(t)!==JSON.stringify(e)&&(console.log("UI changed detected",t),this.ui_componentKey++)},showConfirmation(t){t&&be(()=>{Le.replace()})},deleteMsgMode(t){be(()=>{Le.replace()})},editMsgMode(t){be(()=>{Le.replace(),t&&this.$refs.mdTextarea&&(this.$refs.mdTextarea.focus(),this.adjustTextareaHeight(this.$refs.mdTextarea))})}},computed:{editMsgMode:{get(){return this.message&&this.message.hasOwnProperty("open")?this.editMsgMode_||this.message.open:this.editMsgMode_},set(t){this.message&&this.message.hasOwnProperty("open")&&(this.message.open=t),this.editMsgMode_=t}},isTalking:{get(){return this.isSpeaking}},created_at(){return this.prettyDate(this.message.created_at)},created_at_parsed(){try{return new Date(Date.parse(this.message.created_at)).toLocaleString()}catch{return this.message.created_at}},finished_generating_at_parsed(){try{return new Date(Date.parse(this.message.finished_generating_at)).toLocaleString()}catch{return this.message.finished_generating_at}},time_spent(){if(!(!this.message.started_generating_at||!this.message.finished_generating_at))try{let t=function(l){return l<10?"0"+l:l};const e=new Date(Date.parse(this.message.started_generating_at)),n=new Date(Date.parse(this.message.finished_generating_at));if(isNaN(e)||isNaN(n))return;if(n.getTime()===e.getTime())return"0s";let[r,i,s]=this.computeTimeDiff(e,n),a=[];return r>0&&a.push(t(r)+"h"),i>0&&a.push(t(i)+"m"),s>=0&&a.push(t(s)+"s"),a.join(":")||"0s"}catch{return}},warmup_duration(){if(!(!this.message.created_at||!this.message.started_generating_at))try{let t=function(l){return l<10?"0"+l:l};const e=new Date(Date.parse(this.message.created_at)),n=new Date(Date.parse(this.message.started_generating_at));if(isNaN(e)||isNaN(n))return;if(n.getTime()===e.getTime()||n0&&a.push(t(r)+"h"),i>0&&a.push(t(i)+"m"),s>=0&&a.push(t(s)+"s"),a.join(":")||"0s"}catch{return}},generation_rate(){if(!(!this.message.started_generating_at||!this.message.finished_generating_at||!this.message.nb_tokens||this.message.nb_tokens<=0))try{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(isNaN(t)||isNaN(e))return;const o=e.getTime()-t.getTime();if(o<=0)return;const r=o/1e3,i=n/r;return Math.round(i)+" t/s"}catch{return}}}},uVn={class:"message group border-2 border-transparent hover:border-blue-400 dark:hover:border-blue-500"},dVn={class:"flex flex-row gap-2"},TVn={class:"flex-shrink-0"},fVn={class:"group/avatar"},pVn=["src","data-popover-target"],hVn={class:"flex flex-col w-full flex-grow"},mVn={class:"flex flex-row flex-grow items-start"},gVn={class:"flex flex-col mb-2"},_Vn={class:"message-header text-blue-800 dark:text-blue-100 font-bold text-lg"},QVn=["title"],vVn={class:"message-content overflow-x-auto w-full overflow-y-auto scrollbar space-y-2"},yVn={key:1},bVn=["rows"],EVn={key:2},SVn=["src"],xVn={class:"message-details w-full max-w-4xl mx-auto mt-2"},LVn={key:0,class:"steps-container bg-blue-50/50 dark:bg-blue-800/50 border border-blue-200 dark:border-blue-700 rounded-md mb-2 text-sm"},CVn={class:"steps-status text-blue-600 dark:text-blue-300 flex-grow"},AVn={key:0,class:"steps-content overflow-hidden"},wVn={class:"px-2 pb-2 space-y-1"},OVn={key:1,class:"mt-2 flex flex-col items-start w-full overflow-y-auto scrollbar"},MVn={class:"flex flex-row justify-end items-center mt-1 mx-2"},RVn={class:"absolute bottom-2 right-2 invisible group-hover:visible flex flex-row items-center gap-1 bg-blue-200/70 dark:bg-blue-900/70 rounded-md p-1 shadow"},NVn={key:0,class:"flex items-center gap-1"},DVn={key:1,class:"flex items-center gap-1"},IVn={key:0,class:"flex items-center gap-1"},kVn={key:1,class:"flex items-center gap-1"},HVn={key:2,class:"flex items-center gap-1"},PVn={class:"flex items-center"},$Vn={key:4,class:"flex items-center gap-1"},VVn={key:5,class:"flex items-center gap-1"},BVn=["src"],FVn={class:"text-xs text-blue-500 dark:text-blue-400 mt-2"},UVn={class:"flex flex-row flex-wrap items-center gap-x-3 gap-y-1"},qVn={key:0,class:"footer-item"},GVn={class:"footer-value"},jVn={key:1,class:"footer-item"},zVn={class:"footer-value"},YVn={key:2,class:"footer-item"},WVn={class:"footer-value"},KVn={key:3,class:"footer-item"},ZVn={class:"footer-value"},XVn={key:4,class:"footer-item"},JVn={class:"footer-value"},eBn={key:5,class:"footer-item"},tBn={class:"footer-value"},nBn={key:6,class:"footer-item"},rBn={class:"footer-value"};function iBn(t,e,n,o,r,i){var g;const s=We("MarkdownRenderer"),a=We("JsonViewer"),l=We("DynamicUIRenderer"),c=We("StatusIcon"),u=We("Step"),d=We("RenderHTMLJS"),f=We("ToolbarButton"),T=We("DropdownSubmenu"),h=We("DropdownMenu");return N(),H("div",uVn,[S("div",dVn,[S("div",TVn,[S("div",fVn,[S("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 border border-blue-300 dark:border-blue-600"},null,40,pVn)])]),S("div",hVn,[S("div",mVn,[S("div",gVn,[S("div",_Vn,J(n.message.sender),1),n.message.created_at?(N(),H("div",{key:0,class:"text-xs text-blue-500 dark:text-blue-400 font-thin",title:"Created at: "+i.created_at_parsed},J(i.created_at),9,QVn)):Z("",!0)]),e[46]||(e[46]=S("div",{class:"flex-grow"},null,-1))]),S("div",vVn,[i.editMsgMode?Z("",!0):(N(),it(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"])),i.editMsgMode?(N(),H("div",yVn,[Ce(S("textarea",{ref:"mdTextarea",onKeydown:e[1]||(e[1]=Qn(oe((..._)=>i.insertTab&&i.insertTab(..._),["prevent"]),["tab"])),class:"input w-full min-h-[200px] p-2.5 text-blue-900 dark:text-blue-100 focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-blue-500 dark:focus:border-blue-400 scrollbar shadow-inner",rows:Math.max(4,n.message.content.split(` -`).length),placeholder:"Enter message here...","onUpdate:modelValue":e[2]||(e[2]=_=>n.message.content=_)}," ",40,bVn),[[Je,n.message.content]])])):Z("",!0),n.message.metadata!==null&&!i.editMsgMode?(N(),H("div",EVn,[(N(!0),H(Ae,null,Ue(((g=n.message.metadata)==null?void 0:g.filter(_=>_!=null&&_.hasOwnProperty("title")&&_.hasOwnProperty("content")))||[],(_,m)=>(N(),H("div",{key:"json-"+n.message.id+"-"+m,class:"mt-2"},[(N(),it(a,{title:_.title,data:_.content,key:"msgjson-"+n.message.id},null,8,["title","data"]))]))),128))])):Z("",!0),n.message.ui&&!i.editMsgMode?(N(),it(l,{ref:"ui",class:"w-full mt-2",ui:n.message.ui,key:"msgui-"+n.message.id},null,8,["ui"])):Z("",!0),r.audio_url!=null&&!i.editMsgMode?(N(),H("audio",{controls:"",class:"w-full mt-2",key:r.audio_url},[S("source",{src:r.audio_url,type:"audio/wav",ref:"audio_player"},null,8,SVn),e[47]||(e[47]=Oe(" Your browser does not support the audio element. "))])):Z("",!0),S("div",xVn,[n.message.steps.length>0&&!i.editMsgMode?(N(),H("div",LVn,[S("div",{class:"steps-header flex items-center p-2 cursor-pointer hover:bg-blue-100 dark:hover:bg-blue-700/50 transition-colors duration-200",onClick:e[3]||(e[3]=(..._)=>i.toggleExpanded&&i.toggleExpanded(..._))},[ne(c,{status:n.message.status_message,icon:!0,class:"w-4 h-4 mr-2"},null,8,["status"]),S("span",CVn,J(n.message.status_message),1),S("span",{class:Ee(["toggle-icon text-xs text-blue-500 dark:text-blue-400 transform transition-transform duration-200",{"rotate-180":r.expanded}])},e[48]||(e[48]=[S("i",{"data-feather":"chevron-down",class:"w-4 h-4"},null,-1)]),2)]),ne(Tr,{"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:je(()=>[r.expanded?(N(),H("div",AVn,[S("div",wVn,[(N(!0),H(Ae,null,Ue(n.message.steps,(_,m)=>(N(),H("div",{key:`step-${n.message.id}-${m}`,class:"animate-fadeIn step-item",style:Jt({animationDelay:`${m*50}ms`})},[ne(u,{done:_.done,text:_.text,status:_.status,description:_.description,class:"text-xs rounded bg-blue-100/50 dark:bg-blue-700/50 p-1.5 hover:bg-blue-200/70 dark:hover:bg-blue-600/50"},null,8,["done","text","status","description"])],4))),128))])])):Z("",!0)]),_:1})])):Z("",!0),n.message.html_js_s&&n.message.html_js_s.length&&!i.editMsgMode?(N(),H("div",OVn,[(N(!0),H(Ae,null,Ue(n.message.html_js_s,(_,m)=>(N(),H("div",{key:`htmljs-${n.message.id}-${m}`,class:"w-full animate-fadeIn",style:Jt({animationDelay:`${m*200}ms`})},[ne(d,{htmlContent:_},null,8,["htmlContent"])],4))),128))])):Z("",!0)])]),S("div",MVn,[S("div",RVn,[i.editMsgMode?(N(),H("div",NVn,[ne(f,{onClick:e[4]||(e[4]=oe(_=>i.editMsgMode=!1,["stop"])),title:"Cancel edit",icon:"x",class:"svg-button text-red-500 hover:bg-red-100 dark:hover:bg-red-900"}),ne(f,{onClick:oe(i.updateMessage,["stop"]),title:"Update message",icon:"check",class:"svg-button text-green-500 hover:bg-green-100 dark:hover:bg-green-900"},null,8,["onClick"]),ne(h,{title:"Add Block",icon:"plus-square",class:"svg-button"},{default:je(()=>[ne(T,{title:"Programming Languages",icon:"code"},{default:je(()=>[ne(f,{onClick:e[5]||(e[5]=oe(_=>i.addBlock("python"),["stop"])),title:"Python",icon:"python",class:"svg-button"}),ne(f,{onClick:e[6]||(e[6]=oe(_=>i.addBlock("javascript"),["stop"])),title:"JavaScript",icon:"js",class:"svg-button"}),ne(f,{onClick:e[7]||(e[7]=oe(_=>i.addBlock("typescript"),["stop"])),title:"TypeScript",icon:"typescript",class:"svg-button"}),ne(f,{onClick:e[8]||(e[8]=oe(_=>i.addBlock("java"),["stop"])),title:"Java",icon:"java",class:"svg-button"}),ne(f,{onClick:e[9]||(e[9]=oe(_=>i.addBlock("c++"),["stop"])),title:"C++",icon:"cplusplus",class:"svg-button"}),ne(f,{onClick:e[10]||(e[10]=oe(_=>i.addBlock("csharp"),["stop"])),title:"C#",icon:"csharp",class:"svg-button"}),ne(f,{onClick:e[11]||(e[11]=oe(_=>i.addBlock("go"),["stop"])),title:"Go",icon:"go",class:"svg-button"}),ne(f,{onClick:e[12]||(e[12]=oe(_=>i.addBlock("rust"),["stop"])),title:"Rust",icon:"rust",class:"svg-button"}),ne(f,{onClick:e[13]||(e[13]=oe(_=>i.addBlock("swift"),["stop"])),title:"Swift",icon:"swift",class:"svg-button"}),ne(f,{onClick:e[14]||(e[14]=oe(_=>i.addBlock("kotlin"),["stop"])),title:"Kotlin",icon:"kotlin",class:"svg-button"}),ne(f,{onClick:e[15]||(e[15]=oe(_=>i.addBlock("r"),["stop"])),title:"R",icon:"r-project",class:"svg-button"})]),_:1}),ne(T,{title:"Web Technologies",icon:"chrome"},{default:je(()=>[ne(f,{onClick:e[16]||(e[16]=oe(_=>i.addBlock("html"),["stop"])),title:"HTML",icon:"html5",class:"svg-button"}),ne(f,{onClick:e[17]||(e[17]=oe(_=>i.addBlock("css"),["stop"])),title:"CSS",icon:"css3",class:"svg-button"}),ne(f,{onClick:e[18]||(e[18]=oe(_=>i.addBlock("vue"),["stop"])),title:"Vue.js",icon:"vuejs",class:"svg-button"}),ne(f,{onClick:e[19]||(e[19]=oe(_=>i.addBlock("react"),["stop"])),title:"React",icon:"react",class:"svg-button"}),ne(f,{onClick:e[20]||(e[20]=oe(_=>i.addBlock("angular"),["stop"])),title:"Angular",icon:"angular",class:"svg-button"})]),_:1}),ne(T,{title:"Markup and Data",icon:"file-text"},{default:je(()=>[ne(f,{onClick:e[21]||(e[21]=oe(_=>i.addBlock("xml"),["stop"])),title:"XML",icon:"xml",class:"svg-button"}),ne(f,{onClick:e[22]||(e[22]=oe(_=>i.addBlock("json"),["stop"])),title:"JSON",icon:"json",class:"svg-button"}),ne(f,{onClick:e[23]||(e[23]=oe(_=>i.addBlock("yaml"),["stop"])),title:"YAML",icon:"yaml",class:"svg-button"}),ne(f,{onClick:e[24]||(e[24]=oe(_=>i.addBlock("markdown"),["stop"])),title:"Markdown",icon:"markdown",class:"svg-button"}),ne(f,{onClick:e[25]||(e[25]=oe(_=>i.addBlock("latex"),["stop"])),title:"LaTeX",icon:"latex",class:"svg-button"})]),_:1}),ne(T,{title:"Scripting and Shell",icon:"terminal"},{default:je(()=>[ne(f,{onClick:e[26]||(e[26]=oe(_=>i.addBlock("bash"),["stop"])),title:"Bash",icon:"bash",class:"svg-button"}),ne(f,{onClick:e[27]||(e[27]=oe(_=>i.addBlock("powershell"),["stop"])),title:"PowerShell",icon:"powershell",class:"svg-button"}),ne(f,{onClick:e[28]||(e[28]=oe(_=>i.addBlock("perl"),["stop"])),title:"Perl",icon:"perl",class:"svg-button"})]),_:1}),ne(T,{title:"Diagramming",icon:"git-branch"},{default:je(()=>[ne(f,{onClick:e[29]||(e[29]=oe(_=>i.addBlock("mermaid"),["stop"])),title:"Mermaid",icon:"mermaid",class:"svg-button"}),ne(f,{onClick:e[30]||(e[30]=oe(_=>i.addBlock("graphviz"),["stop"])),title:"Graphviz",icon:"graphviz",class:"svg-button"}),ne(f,{onClick:e[31]||(e[31]=oe(_=>i.addBlock("plantuml"),["stop"])),title:"PlantUML",icon:"plantuml",class:"svg-button"})]),_:1}),ne(T,{title:"Database",icon:"database"},{default:je(()=>[ne(f,{onClick:e[32]||(e[32]=oe(_=>i.addBlock("sql"),["stop"])),title:"SQL",icon:"sql",class:"svg-button"}),ne(f,{onClick:e[33]||(e[33]=oe(_=>i.addBlock("mongodb"),["stop"])),title:"MongoDB",icon:"mongodb",class:"svg-button"})]),_:1}),ne(f,{onClick:e[34]||(e[34]=oe(_=>i.addBlock(""),["stop"])),title:"Generic Block",icon:"code",class:"svg-button"})]),_:1})])):(N(),H("div",DVn,[ne(f,{onClick:e[35]||(e[35]=oe(_=>i.editMsgMode=!0,["stop"])),title:"Edit message",icon:"edit",class:"svg-button"}),ne(f,{onClick:i.copyContentToClipboard,title:"Copy message to clipboard",icon:"copy",class:"svg-button"},null,8,["onClick"]),n.message.sender!==t.$store.state.mountedPers.name?(N(),H("div",IVn,[ne(f,{onClick:e[36]||(e[36]=oe(_=>i.resendMessage("full_context"),["stop"])),title:"Resend message with full context",icon:"send",class:"svg-button"}),ne(f,{onClick:e[37]||(e[37]=oe(_=>i.resendMessage("full_context_with_internet"),["stop"])),title:"Resend message with internet search",icon:"globe",class:"svg-button"}),ne(f,{onClick:e[38]||(e[38]=oe(_=>i.resendMessage("simple_question"),["stop"])),title:"Resend message without context",icon:"refresh-cw",class:"svg-button"})])):Z("",!0),n.message.sender===t.$store.state.mountedPers.name?(N(),H("div",kVn,[ne(f,{onClick:oe(i.continueMessage,["stop"]),title:"Continue message",icon:"fast-forward",class:"svg-button"},null,8,["onClick"])])):Z("",!0),r.deleteMsgMode?(N(),H("div",HVn,[ne(f,{onClick:e[39]||(e[39]=oe(_=>r.deleteMsgMode=!1,["stop"])),title:"Cancel removal",icon:"x",class:"svg-button text-blue-500 hover:bg-blue-100 dark:hover:bg-blue-700"}),ne(f,{onClick:e[40]||(e[40]=oe(_=>i.deleteMsg(),["stop"])),title:"Confirm removal",icon:"check",class:"svg-button text-red-500 hover:bg-red-100 dark:hover:bg-red-900"})])):(N(),it(f,{key:3,title:"Remove message",icon:"trash",onClick:e[41]||(e[41]=_=>r.deleteMsgMode=!0),class:"svg-button text-red-500 hover:bg-red-100 dark:hover:bg-red-900"})),ne(f,{onClick:e[42]||(e[42]=oe(_=>i.rankUp(),["stop"])),title:"Upvote",icon:"thumbs-up",class:"svg-button text-blue-500 dark:text-blue-400"}),S("div",PVn,[ne(f,{onClick:e[43]||(e[43]=oe(_=>i.rankDown(),["stop"])),title:"Downvote",icon:"thumbs-down",class:"svg-button text-red-500 dark:text-red-400"}),n.message.rank!=0?(N(),H("div",{key:0,class:Ee(["text-xs font-bold rounded-full px-1.5 py-0.5 flex items-center justify-center cursor-default",n.message.rank>0?"bg-blue-500 text-white":"bg-red-500 text-white"]),title:"Rank"},J(n.message.rank),3)):Z("",!0)]),this.$store.state.config.active_tts_service!="None"?(N(),H("div",$Vn,[ne(f,{title:"Speak message",icon:"volume-2",onClick:e[44]||(e[44]=oe(_=>i.speak(),["stop"])),class:Ee(["svg-button",{"text-red-500 dark:text-red-400 animate-pulse":i.isTalking}])},null,8,["class"])])):Z("",!0),this.$store.state.config.xtts_enable&&!this.$store.state.config.xtts_use_streaming_mode?(N(),H("div",VVn,[r.isSynthesizingVoice?(N(),H("img",{key:1,src:r.loading_svg,class:"w-5 h-5 animate-spin text-blue-500 dark:text-blue-400"},null,8,BVn)):(N(),it(f,{key:0,title:"Generate audio",icon:"mic",onClick:e[45]||(e[45]=oe(_=>i.read(),["stop"])),class:"svg-button"}))])):Z("",!0)]))])]),S("div",FVn,[S("div",UVn,[n.message.binding?(N(),H("p",qVn,[e[49]||(e[49]=Oe("Binding: ")),S("span",GVn,J(n.message.binding),1)])):Z("",!0),n.message.model?(N(),H("p",jVn,[e[50]||(e[50]=Oe("Model: ")),S("span",zVn,J(n.message.model),1)])):Z("",!0),n.message.seed?(N(),H("p",YVn,[e[51]||(e[51]=Oe("Seed: ")),S("span",WVn,J(n.message.seed),1)])):Z("",!0),n.message.nb_tokens?(N(),H("p",KVn,[e[52]||(e[52]=Oe("Tokens: ")),S("span",ZVn,J(n.message.nb_tokens),1)])):Z("",!0),i.warmup_duration?(N(),H("p",XVn,[e[53]||(e[53]=Oe("Warmup: ")),S("span",JVn,J(i.warmup_duration),1)])):Z("",!0),i.time_spent?(N(),H("p",eBn,[e[54]||(e[54]=Oe("Gen time: ")),S("span",tBn,J(i.time_spent),1)])):Z("",!0),i.generation_rate?(N(),H("p",nBn,[e[55]||(e[55]=Oe("Rate: ")),S("span",rBn,J(i.generation_rate),1)])):Z("",!0)])])])])])}const Ik=ze(cVn,[["render",iBn],["__scopeId","data-v-8fd68363"]]);fe.defaults.baseURL="/";const oBn={data(){return{loading:!1,showMenu:!1,menuPosition:"below"}},props:{commandsList:Array,sendCommand:Function,showSettings: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(()=>{Le.replace(),this.calculatePosition()})},calculatePosition(){var r;const t=this.$refs.menuContainer.getBoundingClientRect(),e=((r=this.$refs.menu)==null?void 0:r.offsetHeight)||300,n=window.innerHeight-t.bottom,o=t.top;this.menuPosition=n>e||n>o?"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)}},sBn={key:0,title:"Loading..",class:"flex flex-row flex-grow justify-end"},aBn={key:1,class:"relative",ref:"menuContainer"},lBn=["title"],cBn=["data-feather"],uBn=["src"],dBn=["src"],TBn={class:"p-2 space-y-1 custom-scrollbar max-h-96 overflow-y-auto"},fBn={class:"flex items-center justify-between w-full px-2 py-1 hover:bg-blue-100 dark:hover:bg-gray-700 transition-colors duration-200 rounded-md"},pBn=["title","onClick"],hBn={key:0,class:"mr-2 flex-shrink-0"},mBn=["checked","id"],gBn=["for"],_Bn={key:0,class:"h-3 w-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},QBn={key:1,class:"mr-2 flex-shrink-0"},vBn=["data-feather"],yBn=["src"],bBn=["src"],EBn=["innerHTML"],SBn=["onClick"],xBn={key:0,class:"border-t border-gray-200 dark:border-gray-700"};function LBn(t,e,n,o,r,i){return r.loading?(N(),H("div",sBn)):(N(),H("div",aBn,[S("button",{onClick:e[0]||(e[0]=(...s)=>i.toggleMenu&&i.toggleMenu(...s)),class:Ee(["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(),H(Ae,{key:0},[i.iconParts.type==="feather"?(N(),H("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,cBn)):i.iconParts.type==="img"?(N(),H("img",{key:1,src:i.iconParts.value,class:"w-4 h-4"},null,8,uBn)):i.iconParts.type==="b64"?(N(),H("img",{key:2,src:"data:image/png;base64,"+i.iconParts.value,class:"w-4 h-4"},null,8,dBn)):Z("",!0)],64)):Z("",!0),(N(),H("svg",{class:Ee(["w-4 h-4 transform transition-transform",{"rotate-180":r.showMenu}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},e[1]||(e[1]=[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)]),2))],10,lBn),ne(Tr,{"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:je(()=>[r.showMenu?(N(),H("div",{key:0,ref:"menu",class:Ee(["absolute z-50 mt-2 w-72 origin-top-right rounded-lg bg-white dark:bg-gray-800 shadow-xl ring-1 ring-black ring-opacity-5 focus:outline-none",r.menuPosition==="above"?"bottom-full mb-2":"top-full"])},[S("div",TBn,[(N(!0),H(Ae,null,Ue(n.commandsList,(s,a)=>(N(),H(Ae,{key:a},[S("div",fBn,[S("button",{title:s.help,onClick:l=>i.selected(s),class:"flex items-center flex-1 min-w-0 text-sm text-gray-700 dark:text-gray-200"},[s.is_checked!==void 0?(N(),H("span",hBn,[S("input",{type:"checkbox",checked:s.is_checked,class:"opacity-0 absolute h-4 w-4",id:`checkbox-${a}`},null,8,mBn),S("label",{for:`checkbox-${a}`,class:Ee(["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(),H("svg",_Bn,e[2]||(e[2]=[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)]))):Z("",!0)],10,gBn)])):Z("",!0),s.icon?(N(),H("span",QBn,[s.icon.startsWith("feather:")?(N(),H("i",{key:0,"data-feather":s.icon.replace("feather:",""),class:"w-4 h-4"},null,8,vBn)):s.icon.startsWith("img:")?(N(),H("img",{key:1,src:s.icon.replace("img:",""),class:"w-4 h-4"},null,8,yBn)):s.icon.startsWith("b64:")?(N(),H("img",{key:2,src:`data:image/png;base64,${s.icon.replace("b64:","")}`,class:"w-4 h-4"},null,8,bBn)):Z("",!0)])):Z("",!0),S("span",{innerHTML:s.name,class:"truncate flex-1 text-left"},null,8,EBn)],8,pBn),n.showSettings!==void 0?(N(),H("button",{key:0,onClick:l=>n.showSettings(s),class:"text-green-500 hover:text-green-600 transition duration-300 ease-in-out flex-shrink-0 p-1",title:"Settings"},e[3]||(e[3]=[S("i",{"data-feather":"settings",class:"h-4 w-4"},null,-1)]),8,SBn)):Z("",!0)]),a0},isCommandsValid(){const t=this.$store.state.mountedPersArr[this.$store.state.config.active_personality_id];return t&&Array.isArray(t.commands)&&t.commands.length>0},dataLakeNames(){return(this.$store.state.config.datalakes||[]).map(e=>({name:e.alias,value:e.alias||"default_value",is_checked:e.mounted,icon:"",help:"mounts the datalake "+e.alias}))},functionCalls(){return(this.$store.state.config.mounted_function_calls||[]).map(e=>({name:e.name,value:e,dir:e.dir,is_checked:e.selected,icon:e.icon||"feather:zap",help:e.help||`Toggles the function call ${e.name}`}))}},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(){this.$store.commit("setLeftPanelCollapsed",!this.$store.state.leftPanelCollapsed)},async toggleRightPanel(){this.$store.commit("setRightPanelCollapsed",!this.$store.state.rightPanelCollapsed),this.$store.state.rightPanelCollapsed},handlePaste(t){const e=(t.clipboardData||t.originalEvent.clipboardData).items;let n=[];for(let o of e)if(o.type.startsWith("image/")){const r=o.getAsFile();if(r){const i=Date.now()+"_"+Math.random().toString(36).substr(2,9),s=r.type.split("/")[1]||"png",a=`pasted_image_${i}.${s}`,l=new File([r],a,{type:r.type});n.push(l)}}else if(o.kind==="file"){const r=o.getAsFile();r&&n.push(r)}n.length>0&&this.addFiles(n)},emitloaded(){this.$emit("loaded")},download_files(){fe.get("/download_files").then(t=>{const e=window.URL.createObjectURL(new Blob([t.data])),n=document.createElement("a");n.href=e;const o=t.headers["content-disposition"];let r="discussion_files.zip";if(o){const i=o.match(/filename="?(.+)"?/i);i&&i.length===2&&(r=i[1])}n.setAttribute("download",r),document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(e)}).catch(t=>{console.error("Error downloading files:",t),this.$store.state.toast.showToast("Error downloading files.",4,!1)})},async remove_file(t){try{const e=await fe.post("/remove_discussion_file",{client_id:this.$store.state.client_id,name:t.name},{headers:this.posts_headers});if(console.log("remove_discussion_file:"),console.log(e.data),e.data.status){const n=this.filesList.findIndex(o=>o.name===t.name);n!==-1&&(this.filesList.splice(n,1),this.isFileSentList.splice(n,1)),this.$store.state.toast.showToast("File removed.",4,!0)}else this.$store.state.toast.showToast(`Could not remove file: ${e.data.error||"Unknown reason"}`,4,!1)}catch(e){console.error("Error removing file:",e),this.$store.state.toast.showToast(`Error removing file: ${e.message}`,4,!1)}},clear_files(){fe.post("/clear_discussion_files_list",{client_id:this.$store.state.client_id},{headers:this.posts_headers}).then(t=>{t.data.state?(this.$store.state.toast.showToast("All files removed.",4,!0),this.filesList=[],this.isFileSentList=[]):this.$store.state.toast.showToast(`Files couldn't be cleared: ${t.data.error||"Unknown reason"}`,4,!1)}).catch(t=>{console.error("Error clearing files:",t),this.$store.state.toast.showToast(`Error clearing files: ${t.message}`,4,!1)})},send_file(t,e){console.log(`Starting send_file for ${t.name}`);const n=new FileReader,o=1024*1024;let r=0,i=0;const s=this.filesList.findIndex(l=>l===t);if(s===-1){console.error(`File ${t.name} not found in filesList during send_file start.`);return}n.onload=()=>{if(n.result){const l=n.result,c=r+l.byteLength>=t.size;console.log(`Sending chunk ${i} for ${t.name}, size: ${l.byteLength}, isLast: ${c}`),Ye.emit("send_file_chunk",{client_id:this.$store.state.client_id,filename:t.name,chunk:l,offset:r,isLastChunk:c,chunkIndex:i}),r+=l.byteLength,i++,c?(console.log(`File ${t.name} sent successfully`),s{console.error(`Error reading file ${t.name}:`,l),this.$store.state.toast.showToast(`Error reading ${t.name}. Upload failed.`,4,!1)};function a(){console.log(`Reading chunk starting at offset ${r} for ${t.name}`);const l=t.slice(r,r+o);n.readAsArrayBuffer(l)}console.log(`Initiating upload for ${t.name}`),a()},makeAnEmptyUserMessage(){this.$emit("createEmptyUserMessage",this.message),this.message=""},makeAnEmptyAIMessage(){this.$emit("createEmptyAIMessage")},toggleSendMenu(){this.isSendMenuVisible=!this.isSendMenuVisible},toggleHelpModal(){this.showHelpModal=!this.showHelpModal,this.$nextTick(()=>{Le.replace()})},updateRT(){this.is_rt?this.stopRTCom():this.startRTCom()},startRTCom(){if(this.$store.state.config.active_tts_service==="None"||!this.$store.state.config.active_tts_service||this.$store.state.config.active_stt_service==="None"){this.$store.state.toast.showToast("TTS and STT services must be configured for Real-Time mode.",4,!1);return}this.is_rt=!0,Ye.emit("start_bidirectional_audio_stream",{client_id:this.$store.state.client_id}),this.$store.state.toast.showToast("Real-time mode activated.",4,!0)},stopRTCom(){this.is_rt=!1,Ye.emit("stop_bidirectional_audio_stream",{client_id:this.$store.state.client_id}),this.$store.state.toast.showToast("Real-time mode deactivated.",4,!0)},startSpeechRecognition(){var t;if(!("SpeechRecognition"in window||"webkitSpeechRecognition"in window)){console.error("Speech recognition is not supported in this browser."),this.$store.state.toast.showToast("Speech recognition is not supported in this browser.",4,!1);return}if(this.isListeningToVoice){console.log("Speech recognition already active, stopping..."),this.recognition.stop(),clearTimeout(this.silenceTimer),this.isListeningToVoice=!1;return}try{const e=window.SpeechRecognition||window.webkitSpeechRecognition;this.recognition=new e,this.recognition.lang=((t=this.$store.state.config)==null?void 0:t.audio_in_language)||navigator.language,this.recognition.interimResults=!0,this.recognition.continuous=!1,this.recognitionError=!1,this.recognition.onstart=()=>{console.log("Speech recognition started."),this.isListeningToVoice=!0,this.resetSilenceTimer()},this.recognition.onresult=n=>{this.resetSilenceTimer();let o="",r="";for(let i=n.resultIndex;i{console.error("Speech recognition error:",n.error),this.recognitionError=!0;let o=n.error;n.error==="no-speech"?o="No speech detected. Please try again.":n.error==="audio-capture"?o="Microphone error. Check permissions and hardware.":n.error==="not-allowed"?o="Microphone access denied. Please allow access in browser settings.":o=`Speech recognition error: ${n.error}`,this.$store.state.toast.showToast(o,4,!1)},this.recognition.onend=()=>{console.log("Speech recognition ended."),this.isListeningToVoice=!1,clearTimeout(this.silenceTimer),this.message.trim()&&!this.recognitionError?this.submit():this.recognitionError&&this.message.trim()&&console.log("Recognition ended with error, message kept in input:",this.message)},this.recognition.start()}catch(e){console.error("Error initializing SpeechRecognition:",e),this.$store.state.toast.showToast("Could not start voice input.",4,!1),this.isListeningToVoice=!1}},resetSilenceTimer(){clearTimeout(this.silenceTimer),this.silenceTimer=setTimeout(()=>{this.isListeningToVoice&&this.recognition&&(console.log("Silence detected, stopping recognition."),this.recognition.stop())},this.silenceTimeoutDuration)},computedFileSize(t){return E2(t,{})},removeItem(t){this.remove_file(t)},sendMessageEvent(t,e="no_internet"){const n=t.trim();n!==""?this.$emit("messageSentEvent",n,e):this.$store.state.toast.showToast("Cannot send empty message.",4,!1)},sendCMDEvent(t){t&&t.value?this.$emit("sendCMDEvent",t):console.warn("Attempted to send invalid command:",t)},async mountDB(t){if(console.log("Toggling datalake mount for:",t),!t){console.error("Mount DB command name is missing.");return}const e=this.$store.state.config.datalakes.find(r=>r.alias===t),n=e?e.mounted:!1,o=this.dataLakeNames.findIndex(r=>r.name===t);o!==-1&&(this.dataLakeNames[o].is_checked=!n);try{await fe.post("/toggle_mount_rag_database",{client_id:this.$store.state.client_id,datalake_name:t},{headers:this.posts_headers}),await this.$store.dispatch("refreshConfig"),this.$store.state.toast.showToast(`Datalake ${t} ${n?"unmounted":"mounted"}.`,4,!0),console.log("Datalake toggle successful, config refreshed.")}catch(r){console.error("Error toggling datalake:",r),this.$store.state.toast.showToast(`Error toggling datalake ${t}.`,4,!1),o!==-1&&(this.dataLakeNames[o].is_checked=n)}},async showFunctionSettings(t){const e=t;if(!e||!e.dir||!e.name){console.error("Invalid function data for settings:",e);return}console.log("Showing settings for function:",e.name,"in category:",e.dir);const o=e.dir.replace(/\\/g,"/").split("/").filter(i=>i!==""),r=o.length>1?o[o.length-2]:"unknown";console.log("Determined category:",r);try{this.isLoading=!0;const i=await fe.post("/get_function_call_settings",{client_id:this.$store.state.client_id,category:r,name:e.name},{headers:this.posts_headers});this.isLoading=!1,i.data&&Object.keys(i.data).length>0?this.$store.state.universalForm.showForm(i.data,`Settings: ${e.name}`,"Save Changes","Cancel").then(s=>{console.log("Saving function call settings:",s),fe.post("/set_function_call_settings",{client_id:this.$store.state.client_id,category:r,name:e.name,settings:s},{headers:this.posts_headers}).then(a=>{var l;a.data&&a.data.status==="success"?this.$store.state.toast.showToast(`Settings for ${e.name} updated.`,4,!0):this.$store.state.toast.showToast(`Failed to save settings: ${((l=a.data)==null?void 0:l.error)||"Unknown error"}`,4,!1)}).catch(a=>{console.error("Error setting function call settings:",a),this.$store.state.toast.showToast(`Error saving settings: ${a.message}`,4,!1)})}).catch(()=>{console.log("Function settings form cancelled.")}):this.$store.state.toast.showToast(`${e.name} has no configurable settings.`,4,!0)}catch(i){this.isLoading=!1,console.error("Could not get function call settings:",i),this.$store.state.toast.showToast(`Error fetching settings for ${e.name}.`,4,!1)}},async toggleFunctionCall(t){const e=t;if(!e||!e.dir||!e.name){console.error("Invalid function data for toggle:",e);return}console.log("Toggling function call:",e.name);const n=e.is_checked,o=this.functionCalls.findIndex(r=>r.value===t);o!==-1&&(this.functionCalls[o].is_checked=!n);try{await fe.post("/toggle_function_call",{client_id:this.$store.state.client_id,name:e.name,dir:e.dir},{headers:this.posts_headers}),await this.$store.dispatch("refreshConfig"),this.$store.state.toast.showToast(`Function call ${e.name} ${n?"disabled":"enabled"}.`,4,!0),console.log("Function call toggle successful, config refreshed.")}catch(r){console.error("Error toggling function call:",r),this.$store.state.toast.showToast(`Error toggling ${e.name}.`,4,!1),o!==-1&&(this.functionCalls[o].is_checked=n)}},addWebLink(){this.isSendMenuVisible=!1,this.$emit("addWebLink")},add_file(){this.isSendMenuVisible=!1,this.$refs.fileDialog.click()},takePicture(){this.isSendMenuVisible=!1,Ye.emit("take_picture",{client_id:this.$store.state.client_id}),this.$store.state.toast.showToast("Requesting picture...",4,!0)},submitOnEnter(t){t.key==="Enter"&&!t.shiftKey&&!this.loading?(t.preventDefault(),t.repeat||(this.sendMessageEvent(this.message),this.message="")):t.key==="Enter"&&this.loading&&(t.preventDefault(),this.$store.state.toast.showToast("Please wait for the current response.",4,!1))},submit(){if(this.loading){this.$store.state.toast.showToast("Please wait for the current response.",4,!1);return}this.sendMessageEvent(this.message),this.message.trim()!==""&&(this.message="")},submitWithInternetSearch(){if(this.loading){this.$store.state.toast.showToast("Please wait for the current response.",4,!1);return}this.sendMessageEvent(this.message,"internet"),this.message.trim()!==""&&(this.message="")},stopGenerating(){this.$emit("stopGenerating")},addFiles(t){if(!t||t.length===0){console.warn("addFiles called with invalid or empty files:",t);return}console.log("Attempting to add files:",t);let e;try{e=Array.from(t)}catch(r){console.error("Error converting files to array:",r),this.$store.state.toast.showToast("Error processing selected files.",4,!1);return}console.log("Successfully converted to array:",e);let n=0;const o=()=>{if(n>=e.length){console.log("All files processed."),this.recalculateTotalSize();return}const r=e[n];if(!r||typeof r.name>"u"||typeof r.size>"u"){console.warn(`Skipping invalid file object at index ${n}:`,r),this.$store.state.toast.showToast("Skipped an invalid file entry.",4,!1),n++,o();return}this.filesList.some(i=>i.name===r.name&&i.size===r.size)?(console.log(`File ${r.name} already exists, skipping.`),this.$store.state.toast.showToast(`File ${r.name} already added.`,4,!1),n++,o()):(this.filesList.push(r),this.isFileSentList.push(!1),this.send_file(r,()=>{console.log(`Callback after send_file for ${r.name}.`),n++,o()}))};o()},recalculateTotalSize(){let t=0;this.filesList.forEach(e=>{typeof e.size=="number"&&(t+=e.size)}),this.totalSize=this.computedFileSize(t)}},watch:{filesList:{handler(t,e){this.recalculateTotalSize(),be(()=>{Le.replace()})},deep:!0},isFileSentList:{handler(t,e){be(()=>{Le.replace()})},deep:!0},loading(t){be(()=>{Le.replace()})},isSendMenuVisible(t){t&&be(()=>{Le.replace()})},"$store.state.config.active_personality_id":function(){be(()=>{Le.replace()})},"$store.state.config.datalakes":{handler(){be(()=>{Le.replace()})},deep:!0},"$store.state.config.mounted_function_calls":{handler(){be(()=>{Le.replace()})},deep:!0},"$store.state.config.think_first_mode":function(){},"$store.state.config.fun_mode":function(){},"$store.state.leftPanelCollapsed":function(){},"$store.state.rightPanelCollapsed":function(){},"$store.state.is_rt_on":function(t){this.is_rt=t}},mounted(){this.emitloaded(),be(()=>{Le.replace()}),console.log("Chatbar mounted"),Ye.on("rtcom_status_changed",t=>{this.$store.dispatch("fetchisRTOn"),console.log("rtcom_status_changed received:",t.status)}),Ye.on("picture_taken",t=>{if(console.log("Picture taken event received",t),t&&t.client_id===this.$store.state.client_id&&t.file){const e=t.file;this.filesList.some(n=>n.name===e.name)?console.log("Picture file already in list, skipping add."):(this.filesList.push(e),this.isFileSentList.push(!0),this.$store.state.toast.showToast("Picture added successfully!",4,!0))}else console.warn("Picture taken event received, but data is missing or not for this client.",t)}),this.$store.dispatch("fetchisRTOn").then(()=>{this.is_rt=this.$store.state.is_rt_on}),this.recalculateTotalSize()},beforeUnmount(){console.log("Chatbar beforeUnmount: Cleaning up..."),Ye.off("rtcom_status_changed"),Ye.off("picture_taken"),this.recognition&&this.isListeningToVoice&&(this.recognition.abort(),this.isListeningToVoice=!1),clearTimeout(this.silenceTimer)},activated(){console.log("Chatbar activated"),be(()=>{Le.replace()}),this.recalculateTotalSize(),this.$store.dispatch("fetchisRTOn").then(()=>{this.is_rt=this.$store.state.is_rt_on})},deactivated(){console.log("Chatbar deactivated"),this.recognition&&this.isListeningToVoice&&(this.recognition.abort(),this.isListeningToVoice=!1),clearTimeout(this.silenceTimer)}},MBn={class:"chatbox-color fixed bottom-4 left-1/2 transform -translate-x-1/2 w-11/12 max-w-3xl p-3 bg-opacity-90 backdrop-blur-md rounded-xl border border-blue-300 dark:border-blue-700 shadow-lg transition-all duration-300 ease-in-out z-50"},RBn={key:0,class:"mb-2 border-b border-blue-200 dark:border-blue-700 pb-2"},NBn={class:"flex items-center justify-between mb-1.5"},DBn=["title"],IBn={class:"flex items-center gap-1.5"},kBn={class:"text-xs text-blue-600 dark:text-blue-300",title:"Total file size and number of files"},HBn={class:"flex items-center gap-1.5 min-w-0"},PBn={key:0,class:"animate-spin flex-shrink-0",title:"Uploading..."},$Bn=["title"],VBn={class:"flex items-center gap-1.5 flex-shrink-0"},BBn=["title"],FBn=["onClick"],UBn={class:"flex flex-col gap-1.5"},qBn={class:"flex flex-row gap-1.5 w-full"},GBn={class:"relative flex-grow"},jBn=["disabled"],zBn={class:"absolute inset-y-0 right-0 flex items-center pr-1.5 space-x-1"},YBn={class:"flex items-center justify-between relative"},WBn=["title"],KBn={class:"flex items-center gap-1"},ZBn={class:"flex items-center gap-1"},XBn={class:"flex items-center gap-1"},JBn={class:"p-1.5 space-y-1"},eFn=["title"],tFn={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 backdrop-blur-sm p-4"},nFn={class:"card max-w-lg w-full relative overflow-y-auto max-h-[85vh] scrollbar p-4 md:p-6"};function rFn(t,e,n,o,r,i){const s=We("PersonalitiesCommands");return N(),H(Ae,null,[S("div",MBn,[r.filesList.length>0?(N(),H("div",RBn,[S("div",NBn,[S("button",{class:"svg-button p-1.5",title:r.showfilesList?"Hide file list":"Show file list",onClick:e[0]||(e[0]=oe(a=>r.showfilesList=!r.showfilesList,["stop"]))},e[25]||(e[25]=[S("i",{"data-feather":"list",class:"w-4 h-4"},null,-1)]),8,DBn),S("div",IBn,[S("span",kBn,J(r.totalSize)+" ("+J(r.filesList.length)+") ",1),S("button",{onClick:e[1]||(e[1]=(...a)=>i.clear_files&&i.clear_files(...a)),class:"svg-button p-1 hover:text-red-500 dark:hover:text-red-400",title:"Clear all files"},e[26]||(e[26]=[S("i",{"data-feather":"trash",class:"w-3.5 h-3.5"},null,-1)])),S("button",{onClick:e[2]||(e[2]=(...a)=>i.download_files&&i.download_files(...a)),class:"svg-button p-1 hover:text-blue-500 dark:hover:text-blue-400",title:"Download all files"},e[27]||(e[27]=[S("i",{"data-feather":"download-cloud",class:"w-3.5 h-3.5"},null,-1)]))])]),Ce(ne(O2,{name:"list",tag:"div",class:"max-h-32 overflow-y-auto rounded-md bg-blue-100 dark:bg-blue-900 divide-y divide-blue-200 dark:divide-blue-700 scrollbar"},{default:je(()=>[(N(!0),H(Ae,null,Ue(r.filesList,(a,l)=>(N(),H("div",{key:l+"-"+a.name,class:"flex items-center justify-between p-1.5 group hover:bg-blue-200 dark:hover:bg-blue-800 transition-colors duration-150"},[S("div",HBn,[r.isFileSentList[l]?Z("",!0):(N(),H("div",PBn,e[28]||(e[28]=[S("i",{"data-feather":"loader",class:"w-3.5 h-3.5 text-blue-500 dark:text-blue-400"},null,-1)]))),e[29]||(e[29]=S("i",{"data-feather":"file",class:"w-3.5 h-3.5 flex-shrink-0 text-blue-600 dark:text-blue-300",title:"File"},null,-1)),S("span",{class:Ee(["truncate text-xs",r.isFileSentList[l]?"text-green-600 dark:text-green-400":"text-blue-700 dark:text-blue-200"]),title:a.name},J(a.name),11,$Bn)]),S("div",VBn,[S("span",{class:"text-xs text-blue-500 dark:text-blue-400",title:i.computedFileSize(a.size)},J(i.computedFileSize(a.size)),9,BBn),S("button",{onClick:c=>i.removeItem(a),class:"svg-button p-0.5 opacity-0 group-hover:opacity-100 hover:text-red-500 dark:hover:text-red-400 transition-all duration-150",title:"Remove file"},e[30]||(e[30]=[S("i",{"data-feather":"x",class:"w-3.5 h-3.5"},null,-1)]),8,FBn)])]))),128))]),_:1},512),[[wn,r.showfilesList]])])):Z("",!0),S("div",UBn,[S("div",qBn,[S("div",GBn,[Ce(S("textarea",{id:"chat",disabled:n.loading,"onUpdate:modelValue":e[3]||(e[3]=a=>r.message=a),onPaste:e[4]||(e[4]=(...a)=>i.handlePaste&&i.handlePaste(...a)),onKeydown:e[5]||(e[5]=Qn(oe(a=>i.submitOnEnter(a),["exact"]),["enter"])),rows:"1",class:"input w-full p-2.5 pr-20 text-sm rounded-lg focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-400 border-blue-300 dark:border-blue-600 resize-y min-h-[2.75rem] max-h-28 overflow-auto transition-colors scrollbar text-blue-900 dark:text-blue-100 placeholder-blue-400 dark:placeholder-blue-500",placeholder:"Write your message...",title:"Enter your message here"},null,40,jBn),[[Je,r.message]]),S("div",zBn,[n.loading?(N(),H("button",{key:0,onClick:e[6]||(e[6]=(...a)=>i.stopGenerating&&i.stopGenerating(...a)),class:"btn btn-sm bg-red-500 text-white hover:bg-red-600 focus:ring-red-300 dark:focus:ring-red-600 transform hover:scale-105 active:scale-95 transition-all duration-200 ease-in-out shadow-md hover:shadow-lg animate-pulse p-1.5",title:"Stop generating","aria-label":"Stop generation process"},e[31]||(e[31]=[S("i",{"data-feather":"stop-circle",class:"w-4 h-4 animate-spin-slow"},null,-1),S("span",{class:"sr-only"},"Stop",-1)]))):(N(),H(Ae,{key:1},[S("button",{onClick:e[7]||(e[7]=(...a)=>i.submit&&i.submit(...a)),class:"svg-button p-1.5",title:"Send message"},e[32]||(e[32]=[S("i",{"data-feather":"send",class:"w-4 h-4"},null,-1)])),S("button",{onClick:e[8]||(e[8]=(...a)=>i.submitWithInternetSearch&&i.submitWithInternetSearch(...a)),class:"svg-button p-1.5",title:"Send with internet search"},e[33]||(e[33]=[S("i",{"data-feather":"globe",class:"w-4 h-4"},null,-1)]))],64))])])]),S("div",YBn,[S("button",{onClick:e[9]||(e[9]=(...a)=>i.toggleLeftPanel&&i.toggleLeftPanel(...a)),class:Ee(["svg-button p-1.5",t.$store.state.leftPanelCollapsed?"":"bg-blue-200 dark:bg-blue-700"]),title:t.$store.state.leftPanelCollapsed?"Expand Left Panel":"Collapse Left Panel"},e[34]||(e[34]=[tr('',1)]),10,WBn),S("div",KBn,[i.isCommandsValid?(N(),it(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",size:"small"},null,8,["commandsList","sendCommand","on-show-toast-message"])):Z("",!0),i.isdataLakeNamesValid?(N(),it(s,{key:1,help:"Datalakes",icon:"feather:book",commandsList:i.dataLakeNames,sendCommand:i.mountDB,"on-show-toast-message":n.onShowToastMessage,ref:"databasesList",size:"small"},null,8,["commandsList","sendCommand","on-show-toast-message"])):Z("",!0),t.$store.state.config.mounted_function_calls.length>0?(N(),it(s,{key:2,icon:"feather:zap",help:"Function calls (WIP)",commandsList:i.functionCalls,sendCommand:i.toggleFunctionCall,showSettings:i.showFunctionSettings,"on-show-toast-message":n.onShowToastMessage,ref:"functioncalls",size:"small"},null,8,["commandsList","sendCommand","showSettings","on-show-toast-message"])):Z("",!0)]),S("div",ZBn,[S("button",{onClick:e[10]||(e[10]=(...a)=>i.toggleThinkFirstMode&&i.toggleThinkFirstMode(...a)),class:Ee(["svg-button p-1.5",{"text-blue-600 dark:text-blue-400 bg-blue-200 dark:bg-blue-700":t.$store.state.config.think_first_mode}]),title:"Toggle Think First Mode"},e[35]||(e[35]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[S("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"}),S("path",{d:"M9 18h6"}),Oe(),S("path",{d:"M10 22h4"})],-1)]),2),S("button",{onClick:e[11]||(e[11]=(...a)=>i.toggleFunMode&&i.toggleFunMode(...a)),class:Ee(["svg-button p-1.5",{"text-blue-600 dark:text-blue-400 bg-blue-200 dark:bg-blue-700":t.$store.state.config.fun_mode}]),title:"Toggle Fun Mode"},e[36]||(e[36]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[S("circle",{cx:"12",cy:"12",r:"10"}),Oe(),S("path",{d:"M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01"})],-1)]),2)]),S("div",XBn,[S("button",{onClick:e[12]||(e[12]=(...a)=>i.startSpeechRecognition&&i.startSpeechRecognition(...a)),class:Ee(["svg-button p-1.5",{"text-red-500 dark:text-red-400 animate-pulse":r.isListeningToVoice}]),title:"Voice input"},e[37]||(e[37]=[S("i",{"data-feather":"mic",class:"w-4 h-4"},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(),H("button",{key:0,onClick:e[13]||(e[13]=(...a)=>i.updateRT&&i.updateRT(...a)),class:Ee(["btn btn-sm p-1",r.is_rt?"bg-red-500 hover:bg-red-600 text-white":"bg-green-500 hover:bg-green-600 text-white"]),title:"Toggle real-time audio mode"},e[38]||(e[38]=[S("span",{class:"text-xs font-bold"},"RT",-1)]),2)):Z("",!0),S("button",{onClick:e[14]||(e[14]=(...a)=>i.toggleSendMenu&&i.toggleSendMenu(...a)),class:"svg-button p-1.5",title:"More actions (Add file, take picture, etc.)"},e[39]||(e[39]=[S("i",{"data-feather":"plus-circle",class:"w-4 h-4"},null,-1)])),Ce(S("div",{class:"absolute right-0 bottom-full mb-1 w-44 bg-blue-100 dark:bg-blue-800 rounded-md shadow-lg border border-blue-300 dark:border-blue-600 z-10",onMouseleave:e[18]||(e[18]=a=>r.isSendMenuVisible=!1)},[S("div",JBn,[S("button",{onClick:e[15]||(e[15]=(...a)=>i.add_file&&i.add_file(...a)),class:"w-full p-1.5 flex items-center gap-1.5 rounded-md hover:bg-blue-200 dark:hover:bg-blue-700 transition-colors text-blue-700 dark:text-blue-200",title:"Add a file"},e[40]||(e[40]=[S("i",{"data-feather":"file-plus",class:"w-3.5 h-3.5"},null,-1),S("span",{class:"text-xs"},"Add File",-1)])),S("button",{onClick:e[16]||(e[16]=(...a)=>i.takePicture&&i.takePicture(...a)),class:"w-full p-1.5 flex items-center gap-1.5 rounded-md hover:bg-blue-200 dark:hover:bg-blue-700 transition-colors text-blue-700 dark:text-blue-200",title:"Take a picture"},e[41]||(e[41]=[S("i",{"data-feather":"camera",class:"w-3.5 h-3.5"},null,-1),S("span",{class:"text-xs"},"Take Picture",-1)])),S("button",{onClick:e[17]||(e[17]=(...a)=>i.addWebLink&&i.addWebLink(...a)),class:"w-full p-1.5 flex items-center gap-1.5 rounded-md hover:bg-blue-200 dark:hover:bg-blue-700 transition-colors text-blue-700 dark:text-blue-200",title:"Add a web link"},e[42]||(e[42]=[S("i",{"data-feather":"link",class:"w-3.5 h-3.5"},null,-1),S("span",{class:"text-xs"},"Add Web Link",-1)]))])],544),[[wn,r.isSendMenuVisible]]),S("button",{onClick:e[19]||(e[19]=(...a)=>i.makeAnEmptyUserMessage&&i.makeAnEmptyUserMessage(...a)),class:"svg-button p-1.5",title:"Insert an empty user message"},e[43]||(e[43]=[S("i",{"data-feather":"message-circle",class:"w-4 h-4"},null,-1)])),S("button",{onClick:e[20]||(e[20]=(...a)=>i.makeAnEmptyAIMessage&&i.makeAnEmptyAIMessage(...a)),class:"svg-button p-1.5 text-red-400 hover:text-red-500 dark:hover:text-red-400",title:"Insert an empty AI message"},e[44]||(e[44]=[S("i",{"data-feather":"cpu",class:"w-4 h-4"},null,-1)])),S("button",{onClick:e[21]||(e[21]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"svg-button p-1.5",title:"Show Help"},e[45]||(e[45]=[S("i",{"data-feather":"info",class:"w-4 h-4"},null,-1)]))]),S("button",{onClick:e[22]||(e[22]=(...a)=>i.toggleRightPanel&&i.toggleRightPanel(...a)),class:Ee(["svg-button p-1.5",t.$store.state.rightPanelCollapsed?"":"bg-blue-200 dark:bg-blue-700"]),title:t.$store.state.rightPanelCollapsed?"Expand Right Panel":"Collapse Right Panel"},e[46]||(e[46]=[tr('',1)]),10,eFn)])])]),S("input",{type:"file",ref:"fileDialog",onChange:e[23]||(e[23]=a=>i.addFiles(a.target.files)),multiple:"",class:"hidden"},null,544),r.showHelpModal?(N(),H("div",tFn,[S("div",nFn,[S("button",{onClick:e[24]||(e[24]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"svg-button absolute top-2 right-2 z-10",title:"Close tutorial"},e[47]||(e[47]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)])),e[48]||(e[48]=tr('

Chatbar Help

Overview of the chat controls:

Sends your message to the AI.
Sends your message with internet search.
Toggles the left panel visibility.
Toggles the right panel visibility.
Toggle 'Think First' mode (AI processes before replying).
Toggle 'Fun' mode (adds playful elements).
Activates voice input for your message.
Toggles real-time audio conversation mode.
Shows more actions (Add File, Picture, Link).
Inserts an empty user message bubble.
Inserts an empty AI message bubble.
Shows this help information modal.
',3))])])):Z("",!0)],64)}const kk=ze(OBn,[["render",rFn],["__scopeId","data-v-95d5df8b"]]),iFn={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}`:Wi}},methods:{async fetchLatestNews(){try{const t=await fe.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 fe.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 fe.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 fe.get("/get_last_viewed_video_url")).data;console.log("storedVideoUrl"),console.log(e),this.videoUrl!==e&&(this.showVideoButton=!0)}},mounted(){this.fetchLatestNews(),this.fetchVideoUrl()}},oFn={class:"flex flex-col items-center justify-center w-full h-full min-h-screen p-8"},sFn={class:"text-center max-w-4xl"},aFn={class:"flex items-center justify-center gap-8 mb-12"},lFn={class:"relative w-24 h-24"},cFn=["src"],uFn={key:0,class:"flex flex-col items-start"},dFn={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"},TFn={key:1,class:"flex flex-col items-start"},fFn={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"},pFn={key:0,class:"space-y-8 animate-fade-in-up"},hFn=["innerHTML"],mFn={key:1,class:"space-y-8 animate-fade-in-up"},gFn={class:"text-4xl font-semibold"},_Fn={class:"text-xl max-w-3xl mx-auto"},QFn={key:0,class:"mt-12 p-6 rounded-lg shadow-md animate-fade-in-up overflow-y-scroll scrollbar-thin"},vFn=["innerHTML"],yFn={key:2,class:"mt-6 text-red-500"},bFn={key:0,class:"floating-button-container"},EFn=["href"],SFn=["src","alt"];function xFn(t,e,n,o,r,i){return N(),H("div",oFn,[S("div",sFn,[S("div",aFn,[S("div",lFn,[S("img",{src:i.logoSrc,alt:"LoLLMS Logo",class:"w-24 h-24 rounded-full absolute animate-rolling-ball"},null,8,cFn)]),t.$store.state.config!=null&&t.$store.state.config.app_custom_name!=null&&t.$store.state.config.app_custom_name!=""?(N(),H("div",uFn,[S("h1",dFn,J(t.$store.state.config.app_custom_name),1)])):(N(),H("div",TFn,[S("h1",fFn,J(t.$store.state.theme_vars.lollms_title),1),e[1]||(e[1]=S("p",{class:"text-2xl italic mt-2"}," Lord of Large Language And Multimodal Systems ",-1))]))]),t.$store.state.config!=null&&t.$store.state.config.app_custom_name!=null&&t.$store.state.config.app_custom_name!=""?(N(),H("div",pFn,[S("p",{innerHTML:t.$store.state.config.app_custom_welcome_message},null,8,hFn)])):(N(),H("div",mFn,[S("h2",gFn,J(t.$store.state.theme_vars.lollms_welcome_short_message),1),S("p",_Fn,J(t.$store.state.theme_vars.lollms_welcome_message),1),r.latestNews?(N(),H("div",QFn,[e[2]||(e[2]=S("h3",null,"Latest LoLLMS News",-1)),S("p",{innerHTML:r.latestNews},null,8,vFn)])):Z("",!0)])),r.error?(N(),H("div",yFn,J(r.error),1)):Z("",!0)]),r.showVideoButton?(N(),H("div",bFn,[S("a",{href:r.videoUrl,target:"_blank",class:"floating-button",onClick:e[0]||(e[0]=(...s)=>i.handleClick&&i.handleClick(...s))},[e[3]||(e[3]=S("span",{class:"tooltip"},"New ParisNeo Video!",-1)),S("img",{src:i.getImageForVideoType,alt:"New "+r.videoType,class:"w-full h-full object-cover"},null,8,SFn)],8,EFn)])):Z("",!0)])}const Hk=ze(iFn,[["render",xFn],["__scopeId","data-v-861ce6fc"]]);var LFn=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}(),A0=function(){return A0=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&this.fishX+this.fishWidth>t?(this.dx=-Math.abs(this.dx),this.fishScaleX=-1,this.dy=(Math.random()-.5)*2*(this.speed/2),this.fishX=t-this.fishWidth-1):this.dx<0&&this.fishX<0&&(this.dx=Math.abs(this.dx),this.fishScaleX=1,this.dy=(Math.random()-.5)*2*(this.speed/2),this.fishX=1),this.dy>0&&this.fishY+this.fishHeight>e?(this.dy=-Math.abs(this.dy),this.dx+=(Math.random()-.5)*.5,this.fishY=e-this.fishHeight-1):this.dy<0&&this.fishY<0&&(this.dy=Math.abs(this.dy),this.dx+=(Math.random()-.5)*.5,this.fishY=1);const n=Math.sqrt(this.dx*this.dx+this.dy*this.dy),o=1.5;if(n>o){const r=o/n;this.dx*=r,this.dy*=r}else n<.3&&(this.dx=(this.dx||Math.random()-.5)*1.5,this.dy=(this.dy||Math.random()-.5)*1.5);this.fishScaleX=this.dx>=0?1:-1,this.animationFrameId=requestAnimationFrame(this.updateFishPosition)},catchFish(){this.isCaught||(console.log("🎣 April Fools! Fish caught! (lollms webui)"),this.isCaught=!0,this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.messageStyle={position:"absolute",left:`${this.fishX+this.fishWidth/2}px`,top:`${this.fishY+this.fishHeight/2}px`,transform:"translate(-50%, -50%) scale(1)",color:"#FFD700",fontSize:"26px",fontWeight:"bold",textShadow:"1px 1px 3px rgba(0,0,0,0.8)",zIndex:wFn+1,transition:"opacity 0.5s ease-out 1.5s, transform 0.5s ease-out 1.5s",opacity:1,pointerEvents:"none"},this.showCaughtMessage=!0,this.$nextTick(()=>{setTimeout(()=>{this.showCaughtMessage&&(this.messageStyle={...this.messageStyle,opacity:0,transform:"translate(-50%, -50%) scale(0.1)"})},50)}),setTimeout(()=>{this.showCaughtMessage=!1,setTimeout(()=>{this._isMounted&&this.resetFish()},500)},2e3))},resetFish(){var i;this.isCaught=!1,this.showCaughtMessage=!1;const t=Math.floor(Math.random()*4),e=window.innerWidth,n=window.innerHeight,o=((i=this.$refs.fishElement)==null?void 0:i.offsetWidth)||this.fishWidth,r=this.fishHeight;switch(t){case 0:this.fishX=Math.random()*(e-o),this.fishY=-r*1.1,this.dy=Math.abs(Math.random()*.6+.7),this.dx=(Math.random()-.5)*1.5;break;case 1:this.fishX=e+o*.1,this.fishY=Math.random()*(n-r),this.dx=-Math.abs(Math.random()*.6+.7),this.dy=(Math.random()-.5)*1.5;break;case 2:this.fishX=Math.random()*(e-o),this.fishY=n+r*.1,this.dy=-Math.abs(Math.random()*.6+.7),this.dx=(Math.random()-.5)*1.5;break;case 3:this.fishX=-o*1.1,this.fishY=Math.random()*(n-r),this.dx=Math.abs(Math.random()*.6+.7),this.dy=(Math.random()-.5)*1.5;break}this.fishScaleX=this.dx>=0?1:-1,this.$nextTick(()=>{this._isMounted&&(this.updateFishDimensions(),this.animationFrameId&&cancelAnimationFrame(this.animationFrameId),this.animationFrameId=requestAnimationFrame(this.updateFishPosition))})},updateFishDimensions(){const t=this.$refs.fishElement;t&&t.offsetWidth>0?this.fishWidth=t.offsetWidth:this._isMounted&&this.isCaught}},mounted(){this._isMounted=!0,console.log("🐠 April Fools' Fish component mounted! (lollms webui) - Should roam freely!"),this.$nextTick(()=>{this.updateFishDimensions(),this.resetFish()})},beforeUnmount(){this._isMounted=!1,console.log("🐟 April Fools' Fish component unmounting."),this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null)}},MFn={class:"fish-animation-container"},RFn=["src"];function NFn(t,e,n,o,r,i){return N(),H("div",MFn,[r.isCaught?Z("",!0):(N(),H("img",{key:0,ref:"fishElement",src:r.fishGif,alt:"Animated swimming fish - April Fools!",class:"swimming-fish",style:Jt(i.fishStyle),onClick:e[0]||(e[0]=(...s)=>i.catchFish&&i.catchFish(...s)),title:"Try to catch me! ;)"},null,12,RFn)),r.showCaughtMessage?(N(),H("div",{key:1,class:"caught-message",style:Jt(r.messageStyle)}," April Fools! 🎉 Gotcha! ",4)):Z("",!0)])}const DFn=ze(OFn,[["render",NFn],["__scopeId","data-v-a6ab94aa"]]),IFn={props:{personality:{type:Object,required:!0},config:{type:Object,required:!0}},data(){return{show:!1,title:"Add AI Agent",iconUrl:"",file:null,tempConfig:{}}},methods:{showForm(){this.showDialog=!0},hideForm(){this.showDialog=!1},selectIcon(t){t.target.files&&(this.file=t.target.files[0],this.iconUrl=URL.createObjectURL(this.file))},showPanel(){this.show=!0},hide(){this.show=!1},submitForm(){fe.post("/set_personality_config",{client_id:this.$store.state.client_id,category:this.personality.category,name:this.personality.folder,config:this.config}).then(t=>{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)})}}},kFn={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50 z-20"},HFn={class:"relative w-full max-h-full bg-bg-light dark:bg-bg-dark"},PFn={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"},$Fn={class:"justify-center text-center items-center w-full bg-bg-light dark:bg-bg-dark"},VFn={class:"w-full flex flex-row mt-4 text-center justify-center"},BFn={class:"w-full max-h-full container bg-bg-light dark:bg-bg-dark"},FFn={class:"mb-4 w-full"},UFn={class:"w-full bg-bg-light dark:bg-bg-dark"};function qFn(t,e,n,o,r,i){return r.show?(N(),H("div",kFn,[S("div",HFn,[S("div",PFn,[S("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]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[S("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),S("span",{class:"sr-only"},"Close modal",-1)])),S("div",$Fn,[S("div",VFn,[S("button",{type:"submit",onClick:e[1]||(e[1]=oe((...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 "),S("button",{onClick:e[2]||(e[2]=oe(s=>i.hide(),["prevent"])),class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"}," Close ")]),S("div",BFn,[S("form",FFn,[S("table",UFn,[S("tr",null,[e[18]||(e[18]=S("td",null,[S("label",{for:"personalityConditioning"},"Personality Conditioning:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.personality_conditioning]])])]),S("tr",null,[e[19]||(e[19]=S("td",null,[S("label",{for:"userMessagePrefix"},"User Message Prefix:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.user_message_prefix]])])]),S("tr",null,[e[20]||(e[20]=S("td",null,[S("label",{for:"aiMessagePrefix"},"AI Message Prefix:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.ai_message_prefix]])])]),S("tr",null,[e[21]||(e[21]=S("td",null,[S("label",{for:"linkText"},"Link Text:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.link_text]])])]),S("tr",null,[e[22]||(e[22]=S("td",null,[S("label",{for:"welcomeMessage"},"Welcome Message:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.welcome_message]])])]),S("tr",null,[e[23]||(e[23]=S("td",null,[S("label",{for:"modelTemperature"},"Model Temperature:")],-1)),S("td",null,[Ce(S("input",{type:"number",id:"modelTemperature","onUpdate:modelValue":e[8]||(e[8]=s=>n.config.model_temperature=s)},null,512),[[Je,n.config.model_temperature]])])]),S("tr",null,[e[24]||(e[24]=S("td",null,[S("label",{for:"modelTopK"},"Model Top K:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_top_k]])])]),S("tr",null,[e[25]||(e[25]=S("td",null,[S("label",{for:"modelTopP"},"Model Top P:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_top_p]])])]),S("tr",null,[e[26]||(e[26]=S("td",null,[S("label",{for:"modelRepeatPenalty"},"Model Repeat Penalty:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_repeat_penalty]])])]),S("tr",null,[e[27]||(e[27]=S("td",null,[S("label",{for:"modelRepeatLastN"},"Model Repeat Last N:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_repeat_last_n]])])]),S("tr",null,[e[28]||(e[28]=S("td",null,[S("label",{for:"recommendedBinding"},"Recommended Binding:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.recommended_binding]])])]),S("tr",null,[e[29]||(e[29]=S("td",null,[S("label",{for:"recommendedModel"},"Recommended Model:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.recommended_model]])])]),S("tr",null,[e[30]||(e[30]=S("td",null,[S("label",{class:"dark:bg-black dark:text-primary w-full",for:"dependencies"},"Dependencies:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.dependencies]])])]),S("tr",null,[e[31]||(e[31]=S("td",null,[S("label",{for:"antiPrompts"},"Anti Prompts:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.anti_prompts]])])])])])])])])])])):Z("",!0)}const Wk=ze(IFn,[["render",qFn]]),GFn={data(){return{showPopup:!1,webpageUrl:"https://lollms.com/"}},methods:{show(){this.showPopup=!0},hide(){this.showPopup=!1},save_configuration(){fe.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)})}}},jFn={key:0,class:"fixed inset-0 flex items-center justify-center z-50 bg-black bg-opacity-50"},zFn={class:"relative panels-color p-6 rounded-lg shadow-xl max-w-3xl w-full mx-4"},YFn=["src"],WFn={class:"flex items-center mt-4"};function KFn(t,e,n,o,r,i){return N(),it(Tr,{name:"fade"},{default:je(()=>[r.showPopup?(N(),H("div",jFn,[S("div",zFn,[S("button",{onClick:e[0]||(e[0]=(...s)=>i.hide&&i.hide(...s)),class:"absolute top-2 right-2 svg-button z-10",title:"Close"},e[3]||(e[3]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])),S("iframe",{src:r.webpageUrl,class:"w-full h-[70vh] rounded-md border border-blue-300 dark:border-blue-600 bg-white dark:bg-blue-900"},null,8,YFn),S("div",WFn,[Ce(S("input",{type:"checkbox",id:"startup",class:"rounded border-blue-300 dark:border-blue-600 text-blue-600 focus:ring-blue-500 dark:bg-blue-700 dark:focus:ring-offset-blue-800","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),[[Ql,this.$store.state.config.show_news_panel]]),e[4]||(e[4]=S("label",{for:"startup",class:"ml-2 label !mb-0 cursor-pointer"},"Show at startup",-1))])])])):Z("",!0)]),_:1})}const Kk=ze(GFn,[["render",KFn],["__scopeId","data-v-425d1bc4"]]),ZFn="/assets/fastapi-BQj-rjUJ.png",XFn="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",JFn="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",eUn="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",tUn="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",nUn="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",rUn="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",iUn="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",oUn="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",sUn="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",aUn="/assets/robot-CQPaMbxU.svg",lUn="/";fe.defaults.baseURL="/";const cUn={name:"MountedPersonalities",props:{onShowPersList:Function,onReady:Function},components:{Toast:bp,UniversalForm:ZI},data(){return{bUrl:lUn,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 fe.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(r=>r===t.full_path),o={client_id:this.$store.state.client_id,id:n};e=await fe.post("/select_personality",o),console.log("Generating message from ",e.data.status),Ye.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 fe.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{fe.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=>{console.log("Received"),console.log(n);try{fe.post("/set_active_personality_settings",n).then(o=>{o&&o.data?(console.log("personality set with new settings",o.data),this.$store.state.toast.showToast("Personality settings updated successfully!",4,!0)):this.$store.state.toast.showToast(`Did not get Personality settings responses. +`].includes(e)&&t.split(/\s+/).length>2&&this.speak()}},watch:{audio_url(t){be(()=>{t&&this.$refs.audio_player&&this.$refs.audio_player.load()})},"message.content":function(t,e){this.editMsgMode&&this.$refs.mdTextarea?this.$nextTick(()=>{this.adjustTextareaHeight(this.$refs.mdTextarea)}):this.$store.state.config.auto_speak&&!(this.$store.state.config.xtts_enable&&this.$store.state.config.xtts_use_streaming_mode)&&!this.isSpeaking&&t!==e&&this.checkForFullSentence()},"message.ui":function(t,e){JSON.stringify(t)!==JSON.stringify(e)&&(console.log("UI changed detected",t),this.ui_componentKey++)},showConfirmation(t){t&&be(()=>{Le.replace()})},deleteMsgMode(t){be(()=>{Le.replace()})},editMsgMode(t){be(()=>{Le.replace(),t&&this.$refs.mdTextarea&&(this.$refs.mdTextarea.focus(),this.adjustTextareaHeight(this.$refs.mdTextarea))})}},computed:{editMsgMode:{get(){return this.message&&this.message.hasOwnProperty("open")?this.editMsgMode_||this.message.open:this.editMsgMode_},set(t){this.message&&this.message.hasOwnProperty("open")&&(this.message.open=t),this.editMsgMode_=t}},isTalking:{get(){return this.isSpeaking}},created_at(){return this.prettyDate(this.message.created_at)},created_at_parsed(){try{return new Date(Date.parse(this.message.created_at)).toLocaleString()}catch{return this.message.created_at}},finished_generating_at_parsed(){try{return new Date(Date.parse(this.message.finished_generating_at)).toLocaleString()}catch{return this.message.finished_generating_at}},time_spent(){if(!(!this.message.started_generating_at||!this.message.finished_generating_at))try{let t=function(l){return l<10?"0"+l:l};const e=new Date(Date.parse(this.message.started_generating_at)),n=new Date(Date.parse(this.message.finished_generating_at));if(isNaN(e)||isNaN(n))return;if(n.getTime()===e.getTime())return"0s";let[r,i,s]=this.computeTimeDiff(e,n),a=[];return r>0&&a.push(t(r)+"h"),i>0&&a.push(t(i)+"m"),s>=0&&a.push(t(s)+"s"),a.join(":")||"0s"}catch{return}},warmup_duration(){if(!(!this.message.created_at||!this.message.started_generating_at))try{let t=function(l){return l<10?"0"+l:l};const e=new Date(Date.parse(this.message.created_at)),n=new Date(Date.parse(this.message.started_generating_at));if(isNaN(e)||isNaN(n))return;if(n.getTime()===e.getTime()||n0&&a.push(t(r)+"h"),i>0&&a.push(t(i)+"m"),s>=0&&a.push(t(s)+"s"),a.join(":")||"0s"}catch{return}},generation_rate(){if(!(!this.message.started_generating_at||!this.message.finished_generating_at||!this.message.nb_tokens||this.message.nb_tokens<=0))try{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(isNaN(t)||isNaN(e))return;const o=e.getTime()-t.getTime();if(o<=0)return;const r=o/1e3,i=n/r;return Math.round(i)+" t/s"}catch{return}}}},dVn={class:"message group border-2 border-transparent hover:border-blue-400 dark:hover:border-blue-500"},TVn={class:"flex flex-row gap-2"},fVn={class:"flex-shrink-0"},pVn={class:"group/avatar"},hVn=["src","data-popover-target"],mVn={class:"flex flex-col w-full flex-grow"},gVn={class:"flex flex-row flex-grow items-start"},_Vn={class:"flex flex-col mb-2"},QVn={class:"message-header text-blue-800 dark:text-blue-100 font-bold text-lg"},vVn=["title"],yVn={class:"message-content overflow-x-auto w-full overflow-y-auto scrollbar space-y-2"},bVn={key:1},EVn=["rows"],SVn={key:2},xVn=["src"],LVn={class:"message-details w-full max-w-4xl mx-auto mt-2"},CVn={key:0,class:"steps-container bg-blue-50/50 dark:bg-blue-800/50 border border-blue-200 dark:border-blue-700 rounded-md mb-2 text-sm"},AVn={class:"steps-status text-blue-600 dark:text-blue-300 flex-grow"},wVn={key:0,class:"steps-content overflow-hidden"},OVn={class:"px-2 pb-2 space-y-1"},MVn={key:1,class:"mt-2 flex flex-col items-start w-full overflow-y-auto scrollbar"},RVn={class:"flex flex-row justify-end items-center mt-1 mx-2"},NVn={class:"absolute bottom-2 right-2 invisible group-hover:visible flex flex-row items-center gap-1 bg-blue-200/70 dark:bg-blue-900/70 rounded-md p-1 shadow"},DVn={key:0,class:"flex items-center gap-1"},IVn={key:1,class:"flex items-center gap-1"},kVn={key:0,class:"flex items-center gap-1"},HVn={key:1,class:"flex items-center gap-1"},PVn={key:2,class:"flex items-center gap-1"},$Vn={class:"flex items-center"},VVn={key:4,class:"flex items-center gap-1"},BVn={key:5,class:"flex items-center gap-1"},FVn=["src"],UVn={class:"text-xs text-blue-500 dark:text-blue-400 mt-2"},qVn={class:"flex flex-row flex-wrap items-center gap-x-3 gap-y-1"},GVn={key:0,class:"footer-item"},jVn={class:"footer-value"},zVn={key:1,class:"footer-item"},YVn={class:"footer-value"},WVn={key:2,class:"footer-item"},KVn={class:"footer-value"},ZVn={key:3,class:"footer-item"},XVn={class:"footer-value"},JVn={key:4,class:"footer-item"},eBn={class:"footer-value"},tBn={key:5,class:"footer-item"},nBn={class:"footer-value"},rBn={key:6,class:"footer-item"},iBn={class:"footer-value"};function oBn(t,e,n,o,r,i){var g;const s=We("MarkdownRenderer"),a=We("JsonViewer"),l=We("DynamicUIRenderer"),c=We("StatusIcon"),u=We("Step"),d=We("RenderHTMLJS"),f=We("ToolbarButton"),T=We("DropdownSubmenu"),h=We("DropdownMenu");return N(),H("div",dVn,[S("div",TVn,[S("div",fVn,[S("div",pVn,[S("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 border border-blue-300 dark:border-blue-600"},null,40,hVn)])]),S("div",mVn,[S("div",gVn,[S("div",_Vn,[S("div",QVn,J(n.message.sender),1),n.message.created_at?(N(),H("div",{key:0,class:"text-xs text-blue-500 dark:text-blue-400 font-thin",title:"Created at: "+i.created_at_parsed},J(i.created_at),9,vVn)):Z("",!0)]),e[46]||(e[46]=S("div",{class:"flex-grow"},null,-1))]),S("div",yVn,[i.editMsgMode?Z("",!0):(N(),it(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"])),i.editMsgMode?(N(),H("div",bVn,[Ce(S("textarea",{ref:"mdTextarea",onKeydown:e[1]||(e[1]=Qn(oe((..._)=>i.insertTab&&i.insertTab(..._),["prevent"]),["tab"])),class:"input w-full min-h-[200px] p-2.5 text-blue-900 dark:text-blue-100 focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-blue-500 dark:focus:border-blue-400 scrollbar shadow-inner",rows:Math.max(4,n.message.content.split(` +`).length),placeholder:"Enter message here...","onUpdate:modelValue":e[2]||(e[2]=_=>n.message.content=_)}," ",40,EVn),[[Je,n.message.content]])])):Z("",!0),n.message.metadata!==null&&!i.editMsgMode?(N(),H("div",SVn,[(N(!0),H(Ae,null,Ue(((g=n.message.metadata)==null?void 0:g.filter(_=>_!=null&&_.hasOwnProperty("title")&&_.hasOwnProperty("content")))||[],(_,m)=>(N(),H("div",{key:"json-"+n.message.id+"-"+m,class:"mt-2"},[(N(),it(a,{title:_.title,data:_.content,key:"msgjson-"+n.message.id},null,8,["title","data"]))]))),128))])):Z("",!0),n.message.ui&&!i.editMsgMode?(N(),it(l,{ref:"ui",class:"w-full mt-2",ui:n.message.ui,key:"msgui-"+n.message.id},null,8,["ui"])):Z("",!0),r.audio_url!=null&&!i.editMsgMode?(N(),H("audio",{controls:"",class:"w-full mt-2",key:r.audio_url},[S("source",{src:r.audio_url,type:"audio/wav",ref:"audio_player"},null,8,xVn),e[47]||(e[47]=Oe(" Your browser does not support the audio element. "))])):Z("",!0),S("div",LVn,[n.message.steps.length>0&&!i.editMsgMode?(N(),H("div",CVn,[S("div",{class:"steps-header flex items-center p-2 cursor-pointer hover:bg-blue-100 dark:hover:bg-blue-700/50 transition-colors duration-200",onClick:e[3]||(e[3]=(..._)=>i.toggleExpanded&&i.toggleExpanded(..._))},[ne(c,{status:n.message.status_message,icon:!0,class:"w-4 h-4 mr-2"},null,8,["status"]),S("span",AVn,J(n.message.status_message),1),S("span",{class:Ee(["toggle-icon text-xs text-blue-500 dark:text-blue-400 transform transition-transform duration-200",{"rotate-180":r.expanded}])},e[48]||(e[48]=[S("i",{"data-feather":"chevron-down",class:"w-4 h-4"},null,-1)]),2)]),ne(Tr,{"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:je(()=>[r.expanded?(N(),H("div",wVn,[S("div",OVn,[(N(!0),H(Ae,null,Ue(n.message.steps,(_,m)=>(N(),H("div",{key:`step-${n.message.id}-${m}`,class:"animate-fadeIn step-item",style:Jt({animationDelay:`${m*50}ms`})},[ne(u,{done:_.done,text:_.text,status:_.status,description:_.description,class:"text-xs rounded bg-blue-100/50 dark:bg-blue-700/50 p-1.5 hover:bg-blue-200/70 dark:hover:bg-blue-600/50"},null,8,["done","text","status","description"])],4))),128))])])):Z("",!0)]),_:1})])):Z("",!0),n.message.html_js_s&&n.message.html_js_s.length&&!i.editMsgMode?(N(),H("div",MVn,[(N(!0),H(Ae,null,Ue(n.message.html_js_s,(_,m)=>(N(),H("div",{key:`htmljs-${n.message.id}-${m}`,class:"w-full animate-fadeIn",style:Jt({animationDelay:`${m*200}ms`})},[ne(d,{htmlContent:_},null,8,["htmlContent"])],4))),128))])):Z("",!0)])]),S("div",RVn,[S("div",NVn,[i.editMsgMode?(N(),H("div",DVn,[ne(f,{onClick:e[4]||(e[4]=oe(_=>i.editMsgMode=!1,["stop"])),title:"Cancel edit",icon:"x",class:"svg-button text-red-500 hover:bg-red-100 dark:hover:bg-red-900"}),ne(f,{onClick:oe(i.updateMessage,["stop"]),title:"Update message",icon:"check",class:"svg-button text-green-500 hover:bg-green-100 dark:hover:bg-green-900"},null,8,["onClick"]),ne(h,{title:"Add Block",icon:"plus-square",class:"svg-button"},{default:je(()=>[ne(T,{title:"Programming Languages",icon:"code"},{default:je(()=>[ne(f,{onClick:e[5]||(e[5]=oe(_=>i.addBlock("python"),["stop"])),title:"Python",icon:"python",class:"svg-button"}),ne(f,{onClick:e[6]||(e[6]=oe(_=>i.addBlock("javascript"),["stop"])),title:"JavaScript",icon:"js",class:"svg-button"}),ne(f,{onClick:e[7]||(e[7]=oe(_=>i.addBlock("typescript"),["stop"])),title:"TypeScript",icon:"typescript",class:"svg-button"}),ne(f,{onClick:e[8]||(e[8]=oe(_=>i.addBlock("java"),["stop"])),title:"Java",icon:"java",class:"svg-button"}),ne(f,{onClick:e[9]||(e[9]=oe(_=>i.addBlock("c++"),["stop"])),title:"C++",icon:"cplusplus",class:"svg-button"}),ne(f,{onClick:e[10]||(e[10]=oe(_=>i.addBlock("csharp"),["stop"])),title:"C#",icon:"csharp",class:"svg-button"}),ne(f,{onClick:e[11]||(e[11]=oe(_=>i.addBlock("go"),["stop"])),title:"Go",icon:"go",class:"svg-button"}),ne(f,{onClick:e[12]||(e[12]=oe(_=>i.addBlock("rust"),["stop"])),title:"Rust",icon:"rust",class:"svg-button"}),ne(f,{onClick:e[13]||(e[13]=oe(_=>i.addBlock("swift"),["stop"])),title:"Swift",icon:"swift",class:"svg-button"}),ne(f,{onClick:e[14]||(e[14]=oe(_=>i.addBlock("kotlin"),["stop"])),title:"Kotlin",icon:"kotlin",class:"svg-button"}),ne(f,{onClick:e[15]||(e[15]=oe(_=>i.addBlock("r"),["stop"])),title:"R",icon:"r-project",class:"svg-button"})]),_:1}),ne(T,{title:"Web Technologies",icon:"chrome"},{default:je(()=>[ne(f,{onClick:e[16]||(e[16]=oe(_=>i.addBlock("html"),["stop"])),title:"HTML",icon:"html5",class:"svg-button"}),ne(f,{onClick:e[17]||(e[17]=oe(_=>i.addBlock("css"),["stop"])),title:"CSS",icon:"css3",class:"svg-button"}),ne(f,{onClick:e[18]||(e[18]=oe(_=>i.addBlock("vue"),["stop"])),title:"Vue.js",icon:"vuejs",class:"svg-button"}),ne(f,{onClick:e[19]||(e[19]=oe(_=>i.addBlock("react"),["stop"])),title:"React",icon:"react",class:"svg-button"}),ne(f,{onClick:e[20]||(e[20]=oe(_=>i.addBlock("angular"),["stop"])),title:"Angular",icon:"angular",class:"svg-button"})]),_:1}),ne(T,{title:"Markup and Data",icon:"file-text"},{default:je(()=>[ne(f,{onClick:e[21]||(e[21]=oe(_=>i.addBlock("xml"),["stop"])),title:"XML",icon:"xml",class:"svg-button"}),ne(f,{onClick:e[22]||(e[22]=oe(_=>i.addBlock("json"),["stop"])),title:"JSON",icon:"json",class:"svg-button"}),ne(f,{onClick:e[23]||(e[23]=oe(_=>i.addBlock("yaml"),["stop"])),title:"YAML",icon:"yaml",class:"svg-button"}),ne(f,{onClick:e[24]||(e[24]=oe(_=>i.addBlock("markdown"),["stop"])),title:"Markdown",icon:"markdown",class:"svg-button"}),ne(f,{onClick:e[25]||(e[25]=oe(_=>i.addBlock("latex"),["stop"])),title:"LaTeX",icon:"latex",class:"svg-button"})]),_:1}),ne(T,{title:"Scripting and Shell",icon:"terminal"},{default:je(()=>[ne(f,{onClick:e[26]||(e[26]=oe(_=>i.addBlock("bash"),["stop"])),title:"Bash",icon:"bash",class:"svg-button"}),ne(f,{onClick:e[27]||(e[27]=oe(_=>i.addBlock("powershell"),["stop"])),title:"PowerShell",icon:"powershell",class:"svg-button"}),ne(f,{onClick:e[28]||(e[28]=oe(_=>i.addBlock("perl"),["stop"])),title:"Perl",icon:"perl",class:"svg-button"})]),_:1}),ne(T,{title:"Diagramming",icon:"git-branch"},{default:je(()=>[ne(f,{onClick:e[29]||(e[29]=oe(_=>i.addBlock("mermaid"),["stop"])),title:"Mermaid",icon:"mermaid",class:"svg-button"}),ne(f,{onClick:e[30]||(e[30]=oe(_=>i.addBlock("graphviz"),["stop"])),title:"Graphviz",icon:"graphviz",class:"svg-button"}),ne(f,{onClick:e[31]||(e[31]=oe(_=>i.addBlock("plantuml"),["stop"])),title:"PlantUML",icon:"plantuml",class:"svg-button"})]),_:1}),ne(T,{title:"Database",icon:"database"},{default:je(()=>[ne(f,{onClick:e[32]||(e[32]=oe(_=>i.addBlock("sql"),["stop"])),title:"SQL",icon:"sql",class:"svg-button"}),ne(f,{onClick:e[33]||(e[33]=oe(_=>i.addBlock("mongodb"),["stop"])),title:"MongoDB",icon:"mongodb",class:"svg-button"})]),_:1}),ne(f,{onClick:e[34]||(e[34]=oe(_=>i.addBlock(""),["stop"])),title:"Generic Block",icon:"code",class:"svg-button"})]),_:1})])):(N(),H("div",IVn,[ne(f,{onClick:e[35]||(e[35]=oe(_=>i.editMsgMode=!0,["stop"])),title:"Edit message",icon:"edit",class:"svg-button"}),ne(f,{onClick:i.copyContentToClipboard,title:"Copy message to clipboard",icon:"copy",class:"svg-button"},null,8,["onClick"]),n.message.sender!==t.$store.state.mountedPers.name?(N(),H("div",kVn,[ne(f,{onClick:e[36]||(e[36]=oe(_=>i.resendMessage("full_context"),["stop"])),title:"Resend message with full context",icon:"send",class:"svg-button"}),ne(f,{onClick:e[37]||(e[37]=oe(_=>i.resendMessage("full_context_with_internet"),["stop"])),title:"Resend message with internet search",icon:"globe",class:"svg-button"}),ne(f,{onClick:e[38]||(e[38]=oe(_=>i.resendMessage("simple_question"),["stop"])),title:"Resend message without context",icon:"refresh-cw",class:"svg-button"})])):Z("",!0),n.message.sender===t.$store.state.mountedPers.name?(N(),H("div",HVn,[ne(f,{onClick:oe(i.continueMessage,["stop"]),title:"Continue message",icon:"fast-forward",class:"svg-button"},null,8,["onClick"])])):Z("",!0),r.deleteMsgMode?(N(),H("div",PVn,[ne(f,{onClick:e[39]||(e[39]=oe(_=>r.deleteMsgMode=!1,["stop"])),title:"Cancel removal",icon:"x",class:"svg-button text-blue-500 hover:bg-blue-100 dark:hover:bg-blue-700"}),ne(f,{onClick:e[40]||(e[40]=oe(_=>i.deleteMsg(),["stop"])),title:"Confirm removal",icon:"check",class:"svg-button text-red-500 hover:bg-red-100 dark:hover:bg-red-900"})])):(N(),it(f,{key:3,title:"Remove message",icon:"trash",onClick:e[41]||(e[41]=_=>r.deleteMsgMode=!0),class:"svg-button text-red-500 hover:bg-red-100 dark:hover:bg-red-900"})),ne(f,{onClick:e[42]||(e[42]=oe(_=>i.rankUp(),["stop"])),title:"Upvote",icon:"thumbs-up",class:"svg-button text-blue-500 dark:text-blue-400"}),S("div",$Vn,[ne(f,{onClick:e[43]||(e[43]=oe(_=>i.rankDown(),["stop"])),title:"Downvote",icon:"thumbs-down",class:"svg-button text-red-500 dark:text-red-400"}),n.message.rank!=0?(N(),H("div",{key:0,class:Ee(["text-xs font-bold rounded-full px-1.5 py-0.5 flex items-center justify-center cursor-default",n.message.rank>0?"bg-blue-500 text-white":"bg-red-500 text-white"]),title:"Rank"},J(n.message.rank),3)):Z("",!0)]),this.$store.state.config.active_tts_service!="None"?(N(),H("div",VVn,[ne(f,{title:"Speak message",icon:"volume-2",onClick:e[44]||(e[44]=oe(_=>i.speak(),["stop"])),class:Ee(["svg-button",{"text-red-500 dark:text-red-400 animate-pulse":i.isTalking}])},null,8,["class"])])):Z("",!0),this.$store.state.config.xtts_enable&&!this.$store.state.config.xtts_use_streaming_mode?(N(),H("div",BVn,[r.isSynthesizingVoice?(N(),H("img",{key:1,src:r.loading_svg,class:"w-5 h-5 animate-spin text-blue-500 dark:text-blue-400"},null,8,FVn)):(N(),it(f,{key:0,title:"Generate audio",icon:"mic",onClick:e[45]||(e[45]=oe(_=>i.read(),["stop"])),class:"svg-button"}))])):Z("",!0)]))])]),S("div",UVn,[S("div",qVn,[n.message.binding?(N(),H("p",GVn,[e[49]||(e[49]=Oe("Binding: ")),S("span",jVn,J(n.message.binding),1)])):Z("",!0),n.message.model?(N(),H("p",zVn,[e[50]||(e[50]=Oe("Model: ")),S("span",YVn,J(n.message.model),1)])):Z("",!0),n.message.seed?(N(),H("p",WVn,[e[51]||(e[51]=Oe("Seed: ")),S("span",KVn,J(n.message.seed),1)])):Z("",!0),n.message.nb_tokens?(N(),H("p",ZVn,[e[52]||(e[52]=Oe("Tokens: ")),S("span",XVn,J(n.message.nb_tokens),1)])):Z("",!0),i.warmup_duration?(N(),H("p",JVn,[e[53]||(e[53]=Oe("Warmup: ")),S("span",eBn,J(i.warmup_duration),1)])):Z("",!0),i.time_spent?(N(),H("p",tBn,[e[54]||(e[54]=Oe("Gen time: ")),S("span",nBn,J(i.time_spent),1)])):Z("",!0),i.generation_rate?(N(),H("p",rBn,[e[55]||(e[55]=Oe("Rate: ")),S("span",iBn,J(i.generation_rate),1)])):Z("",!0)])])])])])}const Ik=ze(uVn,[["render",oBn],["__scopeId","data-v-8fd68363"]]);fe.defaults.baseURL="/";const sBn={data(){return{loading:!1,showMenu:!1,menuPosition:"below"}},props:{commandsList:Array,sendCommand:Function,showSettings: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(()=>{Le.replace(),this.calculatePosition()})},calculatePosition(){var r;const t=this.$refs.menuContainer.getBoundingClientRect(),e=((r=this.$refs.menu)==null?void 0:r.offsetHeight)||300,n=window.innerHeight-t.bottom,o=t.top;this.menuPosition=n>e||n>o?"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)}},aBn={key:0,title:"Loading..",class:"flex flex-row flex-grow justify-end"},lBn={key:1,class:"relative",ref:"menuContainer"},cBn=["title"],uBn=["data-feather"],dBn=["src"],TBn=["src"],fBn={class:"p-2 space-y-1 custom-scrollbar max-h-96 overflow-y-auto"},pBn={class:"flex items-center justify-between w-full px-2 py-1 hover:bg-blue-100 dark:hover:bg-gray-700 transition-colors duration-200 rounded-md"},hBn=["title","onClick"],mBn={key:0,class:"mr-2 flex-shrink-0"},gBn=["checked","id"],_Bn=["for"],QBn={key:0,class:"h-3 w-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},vBn={key:1,class:"mr-2 flex-shrink-0"},yBn=["data-feather"],bBn=["src"],EBn=["src"],SBn=["innerHTML"],xBn=["onClick"],LBn={key:0,class:"border-t border-gray-200 dark:border-gray-700"};function CBn(t,e,n,o,r,i){return r.loading?(N(),H("div",aBn)):(N(),H("div",lBn,[S("button",{onClick:e[0]||(e[0]=(...s)=>i.toggleMenu&&i.toggleMenu(...s)),class:Ee(["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(),H(Ae,{key:0},[i.iconParts.type==="feather"?(N(),H("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,uBn)):i.iconParts.type==="img"?(N(),H("img",{key:1,src:i.iconParts.value,class:"w-4 h-4"},null,8,dBn)):i.iconParts.type==="b64"?(N(),H("img",{key:2,src:"data:image/png;base64,"+i.iconParts.value,class:"w-4 h-4"},null,8,TBn)):Z("",!0)],64)):Z("",!0),(N(),H("svg",{class:Ee(["w-4 h-4 transform transition-transform",{"rotate-180":r.showMenu}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},e[1]||(e[1]=[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)]),2))],10,cBn),ne(Tr,{"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:je(()=>[r.showMenu?(N(),H("div",{key:0,ref:"menu",class:Ee(["absolute z-50 mt-2 w-72 origin-top-right rounded-lg bg-white dark:bg-gray-800 shadow-xl ring-1 ring-black ring-opacity-5 focus:outline-none",r.menuPosition==="above"?"bottom-full mb-2":"top-full"])},[S("div",fBn,[(N(!0),H(Ae,null,Ue(n.commandsList,(s,a)=>(N(),H(Ae,{key:a},[S("div",pBn,[S("button",{title:s.help,onClick:l=>i.selected(s),class:"flex items-center flex-1 min-w-0 text-sm text-gray-700 dark:text-gray-200"},[s.is_checked!==void 0?(N(),H("span",mBn,[S("input",{type:"checkbox",checked:s.is_checked,class:"opacity-0 absolute h-4 w-4",id:`checkbox-${a}`},null,8,gBn),S("label",{for:`checkbox-${a}`,class:Ee(["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(),H("svg",QBn,e[2]||(e[2]=[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)]))):Z("",!0)],10,_Bn)])):Z("",!0),s.icon?(N(),H("span",vBn,[s.icon.startsWith("feather:")?(N(),H("i",{key:0,"data-feather":s.icon.replace("feather:",""),class:"w-4 h-4"},null,8,yBn)):s.icon.startsWith("img:")?(N(),H("img",{key:1,src:s.icon.replace("img:",""),class:"w-4 h-4"},null,8,bBn)):s.icon.startsWith("b64:")?(N(),H("img",{key:2,src:`data:image/png;base64,${s.icon.replace("b64:","")}`,class:"w-4 h-4"},null,8,EBn)):Z("",!0)])):Z("",!0),S("span",{innerHTML:s.name,class:"truncate flex-1 text-left"},null,8,SBn)],8,hBn),n.showSettings!==void 0?(N(),H("button",{key:0,onClick:l=>n.showSettings(s),class:"text-green-500 hover:text-green-600 transition duration-300 ease-in-out flex-shrink-0 p-1",title:"Settings"},e[3]||(e[3]=[S("i",{"data-feather":"settings",class:"h-4 w-4"},null,-1)]),8,xBn)):Z("",!0)]),a0},isCommandsValid(){const t=this.$store.state.mountedPersArr[this.$store.state.config.active_personality_id];return t&&Array.isArray(t.commands)&&t.commands.length>0},dataLakeNames(){return(this.$store.state.config.datalakes||[]).map(e=>({name:e.alias,value:e.alias||"default_value",is_checked:e.mounted,icon:"",help:"mounts the datalake "+e.alias}))},functionCalls(){return(this.$store.state.config.mounted_function_calls||[]).map(e=>({name:e.name,value:e,dir:e.dir,is_checked:e.selected,icon:e.icon||"feather:zap",help:e.help||`Toggles the function call ${e.name}`}))}},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(){this.$store.commit("setLeftPanelCollapsed",!this.$store.state.leftPanelCollapsed)},async toggleRightPanel(){this.$store.commit("setRightPanelCollapsed",!this.$store.state.rightPanelCollapsed),this.$store.state.rightPanelCollapsed},handlePaste(t){const e=(t.clipboardData||t.originalEvent.clipboardData).items;let n=[];for(let o of e)if(o.type.startsWith("image/")){const r=o.getAsFile();if(r){const i=Date.now()+"_"+Math.random().toString(36).substr(2,9),s=r.type.split("/")[1]||"png",a=`pasted_image_${i}.${s}`,l=new File([r],a,{type:r.type});n.push(l)}}else if(o.kind==="file"){const r=o.getAsFile();r&&n.push(r)}n.length>0&&this.addFiles(n)},emitloaded(){this.$emit("loaded")},download_files(){fe.get("/download_files").then(t=>{const e=window.URL.createObjectURL(new Blob([t.data])),n=document.createElement("a");n.href=e;const o=t.headers["content-disposition"];let r="discussion_files.zip";if(o){const i=o.match(/filename="?(.+)"?/i);i&&i.length===2&&(r=i[1])}n.setAttribute("download",r),document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(e)}).catch(t=>{console.error("Error downloading files:",t),this.$store.state.toast.showToast("Error downloading files.",4,!1)})},async remove_file(t){try{const e=await fe.post("/remove_discussion_file",{client_id:this.$store.state.client_id,name:t.name},{headers:this.posts_headers});if(console.log("remove_discussion_file:"),console.log(e.data),e.data.status){const n=this.filesList.findIndex(o=>o.name===t.name);n!==-1&&(this.filesList.splice(n,1),this.isFileSentList.splice(n,1)),this.$store.state.toast.showToast("File removed.",4,!0)}else this.$store.state.toast.showToast(`Could not remove file: ${e.data.error||"Unknown reason"}`,4,!1)}catch(e){console.error("Error removing file:",e),this.$store.state.toast.showToast(`Error removing file: ${e.message}`,4,!1)}},clear_files(){fe.post("/clear_discussion_files_list",{client_id:this.$store.state.client_id},{headers:this.posts_headers}).then(t=>{t.data.state?(this.$store.state.toast.showToast("All files removed.",4,!0),this.filesList=[],this.isFileSentList=[]):this.$store.state.toast.showToast(`Files couldn't be cleared: ${t.data.error||"Unknown reason"}`,4,!1)}).catch(t=>{console.error("Error clearing files:",t),this.$store.state.toast.showToast(`Error clearing files: ${t.message}`,4,!1)})},send_file(t,e){console.log(`Starting send_file for ${t.name}`);const n=new FileReader,o=1024*1024;let r=0,i=0;const s=this.filesList.findIndex(l=>l===t);if(s===-1){console.error(`File ${t.name} not found in filesList during send_file start.`);return}n.onload=()=>{if(n.result){const l=n.result,c=r+l.byteLength>=t.size;console.log(`Sending chunk ${i} for ${t.name}, size: ${l.byteLength}, isLast: ${c}`),Ye.emit("send_file_chunk",{client_id:this.$store.state.client_id,filename:t.name,chunk:l,offset:r,isLastChunk:c,chunkIndex:i}),r+=l.byteLength,i++,c?(console.log(`File ${t.name} sent successfully`),s{console.error(`Error reading file ${t.name}:`,l),this.$store.state.toast.showToast(`Error reading ${t.name}. Upload failed.`,4,!1)};function a(){console.log(`Reading chunk starting at offset ${r} for ${t.name}`);const l=t.slice(r,r+o);n.readAsArrayBuffer(l)}console.log(`Initiating upload for ${t.name}`),a()},makeAnEmptyUserMessage(){this.$emit("createEmptyUserMessage",this.message),this.message=""},makeAnEmptyAIMessage(){this.$emit("createEmptyAIMessage")},toggleSendMenu(){this.isSendMenuVisible=!this.isSendMenuVisible},toggleHelpModal(){this.showHelpModal=!this.showHelpModal,this.$nextTick(()=>{Le.replace()})},updateRT(){this.is_rt?this.stopRTCom():this.startRTCom()},startRTCom(){if(this.$store.state.config.active_tts_service==="None"||!this.$store.state.config.active_tts_service||this.$store.state.config.active_stt_service==="None"){this.$store.state.toast.showToast("TTS and STT services must be configured for Real-Time mode.",4,!1);return}this.is_rt=!0,Ye.emit("start_bidirectional_audio_stream",{client_id:this.$store.state.client_id}),this.$store.state.toast.showToast("Real-time mode activated.",4,!0)},stopRTCom(){this.is_rt=!1,Ye.emit("stop_bidirectional_audio_stream",{client_id:this.$store.state.client_id}),this.$store.state.toast.showToast("Real-time mode deactivated.",4,!0)},startSpeechRecognition(){var t;if(!("SpeechRecognition"in window||"webkitSpeechRecognition"in window)){console.error("Speech recognition is not supported in this browser."),this.$store.state.toast.showToast("Speech recognition is not supported in this browser.",4,!1);return}if(this.isListeningToVoice){console.log("Speech recognition already active, stopping..."),this.recognition.stop(),clearTimeout(this.silenceTimer),this.isListeningToVoice=!1;return}try{const e=window.SpeechRecognition||window.webkitSpeechRecognition;this.recognition=new e,this.recognition.lang=((t=this.$store.state.config)==null?void 0:t.audio_in_language)||navigator.language,this.recognition.interimResults=!0,this.recognition.continuous=!1,this.recognitionError=!1,this.recognition.onstart=()=>{console.log("Speech recognition started."),this.isListeningToVoice=!0,this.resetSilenceTimer()},this.recognition.onresult=n=>{this.resetSilenceTimer();let o="",r="";for(let i=n.resultIndex;i{console.error("Speech recognition error:",n.error),this.recognitionError=!0;let o=n.error;n.error==="no-speech"?o="No speech detected. Please try again.":n.error==="audio-capture"?o="Microphone error. Check permissions and hardware.":n.error==="not-allowed"?o="Microphone access denied. Please allow access in browser settings.":o=`Speech recognition error: ${n.error}`,this.$store.state.toast.showToast(o,4,!1)},this.recognition.onend=()=>{console.log("Speech recognition ended."),this.isListeningToVoice=!1,clearTimeout(this.silenceTimer),this.message.trim()&&!this.recognitionError?this.submit():this.recognitionError&&this.message.trim()&&console.log("Recognition ended with error, message kept in input:",this.message)},this.recognition.start()}catch(e){console.error("Error initializing SpeechRecognition:",e),this.$store.state.toast.showToast("Could not start voice input.",4,!1),this.isListeningToVoice=!1}},resetSilenceTimer(){clearTimeout(this.silenceTimer),this.silenceTimer=setTimeout(()=>{this.isListeningToVoice&&this.recognition&&(console.log("Silence detected, stopping recognition."),this.recognition.stop())},this.silenceTimeoutDuration)},computedFileSize(t){return E2(t,{})},removeItem(t){this.remove_file(t)},sendMessageEvent(t,e="no_internet"){const n=t.trim();n!==""?this.$emit("messageSentEvent",n,e):this.$store.state.toast.showToast("Cannot send empty message.",4,!1)},sendCMDEvent(t){t&&t.value?this.$emit("sendCMDEvent",t):console.warn("Attempted to send invalid command:",t)},async mountDB(t){if(console.log("Toggling datalake mount for:",t),!t){console.error("Mount DB command name is missing.");return}const e=this.$store.state.config.datalakes.find(r=>r.alias===t),n=e?e.mounted:!1,o=this.dataLakeNames.findIndex(r=>r.name===t);o!==-1&&(this.dataLakeNames[o].is_checked=!n);try{await fe.post("/toggle_mount_rag_database",{client_id:this.$store.state.client_id,datalake_name:t},{headers:this.posts_headers}),await this.$store.dispatch("refreshConfig"),this.$store.state.toast.showToast(`Datalake ${t} ${n?"unmounted":"mounted"}.`,4,!0),console.log("Datalake toggle successful, config refreshed.")}catch(r){console.error("Error toggling datalake:",r),this.$store.state.toast.showToast(`Error toggling datalake ${t}.`,4,!1),o!==-1&&(this.dataLakeNames[o].is_checked=n)}},async showFunctionSettings(t){const e=t;if(!e||!e.dir||!e.name){console.error("Invalid function data for settings:",e);return}console.log("Showing settings for function:",e.name,"in category:",e.dir);const o=e.dir.replace(/\\/g,"/").split("/").filter(i=>i!==""),r=o.length>1?o[o.length-2]:"unknown";console.log("Determined category:",r);try{this.isLoading=!0;const i=await fe.post("/get_function_call_settings",{client_id:this.$store.state.client_id,category:r,name:e.name},{headers:this.posts_headers});this.isLoading=!1,i.data&&Object.keys(i.data).length>0?this.$store.state.universalForm.showForm(i.data,`Settings: ${e.name}`,"Save Changes","Cancel").then(s=>{console.log("Saving function call settings:",s),fe.post("/set_function_call_settings",{client_id:this.$store.state.client_id,category:r,name:e.name,settings:s},{headers:this.posts_headers}).then(a=>{var l;a.data&&a.data.status==="success"?this.$store.state.toast.showToast(`Settings for ${e.name} updated.`,4,!0):this.$store.state.toast.showToast(`Failed to save settings: ${((l=a.data)==null?void 0:l.error)||"Unknown error"}`,4,!1)}).catch(a=>{console.error("Error setting function call settings:",a),this.$store.state.toast.showToast(`Error saving settings: ${a.message}`,4,!1)})}).catch(()=>{console.log("Function settings form cancelled.")}):this.$store.state.toast.showToast(`${e.name} has no configurable settings.`,4,!0)}catch(i){this.isLoading=!1,console.error("Could not get function call settings:",i),this.$store.state.toast.showToast(`Error fetching settings for ${e.name}.`,4,!1)}},async toggleFunctionCall(t){const e=t;if(!e||!e.dir||!e.name){console.error("Invalid function data for toggle:",e);return}console.log("Toggling function call:",e.name);const n=e.is_checked,o=this.functionCalls.findIndex(r=>r.value===t);o!==-1&&(this.functionCalls[o].is_checked=!n);try{await fe.post("/toggle_function_call",{client_id:this.$store.state.client_id,name:e.name,dir:e.dir},{headers:this.posts_headers}),await this.$store.dispatch("refreshConfig"),this.$store.state.toast.showToast(`Function call ${e.name} ${n?"disabled":"enabled"}.`,4,!0),console.log("Function call toggle successful, config refreshed.")}catch(r){console.error("Error toggling function call:",r),this.$store.state.toast.showToast(`Error toggling ${e.name}.`,4,!1),o!==-1&&(this.functionCalls[o].is_checked=n)}},addWebLink(){this.isSendMenuVisible=!1,this.$emit("addWebLink")},add_file(){this.isSendMenuVisible=!1,this.$refs.fileDialog.click()},takePicture(){this.isSendMenuVisible=!1,Ye.emit("take_picture",{client_id:this.$store.state.client_id}),this.$store.state.toast.showToast("Requesting picture...",4,!0)},submitOnEnter(t){t.key==="Enter"&&!t.shiftKey&&!this.loading?(t.preventDefault(),t.repeat||(this.sendMessageEvent(this.message),this.message="")):t.key==="Enter"&&this.loading&&(t.preventDefault(),this.$store.state.toast.showToast("Please wait for the current response.",4,!1))},submit(){if(this.loading){this.$store.state.toast.showToast("Please wait for the current response.",4,!1);return}this.sendMessageEvent(this.message),this.message.trim()!==""&&(this.message="")},submitWithInternetSearch(){if(this.loading){this.$store.state.toast.showToast("Please wait for the current response.",4,!1);return}this.sendMessageEvent(this.message,"internet"),this.message.trim()!==""&&(this.message="")},stopGenerating(){this.$emit("stopGenerating")},addFiles(t){if(!t||t.length===0){console.warn("addFiles called with invalid or empty files:",t);return}console.log("Attempting to add files:",t);let e;try{e=Array.from(t)}catch(r){console.error("Error converting files to array:",r),this.$store.state.toast.showToast("Error processing selected files.",4,!1);return}console.log("Successfully converted to array:",e);let n=0;const o=()=>{if(n>=e.length){console.log("All files processed."),this.recalculateTotalSize();return}const r=e[n];if(!r||typeof r.name>"u"||typeof r.size>"u"){console.warn(`Skipping invalid file object at index ${n}:`,r),this.$store.state.toast.showToast("Skipped an invalid file entry.",4,!1),n++,o();return}this.filesList.some(i=>i.name===r.name&&i.size===r.size)?(console.log(`File ${r.name} already exists, skipping.`),this.$store.state.toast.showToast(`File ${r.name} already added.`,4,!1),n++,o()):(this.filesList.push(r),this.isFileSentList.push(!1),this.send_file(r,()=>{console.log(`Callback after send_file for ${r.name}.`),n++,o()}))};o()},recalculateTotalSize(){let t=0;this.filesList.forEach(e=>{typeof e.size=="number"&&(t+=e.size)}),this.totalSize=this.computedFileSize(t)}},watch:{filesList:{handler(t,e){this.recalculateTotalSize(),be(()=>{Le.replace()})},deep:!0},isFileSentList:{handler(t,e){be(()=>{Le.replace()})},deep:!0},loading(t){be(()=>{Le.replace()})},isSendMenuVisible(t){t&&be(()=>{Le.replace()})},"$store.state.config.active_personality_id":function(){be(()=>{Le.replace()})},"$store.state.config.datalakes":{handler(){be(()=>{Le.replace()})},deep:!0},"$store.state.config.mounted_function_calls":{handler(){be(()=>{Le.replace()})},deep:!0},"$store.state.config.think_first_mode":function(){},"$store.state.config.fun_mode":function(){},"$store.state.leftPanelCollapsed":function(){},"$store.state.rightPanelCollapsed":function(){},"$store.state.is_rt_on":function(t){this.is_rt=t}},mounted(){this.emitloaded(),be(()=>{Le.replace()}),console.log("Chatbar mounted"),Ye.on("rtcom_status_changed",t=>{this.$store.dispatch("fetchisRTOn"),console.log("rtcom_status_changed received:",t.status)}),Ye.on("picture_taken",t=>{if(console.log("Picture taken event received",t),t&&t.client_id===this.$store.state.client_id&&t.file){const e=t.file;this.filesList.some(n=>n.name===e.name)?console.log("Picture file already in list, skipping add."):(this.filesList.push(e),this.isFileSentList.push(!0),this.$store.state.toast.showToast("Picture added successfully!",4,!0))}else console.warn("Picture taken event received, but data is missing or not for this client.",t)}),this.$store.dispatch("fetchisRTOn").then(()=>{this.is_rt=this.$store.state.is_rt_on}),this.recalculateTotalSize()},beforeUnmount(){console.log("Chatbar beforeUnmount: Cleaning up..."),Ye.off("rtcom_status_changed"),Ye.off("picture_taken"),this.recognition&&this.isListeningToVoice&&(this.recognition.abort(),this.isListeningToVoice=!1),clearTimeout(this.silenceTimer)},activated(){console.log("Chatbar activated"),be(()=>{Le.replace()}),this.recalculateTotalSize(),this.$store.dispatch("fetchisRTOn").then(()=>{this.is_rt=this.$store.state.is_rt_on})},deactivated(){console.log("Chatbar deactivated"),this.recognition&&this.isListeningToVoice&&(this.recognition.abort(),this.isListeningToVoice=!1),clearTimeout(this.silenceTimer)}},RBn={class:"chatbox-color fixed bottom-4 left-1/2 transform -translate-x-1/2 w-11/12 max-w-3xl p-3 bg-opacity-90 backdrop-blur-md rounded-xl border border-blue-300 dark:border-blue-700 shadow-lg transition-all duration-300 ease-in-out z-50"},NBn={key:0,class:"mb-2 border-b border-blue-200 dark:border-blue-700 pb-2"},DBn={class:"flex items-center justify-between mb-1.5"},IBn=["title"],kBn={class:"flex items-center gap-1.5"},HBn={class:"text-xs text-blue-600 dark:text-blue-300",title:"Total file size and number of files"},PBn={class:"flex items-center gap-1.5 min-w-0"},$Bn={key:0,class:"animate-spin flex-shrink-0",title:"Uploading..."},VBn=["title"],BBn={class:"flex items-center gap-1.5 flex-shrink-0"},FBn=["title"],UBn=["onClick"],qBn={class:"flex flex-col gap-1.5"},GBn={class:"flex flex-row gap-1.5 w-full"},jBn={class:"relative flex-grow"},zBn=["disabled"],YBn={class:"absolute inset-y-0 right-0 flex items-center pr-1.5 space-x-1"},WBn={class:"flex items-center justify-between relative"},KBn=["title"],ZBn={class:"flex items-center gap-1"},XBn={class:"flex items-center gap-1"},JBn={class:"flex items-center gap-1"},eFn={class:"p-1.5 space-y-1"},tFn=["title"],nFn={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 backdrop-blur-sm p-4"},rFn={class:"card max-w-lg w-full relative overflow-y-auto max-h-[85vh] scrollbar p-4 md:p-6"};function iFn(t,e,n,o,r,i){const s=We("PersonalitiesCommands");return N(),H(Ae,null,[S("div",RBn,[r.filesList.length>0?(N(),H("div",NBn,[S("div",DBn,[S("button",{class:"svg-button p-1.5",title:r.showfilesList?"Hide file list":"Show file list",onClick:e[0]||(e[0]=oe(a=>r.showfilesList=!r.showfilesList,["stop"]))},e[25]||(e[25]=[S("i",{"data-feather":"list",class:"w-4 h-4"},null,-1)]),8,IBn),S("div",kBn,[S("span",HBn,J(r.totalSize)+" ("+J(r.filesList.length)+") ",1),S("button",{onClick:e[1]||(e[1]=(...a)=>i.clear_files&&i.clear_files(...a)),class:"svg-button p-1 hover:text-red-500 dark:hover:text-red-400",title:"Clear all files"},e[26]||(e[26]=[S("i",{"data-feather":"trash",class:"w-3.5 h-3.5"},null,-1)])),S("button",{onClick:e[2]||(e[2]=(...a)=>i.download_files&&i.download_files(...a)),class:"svg-button p-1 hover:text-blue-500 dark:hover:text-blue-400",title:"Download all files"},e[27]||(e[27]=[S("i",{"data-feather":"download-cloud",class:"w-3.5 h-3.5"},null,-1)]))])]),Ce(ne(O2,{name:"list",tag:"div",class:"max-h-32 overflow-y-auto rounded-md bg-blue-100 dark:bg-blue-900 divide-y divide-blue-200 dark:divide-blue-700 scrollbar"},{default:je(()=>[(N(!0),H(Ae,null,Ue(r.filesList,(a,l)=>(N(),H("div",{key:l+"-"+a.name,class:"flex items-center justify-between p-1.5 group hover:bg-blue-200 dark:hover:bg-blue-800 transition-colors duration-150"},[S("div",PBn,[r.isFileSentList[l]?Z("",!0):(N(),H("div",$Bn,e[28]||(e[28]=[S("i",{"data-feather":"loader",class:"w-3.5 h-3.5 text-blue-500 dark:text-blue-400"},null,-1)]))),e[29]||(e[29]=S("i",{"data-feather":"file",class:"w-3.5 h-3.5 flex-shrink-0 text-blue-600 dark:text-blue-300",title:"File"},null,-1)),S("span",{class:Ee(["truncate text-xs",r.isFileSentList[l]?"text-green-600 dark:text-green-400":"text-blue-700 dark:text-blue-200"]),title:a.name},J(a.name),11,VBn)]),S("div",BBn,[S("span",{class:"text-xs text-blue-500 dark:text-blue-400",title:i.computedFileSize(a.size)},J(i.computedFileSize(a.size)),9,FBn),S("button",{onClick:c=>i.removeItem(a),class:"svg-button p-0.5 opacity-0 group-hover:opacity-100 hover:text-red-500 dark:hover:text-red-400 transition-all duration-150",title:"Remove file"},e[30]||(e[30]=[S("i",{"data-feather":"x",class:"w-3.5 h-3.5"},null,-1)]),8,UBn)])]))),128))]),_:1},512),[[wn,r.showfilesList]])])):Z("",!0),S("div",qBn,[S("div",GBn,[S("div",jBn,[Ce(S("textarea",{id:"chat",disabled:n.loading,"onUpdate:modelValue":e[3]||(e[3]=a=>r.message=a),onPaste:e[4]||(e[4]=(...a)=>i.handlePaste&&i.handlePaste(...a)),onKeydown:e[5]||(e[5]=Qn(oe(a=>i.submitOnEnter(a),["exact"]),["enter"])),rows:"1",class:"input w-full p-2.5 pr-20 text-sm rounded-lg focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-400 border-blue-300 dark:border-blue-600 resize-y min-h-[2.75rem] max-h-28 overflow-auto transition-colors scrollbar text-blue-900 dark:text-blue-100 placeholder-blue-400 dark:placeholder-blue-500",placeholder:"Write your message...",title:"Enter your message here"},null,40,zBn),[[Je,r.message]]),S("div",YBn,[n.loading?(N(),H("button",{key:0,onClick:e[6]||(e[6]=(...a)=>i.stopGenerating&&i.stopGenerating(...a)),class:"btn btn-sm bg-red-500 text-white hover:bg-red-600 focus:ring-red-300 dark:focus:ring-red-600 transform hover:scale-105 active:scale-95 transition-all duration-200 ease-in-out shadow-md hover:shadow-lg animate-pulse p-1.5",title:"Stop generating","aria-label":"Stop generation process"},e[31]||(e[31]=[S("i",{"data-feather":"stop-circle",class:"w-4 h-4 animate-spin-slow"},null,-1),S("span",{class:"sr-only"},"Stop",-1)]))):(N(),H(Ae,{key:1},[S("button",{onClick:e[7]||(e[7]=(...a)=>i.submit&&i.submit(...a)),class:"svg-button p-1.5",title:"Send message"},e[32]||(e[32]=[S("i",{"data-feather":"send",class:"w-4 h-4"},null,-1)])),S("button",{onClick:e[8]||(e[8]=(...a)=>i.submitWithInternetSearch&&i.submitWithInternetSearch(...a)),class:"svg-button p-1.5",title:"Send with internet search"},e[33]||(e[33]=[S("i",{"data-feather":"globe",class:"w-4 h-4"},null,-1)]))],64))])])]),S("div",WBn,[S("button",{onClick:e[9]||(e[9]=(...a)=>i.toggleLeftPanel&&i.toggleLeftPanel(...a)),class:Ee(["svg-button p-1.5",t.$store.state.leftPanelCollapsed?"":"bg-blue-200 dark:bg-blue-700"]),title:t.$store.state.leftPanelCollapsed?"Expand Left Panel":"Collapse Left Panel"},e[34]||(e[34]=[tr('',1)]),10,KBn),S("div",ZBn,[i.isCommandsValid?(N(),it(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",size:"small"},null,8,["commandsList","sendCommand","on-show-toast-message"])):Z("",!0),i.isdataLakeNamesValid?(N(),it(s,{key:1,help:"Datalakes",icon:"feather:book",commandsList:i.dataLakeNames,sendCommand:i.mountDB,"on-show-toast-message":n.onShowToastMessage,ref:"databasesList",size:"small"},null,8,["commandsList","sendCommand","on-show-toast-message"])):Z("",!0),t.$store.state.config.mounted_function_calls.length>0?(N(),it(s,{key:2,icon:"feather:zap",help:"Function calls (WIP)",commandsList:i.functionCalls,sendCommand:i.toggleFunctionCall,showSettings:i.showFunctionSettings,"on-show-toast-message":n.onShowToastMessage,ref:"functioncalls",size:"small"},null,8,["commandsList","sendCommand","showSettings","on-show-toast-message"])):Z("",!0)]),S("div",XBn,[S("button",{onClick:e[10]||(e[10]=(...a)=>i.toggleThinkFirstMode&&i.toggleThinkFirstMode(...a)),class:Ee(["svg-button p-1.5",{"text-blue-600 dark:text-blue-400 bg-blue-200 dark:bg-blue-700":t.$store.state.config.think_first_mode}]),title:"Toggle Think First Mode"},e[35]||(e[35]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[S("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"}),S("path",{d:"M9 18h6"}),Oe(),S("path",{d:"M10 22h4"})],-1)]),2),S("button",{onClick:e[11]||(e[11]=(...a)=>i.toggleFunMode&&i.toggleFunMode(...a)),class:Ee(["svg-button p-1.5",{"text-blue-600 dark:text-blue-400 bg-blue-200 dark:bg-blue-700":t.$store.state.config.fun_mode}]),title:"Toggle Fun Mode"},e[36]||(e[36]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[S("circle",{cx:"12",cy:"12",r:"10"}),Oe(),S("path",{d:"M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01"})],-1)]),2)]),S("div",JBn,[S("button",{onClick:e[12]||(e[12]=(...a)=>i.startSpeechRecognition&&i.startSpeechRecognition(...a)),class:Ee(["svg-button p-1.5",{"text-red-500 dark:text-red-400 animate-pulse":r.isListeningToVoice}]),title:"Voice input"},e[37]||(e[37]=[S("i",{"data-feather":"mic",class:"w-4 h-4"},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(),H("button",{key:0,onClick:e[13]||(e[13]=(...a)=>i.updateRT&&i.updateRT(...a)),class:Ee(["btn btn-sm p-1",r.is_rt?"bg-red-500 hover:bg-red-600 text-white":"bg-green-500 hover:bg-green-600 text-white"]),title:"Toggle real-time audio mode"},e[38]||(e[38]=[S("span",{class:"text-xs font-bold"},"RT",-1)]),2)):Z("",!0),S("button",{onClick:e[14]||(e[14]=(...a)=>i.toggleSendMenu&&i.toggleSendMenu(...a)),class:"svg-button p-1.5",title:"More actions (Add file, take picture, etc.)"},e[39]||(e[39]=[S("i",{"data-feather":"plus-circle",class:"w-4 h-4"},null,-1)])),Ce(S("div",{class:"absolute right-0 bottom-full mb-1 w-44 bg-blue-100 dark:bg-blue-800 rounded-md shadow-lg border border-blue-300 dark:border-blue-600 z-10",onMouseleave:e[18]||(e[18]=a=>r.isSendMenuVisible=!1)},[S("div",eFn,[S("button",{onClick:e[15]||(e[15]=(...a)=>i.add_file&&i.add_file(...a)),class:"w-full p-1.5 flex items-center gap-1.5 rounded-md hover:bg-blue-200 dark:hover:bg-blue-700 transition-colors text-blue-700 dark:text-blue-200",title:"Add a file"},e[40]||(e[40]=[S("i",{"data-feather":"file-plus",class:"w-3.5 h-3.5"},null,-1),S("span",{class:"text-xs"},"Add File",-1)])),S("button",{onClick:e[16]||(e[16]=(...a)=>i.takePicture&&i.takePicture(...a)),class:"w-full p-1.5 flex items-center gap-1.5 rounded-md hover:bg-blue-200 dark:hover:bg-blue-700 transition-colors text-blue-700 dark:text-blue-200",title:"Take a picture"},e[41]||(e[41]=[S("i",{"data-feather":"camera",class:"w-3.5 h-3.5"},null,-1),S("span",{class:"text-xs"},"Take Picture",-1)])),S("button",{onClick:e[17]||(e[17]=(...a)=>i.addWebLink&&i.addWebLink(...a)),class:"w-full p-1.5 flex items-center gap-1.5 rounded-md hover:bg-blue-200 dark:hover:bg-blue-700 transition-colors text-blue-700 dark:text-blue-200",title:"Add a web link"},e[42]||(e[42]=[S("i",{"data-feather":"link",class:"w-3.5 h-3.5"},null,-1),S("span",{class:"text-xs"},"Add Web Link",-1)]))])],544),[[wn,r.isSendMenuVisible]]),S("button",{onClick:e[19]||(e[19]=(...a)=>i.makeAnEmptyUserMessage&&i.makeAnEmptyUserMessage(...a)),class:"svg-button p-1.5",title:"Insert an empty user message"},e[43]||(e[43]=[S("i",{"data-feather":"message-circle",class:"w-4 h-4"},null,-1)])),S("button",{onClick:e[20]||(e[20]=(...a)=>i.makeAnEmptyAIMessage&&i.makeAnEmptyAIMessage(...a)),class:"svg-button p-1.5 text-red-400 hover:text-red-500 dark:hover:text-red-400",title:"Insert an empty AI message"},e[44]||(e[44]=[S("i",{"data-feather":"cpu",class:"w-4 h-4"},null,-1)])),S("button",{onClick:e[21]||(e[21]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"svg-button p-1.5",title:"Show Help"},e[45]||(e[45]=[S("i",{"data-feather":"info",class:"w-4 h-4"},null,-1)]))]),S("button",{onClick:e[22]||(e[22]=(...a)=>i.toggleRightPanel&&i.toggleRightPanel(...a)),class:Ee(["svg-button p-1.5",t.$store.state.rightPanelCollapsed?"":"bg-blue-200 dark:bg-blue-700"]),title:t.$store.state.rightPanelCollapsed?"Expand Right Panel":"Collapse Right Panel"},e[46]||(e[46]=[tr('',1)]),10,tFn)])])]),S("input",{type:"file",ref:"fileDialog",onChange:e[23]||(e[23]=a=>i.addFiles(a.target.files)),multiple:"",class:"hidden"},null,544),r.showHelpModal?(N(),H("div",nFn,[S("div",rFn,[S("button",{onClick:e[24]||(e[24]=(...a)=>i.toggleHelpModal&&i.toggleHelpModal(...a)),class:"svg-button absolute top-2 right-2 z-10",title:"Close tutorial"},e[47]||(e[47]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)])),e[48]||(e[48]=tr('

Chatbar Help

Overview of the chat controls:

Sends your message to the AI.
Sends your message with internet search.
Toggles the left panel visibility.
Toggles the right panel visibility.
Toggle 'Think First' mode (AI processes before replying).
Toggle 'Fun' mode (adds playful elements).
Activates voice input for your message.
Toggles real-time audio conversation mode.
Shows more actions (Add File, Picture, Link).
Inserts an empty user message bubble.
Inserts an empty AI message bubble.
Shows this help information modal.
',3))])])):Z("",!0)],64)}const kk=ze(MBn,[["render",iFn],["__scopeId","data-v-95d5df8b"]]),oFn={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}`:Wi}},methods:{async fetchLatestNews(){try{const t=await fe.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 fe.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 fe.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 fe.get("/get_last_viewed_video_url")).data;console.log("storedVideoUrl"),console.log(e),this.videoUrl!==e&&(this.showVideoButton=!0)}},mounted(){this.fetchLatestNews(),this.fetchVideoUrl()}},sFn={class:"flex flex-col items-center justify-center w-full h-full min-h-screen p-8"},aFn={class:"text-center max-w-4xl"},lFn={class:"flex items-center justify-center gap-8 mb-12"},cFn={class:"relative w-24 h-24"},uFn=["src"],dFn={key:0,class:"flex flex-col items-start"},TFn={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"},fFn={key:1,class:"flex flex-col items-start"},pFn={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"},hFn={key:0,class:"space-y-8 animate-fade-in-up"},mFn=["innerHTML"],gFn={key:1,class:"space-y-8 animate-fade-in-up"},_Fn={class:"text-4xl font-semibold"},QFn={class:"text-xl max-w-3xl mx-auto"},vFn={key:0,class:"mt-12 p-6 rounded-lg shadow-md animate-fade-in-up overflow-y-scroll scrollbar-thin"},yFn=["innerHTML"],bFn={key:2,class:"mt-6 text-red-500"},EFn={key:0,class:"floating-button-container"},SFn=["href"],xFn=["src","alt"];function LFn(t,e,n,o,r,i){return N(),H("div",sFn,[S("div",aFn,[S("div",lFn,[S("div",cFn,[S("img",{src:i.logoSrc,alt:"LoLLMS Logo",class:"w-24 h-24 rounded-full absolute animate-rolling-ball"},null,8,uFn)]),t.$store.state.config!=null&&t.$store.state.config.app_custom_name!=null&&t.$store.state.config.app_custom_name!=""?(N(),H("div",dFn,[S("h1",TFn,J(t.$store.state.config.app_custom_name),1)])):(N(),H("div",fFn,[S("h1",pFn,J(t.$store.state.theme_vars.lollms_title),1),e[1]||(e[1]=S("p",{class:"text-2xl italic mt-2"}," Lord of Large Language And Multimodal Systems ",-1))]))]),t.$store.state.config!=null&&t.$store.state.config.app_custom_name!=null&&t.$store.state.config.app_custom_name!=""?(N(),H("div",hFn,[S("p",{innerHTML:t.$store.state.config.app_custom_welcome_message},null,8,mFn)])):(N(),H("div",gFn,[S("h2",_Fn,J(t.$store.state.theme_vars.lollms_welcome_short_message),1),S("p",QFn,J(t.$store.state.theme_vars.lollms_welcome_message),1),r.latestNews?(N(),H("div",vFn,[e[2]||(e[2]=S("h3",null,"Latest LoLLMS News",-1)),S("p",{innerHTML:r.latestNews},null,8,yFn)])):Z("",!0)])),r.error?(N(),H("div",bFn,J(r.error),1)):Z("",!0)]),r.showVideoButton?(N(),H("div",EFn,[S("a",{href:r.videoUrl,target:"_blank",class:"floating-button",onClick:e[0]||(e[0]=(...s)=>i.handleClick&&i.handleClick(...s))},[e[3]||(e[3]=S("span",{class:"tooltip"},"New ParisNeo Video!",-1)),S("img",{src:i.getImageForVideoType,alt:"New "+r.videoType,class:"w-full h-full object-cover"},null,8,xFn)],8,SFn)])):Z("",!0)])}const Hk=ze(oFn,[["render",LFn],["__scopeId","data-v-861ce6fc"]]);var CFn=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}(),A0=function(){return A0=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&this.fishX+this.fishWidth>t?(this.dx=-Math.abs(this.dx),this.fishScaleX=-1,this.dy=(Math.random()-.5)*2*(this.speed/2),this.fishX=t-this.fishWidth-1):this.dx<0&&this.fishX<0&&(this.dx=Math.abs(this.dx),this.fishScaleX=1,this.dy=(Math.random()-.5)*2*(this.speed/2),this.fishX=1),this.dy>0&&this.fishY+this.fishHeight>e?(this.dy=-Math.abs(this.dy),this.dx+=(Math.random()-.5)*.5,this.fishY=e-this.fishHeight-1):this.dy<0&&this.fishY<0&&(this.dy=Math.abs(this.dy),this.dx+=(Math.random()-.5)*.5,this.fishY=1);const n=Math.sqrt(this.dx*this.dx+this.dy*this.dy),o=1.5;if(n>o){const r=o/n;this.dx*=r,this.dy*=r}else n<.3&&(this.dx=(this.dx||Math.random()-.5)*1.5,this.dy=(this.dy||Math.random()-.5)*1.5);this.fishScaleX=this.dx>=0?1:-1,this.animationFrameId=requestAnimationFrame(this.updateFishPosition)},catchFish(){this.isCaught||(console.log("🎣 April Fools! Fish caught! (lollms webui)"),this.isCaught=!0,this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.messageStyle={position:"absolute",left:`${this.fishX+this.fishWidth/2}px`,top:`${this.fishY+this.fishHeight/2}px`,transform:"translate(-50%, -50%) scale(1)",color:"#FFD700",fontSize:"26px",fontWeight:"bold",textShadow:"1px 1px 3px rgba(0,0,0,0.8)",zIndex:OFn+1,transition:"opacity 0.5s ease-out 1.5s, transform 0.5s ease-out 1.5s",opacity:1,pointerEvents:"none"},this.showCaughtMessage=!0,this.$nextTick(()=>{setTimeout(()=>{this.showCaughtMessage&&(this.messageStyle={...this.messageStyle,opacity:0,transform:"translate(-50%, -50%) scale(0.1)"})},50)}),setTimeout(()=>{this.showCaughtMessage=!1,setTimeout(()=>{this._isMounted&&this.resetFish()},500)},2e3))},resetFish(){var i;this.isCaught=!1,this.showCaughtMessage=!1;const t=Math.floor(Math.random()*4),e=window.innerWidth,n=window.innerHeight,o=((i=this.$refs.fishElement)==null?void 0:i.offsetWidth)||this.fishWidth,r=this.fishHeight;switch(t){case 0:this.fishX=Math.random()*(e-o),this.fishY=-r*1.1,this.dy=Math.abs(Math.random()*.6+.7),this.dx=(Math.random()-.5)*1.5;break;case 1:this.fishX=e+o*.1,this.fishY=Math.random()*(n-r),this.dx=-Math.abs(Math.random()*.6+.7),this.dy=(Math.random()-.5)*1.5;break;case 2:this.fishX=Math.random()*(e-o),this.fishY=n+r*.1,this.dy=-Math.abs(Math.random()*.6+.7),this.dx=(Math.random()-.5)*1.5;break;case 3:this.fishX=-o*1.1,this.fishY=Math.random()*(n-r),this.dx=Math.abs(Math.random()*.6+.7),this.dy=(Math.random()-.5)*1.5;break}this.fishScaleX=this.dx>=0?1:-1,this.$nextTick(()=>{this._isMounted&&(this.updateFishDimensions(),this.animationFrameId&&cancelAnimationFrame(this.animationFrameId),this.animationFrameId=requestAnimationFrame(this.updateFishPosition))})},updateFishDimensions(){const t=this.$refs.fishElement;t&&t.offsetWidth>0?this.fishWidth=t.offsetWidth:this._isMounted&&this.isCaught}},mounted(){this._isMounted=!0,console.log("🐠 April Fools' Fish component mounted! (lollms webui) - Should roam freely!"),this.$nextTick(()=>{this.updateFishDimensions(),this.resetFish()})},beforeUnmount(){this._isMounted=!1,console.log("🐟 April Fools' Fish component unmounting."),this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null)}},RFn={class:"fish-animation-container"},NFn=["src"];function DFn(t,e,n,o,r,i){return N(),H("div",RFn,[r.isCaught?Z("",!0):(N(),H("img",{key:0,ref:"fishElement",src:r.fishGif,alt:"Animated swimming fish - April Fools!",class:"swimming-fish",style:Jt(i.fishStyle),onClick:e[0]||(e[0]=(...s)=>i.catchFish&&i.catchFish(...s)),title:"Try to catch me! ;)"},null,12,NFn)),r.showCaughtMessage?(N(),H("div",{key:1,class:"caught-message",style:Jt(r.messageStyle)}," April Fools! 🎉 Gotcha! ",4)):Z("",!0)])}const IFn=ze(MFn,[["render",DFn],["__scopeId","data-v-a6ab94aa"]]),kFn={props:{personality:{type:Object,required:!0},config:{type:Object,required:!0}},data(){return{show:!1,title:"Add AI Agent",iconUrl:"",file:null,tempConfig:{}}},methods:{showForm(){this.showDialog=!0},hideForm(){this.showDialog=!1},selectIcon(t){t.target.files&&(this.file=t.target.files[0],this.iconUrl=URL.createObjectURL(this.file))},showPanel(){this.show=!0},hide(){this.show=!1},submitForm(){fe.post("/set_personality_config",{client_id:this.$store.state.client_id,category:this.personality.category,name:this.personality.folder,config:this.config}).then(t=>{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)})}}},HFn={key:0,class:"fixed top-0 left-0 right-0 bottom-0 flex items-center justify-center bg-black bg-opacity-50 z-20"},PFn={class:"relative w-full max-h-full bg-bg-light dark:bg-bg-dark"},$Fn={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"},VFn={class:"justify-center text-center items-center w-full bg-bg-light dark:bg-bg-dark"},BFn={class:"w-full flex flex-row mt-4 text-center justify-center"},FFn={class:"w-full max-h-full container bg-bg-light dark:bg-bg-dark"},UFn={class:"mb-4 w-full"},qFn={class:"w-full bg-bg-light dark:bg-bg-dark"};function GFn(t,e,n,o,r,i){return r.show?(N(),H("div",HFn,[S("div",PFn,[S("div",$Fn,[S("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]=[S("svg",{"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[S("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),S("span",{class:"sr-only"},"Close modal",-1)])),S("div",VFn,[S("div",BFn,[S("button",{type:"submit",onClick:e[1]||(e[1]=oe((...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 "),S("button",{onClick:e[2]||(e[2]=oe(s=>i.hide(),["prevent"])),class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"}," Close ")]),S("div",FFn,[S("form",UFn,[S("table",qFn,[S("tr",null,[e[18]||(e[18]=S("td",null,[S("label",{for:"personalityConditioning"},"Personality Conditioning:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.personality_conditioning]])])]),S("tr",null,[e[19]||(e[19]=S("td",null,[S("label",{for:"userMessagePrefix"},"User Message Prefix:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.user_message_prefix]])])]),S("tr",null,[e[20]||(e[20]=S("td",null,[S("label",{for:"aiMessagePrefix"},"AI Message Prefix:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.ai_message_prefix]])])]),S("tr",null,[e[21]||(e[21]=S("td",null,[S("label",{for:"linkText"},"Link Text:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.link_text]])])]),S("tr",null,[e[22]||(e[22]=S("td",null,[S("label",{for:"welcomeMessage"},"Welcome Message:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.welcome_message]])])]),S("tr",null,[e[23]||(e[23]=S("td",null,[S("label",{for:"modelTemperature"},"Model Temperature:")],-1)),S("td",null,[Ce(S("input",{type:"number",id:"modelTemperature","onUpdate:modelValue":e[8]||(e[8]=s=>n.config.model_temperature=s)},null,512),[[Je,n.config.model_temperature]])])]),S("tr",null,[e[24]||(e[24]=S("td",null,[S("label",{for:"modelTopK"},"Model Top K:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_top_k]])])]),S("tr",null,[e[25]||(e[25]=S("td",null,[S("label",{for:"modelTopP"},"Model Top P:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_top_p]])])]),S("tr",null,[e[26]||(e[26]=S("td",null,[S("label",{for:"modelRepeatPenalty"},"Model Repeat Penalty:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_repeat_penalty]])])]),S("tr",null,[e[27]||(e[27]=S("td",null,[S("label",{for:"modelRepeatLastN"},"Model Repeat Last N:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.model_repeat_last_n]])])]),S("tr",null,[e[28]||(e[28]=S("td",null,[S("label",{for:"recommendedBinding"},"Recommended Binding:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.recommended_binding]])])]),S("tr",null,[e[29]||(e[29]=S("td",null,[S("label",{for:"recommendedModel"},"Recommended Model:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.recommended_model]])])]),S("tr",null,[e[30]||(e[30]=S("td",null,[S("label",{class:"dark:bg-black dark:text-primary w-full",for:"dependencies"},"Dependencies:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.dependencies]])])]),S("tr",null,[e[31]||(e[31]=S("td",null,[S("label",{for:"antiPrompts"},"Anti Prompts:")],-1)),S("td",null,[Ce(S("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),[[Je,n.config.anti_prompts]])])])])])])])])])])):Z("",!0)}const Wk=ze(kFn,[["render",GFn]]),jFn={data(){return{showPopup:!1,webpageUrl:"https://lollms.com/"}},methods:{show(){this.showPopup=!0},hide(){this.showPopup=!1},save_configuration(){fe.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)})}}},zFn={key:0,class:"fixed inset-0 flex items-center justify-center z-50 bg-black bg-opacity-50"},YFn={class:"relative panels-color p-6 rounded-lg shadow-xl max-w-3xl w-full mx-4"},WFn=["src"],KFn={class:"flex items-center mt-4"};function ZFn(t,e,n,o,r,i){return N(),it(Tr,{name:"fade"},{default:je(()=>[r.showPopup?(N(),H("div",zFn,[S("div",YFn,[S("button",{onClick:e[0]||(e[0]=(...s)=>i.hide&&i.hide(...s)),class:"absolute top-2 right-2 svg-button z-10",title:"Close"},e[3]||(e[3]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])),S("iframe",{src:r.webpageUrl,class:"w-full h-[70vh] rounded-md border border-blue-300 dark:border-blue-600 bg-white dark:bg-blue-900"},null,8,WFn),S("div",KFn,[Ce(S("input",{type:"checkbox",id:"startup",class:"rounded border-blue-300 dark:border-blue-600 text-blue-600 focus:ring-blue-500 dark:bg-blue-700 dark:focus:ring-offset-blue-800","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),[[Ql,this.$store.state.config.show_news_panel]]),e[4]||(e[4]=S("label",{for:"startup",class:"ml-2 label !mb-0 cursor-pointer"},"Show at startup",-1))])])])):Z("",!0)]),_:1})}const Kk=ze(jFn,[["render",ZFn],["__scopeId","data-v-425d1bc4"]]),XFn="/assets/fastapi-BQj-rjUJ.png",JFn="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",eUn="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",tUn="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",nUn="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",rUn="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",iUn="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",oUn="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",sUn="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",aUn="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",lUn="/assets/robot-CQPaMbxU.svg",cUn="/";fe.defaults.baseURL="/";const uUn={name:"MountedPersonalities",props:{onShowPersList:Function,onReady:Function},components:{Toast:bp,UniversalForm:ZI},data(){return{bUrl:cUn,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 fe.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(r=>r===t.full_path),o={client_id:this.$store.state.client_id,id:n};e=await fe.post("/select_personality",o),console.log("Generating message from ",e.data.status),Ye.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 fe.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{fe.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=>{console.log("Received"),console.log(n);try{fe.post("/set_active_personality_settings",n).then(o=>{o&&o.data?(console.log("personality set with new settings",o.data),this.$store.state.toast.showToast("Personality settings updated successfully!",4,!0)):this.$store.state.toast.showToast(`Did not get Personality settings responses. `+o,4,!1)})}catch(o){this.$store.state.toast.showToast(`Did not get Personality settings responses. - Endpoint error: `+o.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(be(()=>{Le.replace()});this.$store.state.ready===!1;)await new Promise(t=>setTimeout(t,100));this.onReady()},async api_get_req(t){try{const e=await fe.get("/"+t);if(e)return e.data}catch(e){console.log(e.message,"api_get_req - mountedPersonalities");return}},personalityImgPlacehodler(t){t.target.src=t0}}},uUn={class:"relative group/item"},dUn=["src","alt"],TUn={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"},fUn={class:"p-1 bg-gray-500 rounded-full text-white hover:bg-gray-600 focus:outline-none ml-1",title:"Show more"},pUn={class:"text-xs font-bold"};function hUn(t,e,n,o,r,i){const s=We("UniversalForm");return N(),H(Ae,null,[S("div",uUn,[S("button",{onClick:e[1]||(e[1]=oe((...a)=>i.onSettingsPersonality&&i.onSettingsPersonality(...a),["prevent"])),class:Ee(["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}])},[S("img",{src:i.mountedPers.avatar,onError:e[0]||(e[0]=(...a)=>i.personalityImgPlacehodler&&i.personalityImgPlacehodler(...a)),alt:i.mountedPers.name,class:Ee(["w-full h-full object-cover",{"border-2 border-secondary":t.isActive}])},null,42,dUn)],2),S("div",TUn,[S("button",{onClick:e[2]||(e[2]=oe(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]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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)])),S("button",{onClick:e[3]||(e[3]=oe(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]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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)])),S("button",fUn,[S("span",pUn,"+"+J(i.mountedPersArr.length-1),1)])])]),ne(s,{ref:"universalForm",class:"z-50"},null,512)],64)}const Zk=ze(cUn,[["render",hUn],["__scopeId","data-v-70cef6eb"]]),mUn={name:"ChangelogPopup",data(){return{showChangelogPopup:!1,changelogContent:"",currentVersion:"0.0.0"}},computed:{parsedChangelogContent(){const t={breaks:!0,gfm:!0},e=Et(this.changelogContent,t);return Rc.sanitize(e)}},async mounted(){await this.checkChangelogUpdate()},methods:{async fetchVersion(){try{const t=await fe.get("/get_lollms_webui_version");if(t&&t.data){const{version_main:e,version_secondary:n,version_type:o,version_codename:r}=t.data;let i=`${e}.${n}`;return o&&(i+=` ${o}`),r&&(i+=` (${r})`),this.$store.commit("setVersion",i),this.currentVersion=i,i}}catch(t){console.error("Error fetching LoLLMs version:",t)}return this.$store.state.version||"0.0.0"},async checkChangelogUpdate(){try{const t=await fe.get("/get_changelog");this.changelogContent=t.data||"*No changelog content found.*";const e=await this.fetchVersion(),o=(await fe.get("/get_last_viewed_changelog_version")).data,r=i=>{i&&i.app_show_changelogs&&e!==o&&e!=="0.0.0"&&(this.showChangelogPopup=!0)};if(this.$store.state.config)r(this.$store.state.config);else{const i=this.$watch("$store.state.config",s=>{s&&(r(s),i())},{immediate:!1})}}catch(t){console.error("Error checking changelog:",t)}},async handleUnderstand(){try{await fe.post("/set_last_viewed_changelog_version",{client_id:this.$store.state.client_id,version:this.currentVersion}),this.closePopup()}catch(t){console.error("Error setting last viewed changelog version:",t),this.closePopup()}},closePopup(){this.showChangelogPopup=!1}}},gUn={class:"flex justify-between items-center p-4 px-6 border-b border-blue-300 dark:border-blue-600 flex-shrink-0 unicolor-panels-color"},_Un={class:"p-6 md:p-8 flex-grow overflow-y-auto scrollbar text-blue-900 dark:text-blue-200"},QUn=["innerHTML"],vUn={class:"flex justify-end p-4 px-6 border-t border-blue-300 dark:border-blue-600 flex-shrink-0 unicolor-panels-color"};function yUn(t,e,n,o,r,i){return N(),it(Tr,{name:"fade"},{default:je(()=>[r.showChangelogPopup?(N(),H("div",{key:0,class:Ee(["fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-[100] transition-opacity duration-300",{"opacity-0 pointer-events-none":!r.showChangelogPopup,"opacity-100":r.showChangelogPopup}])},[S("div",{class:Ee(["panels-color rounded-lg w-[95%] max-w-4xl max-h-[90vh] flex flex-col shadow-2xl overflow-hidden transform transition-all duration-300 ease-out border border-blue-300 dark:border-blue-600",{"opacity-0 scale-95":!r.showChangelogPopup,"opacity-100 scale-100":r.showChangelogPopup}])},[S("div",gUn,[e[3]||(e[3]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100"},"What's New",-1)),S("button",{class:"svg-button",onClick:e[0]||(e[0]=(...s)=>i.closePopup&&i.closePopup(...s)),"aria-label":"Close Changelog"},e[2]||(e[2]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))]),S("div",_Un,[S("div",{class:"prose prose-blue dark:prose-invert max-w-none",innerHTML:i.parsedChangelogContent},null,8,QUn)]),S("div",vUn,[S("button",{class:"btn btn-primary",onClick:e[1]||(e[1]=(...s)=>i.handleUnderstand&&i.handleUnderstand(...s))}," Got it ")])],2)],2)):Z("",!0)]),_:1})}const Xk=ze(mUn,[["render",yUn],["__scopeId","data-v-6f262cbb"]]),bUn={key:0,class:"fixed inset-0 z-50 flex items-center justify-center overflow-hidden bg-gradient-welcome text-blue-800 dark:text-blue-100"},EUn={key:0,class:"absolute inset-0 pointer-events-none overflow-hidden opacity-70"},SUn={class:"relative z-10 flex w-full max-w-4xl flex-col items-center px-6 text-center"},xUn={class:"mb-10 w-full"},LUn={class:"lollms-title-style mb-3 text-5xl font-extrabold tracking-tight drop-shadow-md md:text-7xl transition-transform duration-300 hover:scale-[1.03]"},CUn={class:"text-xl italic md:text-2xl text-subtitle"},AUn={key:0,class:"mt-4 text-base text-author"},wUn={class:"mt-1 text-sm text-author"},OUn={class:"text-base text-blue-800 dark:text-blue-200"},MUn=["innerHTML"],RUn={class:"w-full max-w-lg"},NUn={class:"mb-3 h-3 w-full overflow-hidden rounded-full shadow-inner animated-progressbar-bg"},DUn={role:"status",class:"w-full"},IUn={class:"text-2xl font-semibold text-progress"},kUn={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-[16rem] panels-color scrollbar"},HUn={class:"logo-container"},PUn=["src","title"],$Un={class:"flex flex-col justify-center"},VUn={class:"text-center p-2"},BUn={class:"text-md relative inline-block"},FUn={class:"relative inline-block font-bold tracking-wide text-blue-800 dark:text-blue-100 text-gradient-title"},UUn={class:"text-blue-600 dark:text-blue-400 text-sm text-subtitle"},qUn={class:"toolbar-color flex items-center p-1 justify-around"},GUn={class:"toolbar-container flex items-center gap-1 relative"},jUn={class:"relative"},zUn={class:"relative"},YUn={key:0,title:"Loading..",class:"flex justify-center"},WUn={key:1,class:"flex justify-center space-x-2"},KUn={key:2,class:"flex flex-col space-y-1"},ZUn=["title"],XUn=["src","alt"],JUn={class:"p-2 border-b border-blue-300 dark:border-blue-600"},eqn={class:"p-4 grid grid-cols-3 gap-x-4 gap-y-6 max-h-80 overflow-y-auto scrollbar"},tqn=["onClick","title"],nqn=["src","alt"],rqn={class:"animated-thought-bubble"},iqn=["onClick"],oqn={class:"flex space-x-1 justify-center"},sqn=["onClick"],aqn=["title"],lqn=["src","alt"],cqn={class:"p-2 border-b border-blue-300 dark:border-blue-600"},uqn={class:"p-4 grid grid-cols-3 gap-x-4 gap-y-6 max-h-80 overflow-y-auto scrollbar"},dqn=["onClick","title"],Tqn=["src","alt"],fqn={class:"animated-thought-bubble"},pqn=["onClick"],hqn={class:"flex space-x-1 justify-center"},mqn=["onClick"],gqn={class:"personalities-container"},_qn={class:"p-2 border-b border-blue-300 dark:border-blue-600"},Qqn={class:"p-4 grid grid-cols-3 gap-x-4 gap-y-6 max-h-80 overflow-y-auto scrollbar"},vqn=["onClick","title"],yqn=["src","alt"],bqn={class:"animated-thought-bubble"},Eqn=["onClick"],Sqn={class:"flex space-x-1 justify-center"},xqn=["onClick"],Lqn=["onClick"],Cqn=["onClick"],Aqn={class:"w-full max-w-md mx-auto p-2"},wqn={class:"flex items-center"},Oqn={class:"relative flex-grow"},Mqn={key:0,class:"w-full p-2 bg-blue-200 dark:bg-blue-700"},Rqn={class:"flex flex-col space-y-1"},Nqn={key:0,class:"text-sm text-blue-700 dark:text-blue-200"},Dqn={key:1,class:"flex space-x-1 items-center"},Iqn={key:1,class:"flex space-x-1 items-center"},kqn={class:"flex space-x-1 items-center"},Hqn={class:"relative flex flex-row flex-grow mb-10 z-0 w-full"},Pqn={key:1,class:"p-4 text-center text-blue-600 dark:text-blue-400"},$qn={class:"flex flex-row items-center justify-center border-t border-blue-200 dark:border-blue-700"},Vqn={class:"text-center font-semibold text-sm drop-shadow-md align-middle text-blue-700 dark:text-blue-300"},Bqn={key:0,class:"relative flex flex-col flex-grow background-color"},Fqn={class:"container pt-4 pb-50 mb-50 w-full max-w-4xl mx-auto px-4"},Uqn={key:0,class:"w-full rounded-lg m-2 shadow-lg border border-blue-200 dark:border-blue-700 bg-blue-50 dark:bg-blue-900 p-4 pb-2"},qqn={class:"overflow-x-auto flex-grow scrollbar"},Gqn={class:"flex flex-nowrap gap-4 p-2"},jqn=["title","onClick"],zqn={class:"space-y-2"},Yqn=["title"],Wqn=["title"],Kqn={key:0,class:"fixed inset-0 bg-black bg-opacity-60 dark:bg-opacity-70 flex items-center justify-center z-50 p-4"},Zqn={class:"card max-w-4xl w-full max-h-[90vh] flex flex-col p-0"},Xqn={class:"flex-1 flex flex-col min-h-0 overflow-hidden p-4 space-y-4"},Jqn={class:"p-3 bg-blue-100 dark:bg-blue-800 rounded-lg border border-blue-200 dark:border-blue-700"},eGn={class:"flex-1 h-[150px] overflow-y-auto scrollbar bg-white dark:bg-blue-900 p-2 rounded text-sm"},tGn={class:"whitespace-pre-wrap text-blue-900 dark:text-blue-100"},nGn={class:"flex-1 overflow-y-auto scrollbar space-y-3 pr-2"},rGn=["for"],iGn=["id","onUpdate:modelValue","placeholder"],oGn=["id","onUpdate:modelValue"],sGn=["id","onUpdate:modelValue"],aGn=["id","onUpdate:modelValue"],lGn={key:4,class:"border border-blue-300 dark:border-blue-600 rounded-md overflow-hidden"},cGn={class:"bg-blue-200 dark:bg-blue-700 p-1 px-2 text-xs text-blue-700 dark:text-blue-200"},uGn=["id","onUpdate:modelValue"],dGn=["id","onUpdate:modelValue"],TGn=["value"],fGn={class:"p-4 flex justify-end space-x-2 border-t border-blue-200 dark:border-blue-700"},pGn={key:0,class:"sticky bottom-0 left-0 right-0 p-4 z-20 w-full max-w-4xl mx-auto"},hGn={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-1/2 panels-color h-full scrollbar"},mGn={ref:"isolatedContent",class:"h-full p-4 prose-blue dark:prose-invert"},gGn={role:"status",class:"fixed m-0 p-4 left-4 bottom-4 min-w-[24rem] max-w-[24rem] h-auto flex flex-col justify-center items-center bg-blue-500 dark:bg-blue-700 rounded-lg shadow-lg z-50 text-white"},_Gn={class:"text-lg font-semibold animate-pulse"},QGn={id:"app"},vGn=t=>{const e=t.replace("[","").replace("]","").split("::"),n=e[0];if(e.length===1)return{label:n,type:"text",fullText:t};const o=e[1],r={label:n,type:o,fullText:t};switch(o){case"int":case"float":case"multiline":break;case"code":r.language=e[2]||"plaintext";break;case"options":r.options=e[2]?e[2].split(",").map(i=>i.trim()):[];break;default:r.type="text"}return r},yGn={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!","Did you know? The term 'bug' in computing came from an actual moth trapped in a computer relay in 1947!","The first computer mouse was made of wood in the 1960s by Doug Engelbart!","The entire Apollo 11 mission that landed humans on the moon used less computing power than today's average smartphone!","Did you know? The first emoji was created in 1999 by Shigetaka Kurita in Japan!","The world's first website, created by Tim Berners-Lee, went live on August 6, 1991, and it's still online today!","Did you know? A neural network once learned to detect tanks in photos by accidentally learning to detect the time of day - all tank photos were taken during daytime!","The first computer virus was created in 1971 and was called 'Creeper'. It simply displayed the message 'I'm the creeper: catch me if you can!'","Did you know? The CAPTCHA system you use to prove you're human actually helps digitize books and improve AI training!","The word 'robot' comes from the Czech word 'robota', meaning forced labor or servitude!","Did you know? The first AI chatbot, ELIZA, was created in 1966 and could convince some people they were talking to a real therapist!","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.","Did you know? Honeybees build their honeycombs in perfect hexagons, the most efficient shape for storing honey!","The ancient Egyptians used a simple rope with 12 knots to create perfect right angles for building pyramids!","Did you know? There's a shape called a 'mobius strip' that has only one side and one edge - try making one with a paper strip!","The sum of angles in any triangle is always 180 degrees, whether it's tiny or huge!","Did you know? A pizza slice demonstrates the mathematical concept of sectors and radians - math you can eat!","The ancient Greeks believed there were only 5 'perfect' 3D shapes, called Platonic solids!","Did you know? Fractals are shapes that repeat infinitely - they're found everywhere in nature, from snowflakes to broccoli!","A circle has an infinite number of lines of symmetry, more than any other shape!","Did you know? The Golden Ratio (approximately 1.618) appears in nature and is considered the most aesthetically pleasing proportion!","The shortest path between two points on a sphere isn't a straight line - it's called a 'great circle' route, used by airlines!","Did you know? The first computer virus wasn't created to cause harm - it was a game called 'Core War' where programs fought for control of the computer's memory!","A single Google search uses more computing power than the entire Apollo space mission!","Did you know? The world's first programmer, Ada Lovelace, wrote an algorithm in 1842 before computers even existed!","The average smartphone today is millions of times more powerful than all of NASA's combined computing power in 1969!","Did you know? The first computer 'bug' was literally a moth trapped in a relay of the Mark II computer in 1947!","Bitcoin's entire source code is shorter than Microsoft Word's printer drivers!","Did you know? The most expensive typing error in history occurred in 1962 when NASA's Mariner 1 spacecraft was destroyed due to a missing hyphen in its code!","The first computer mouse was made of wood and had two wheels instead of a ball or optical sensor!","Did you know? The entire internet weighs about as much as a strawberry - if you were to weigh all its electrons!","The popular programming language Python wasn't named after the snake - it was named after Monty Python's Flying Circus!","Did you know? The first 1GB hard drive released in 1980 weighed about 550 pounds and cost $40,000!","The QWERTY keyboard layout was designed to slow typists down to prevent mechanical typewriters from jamming!","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.","Did you know? One day on Venus is longer than its year - it takes 243 Earth days to rotate on its axis but only 225 days to orbit the Sun!","The footprints on the Moon will last for 100 million years because there is no wind to blow them away!","Did you know? If you could put Saturn in a giant bathtub, it would float - it's the only planet less dense than water!","The Great Red Spot on Jupiter is a storm that has been raging for at least 400 years!","Did you know? There's a planet made largely of diamonds, called 55 Cancri e - it's worth about $26.9 nonillion!","A day on the International Space Station has 16 sunrises and sunsets because it orbits Earth every 90 minutes!","Did you know? The largest known star, UY Scuti, is so big that it would take 1,700 years to walk around it at walking speed!","There's a cloud of alcohol in space - Sagittarius B2 contains billions of liters of ethyl alcohol!","Did you know? The sound of a black hole is actually a B-flat note, 57 octaves below middle C!","Space isn't completely silent - planets and stars emit electromagnetic vibrations that can be converted into sound!","Did you know? If you cry in space, your tears just stick to your face - they won't fall because there's no gravity!","The entire human race could fit inside a sugar cube if all the empty space in our atoms was removed!","Did you know? The green code in The Matrix isn't actually computer code - it's sushi recipes written in Japanese characters!","The Matrix used approximately 12,000 pounds of concrete to create the iconic lobby scene destruction!","Did you know? Keanu Reeves had to undergo spinal surgery before filming The Matrix Reloaded due to neck injuries from the first movie's stunts!","The famous 'bullet time' effect required 120 cameras shooting simultaneously and took months to create just a few seconds of footage!","Did you know? The actors had to train for 4 months in martial arts, wire work, and fight choreography before filming began!","The color green was deliberately used throughout the movie to create a connection to the old computer monitors of the 1980s!","Did you know? Will Smith turned down the role of Neo to star in Wild Wild West - a decision he later regretted!","The sunglasses worn in The Matrix were custom-made and cost over $2,000 per pair!","Did you know? The scene where Neo sees the cat twice was actually inspired by a programming concept called déjà vu in computer simulation!","The Matrix's original budget was $60 million, but the opening sequence alone cost $10 million to create!","Did you know? The red pill and blue pill were actually made of minted candy to ensure they looked perfect in every take!","The famous dojo fight scene between Neo and Morpheus took 6 days to film and both actors performed most of their own stunts!","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: `+o.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(be(()=>{Le.replace()});this.$store.state.ready===!1;)await new Promise(t=>setTimeout(t,100));this.onReady()},async api_get_req(t){try{const e=await fe.get("/"+t);if(e)return e.data}catch(e){console.log(e.message,"api_get_req - mountedPersonalities");return}},personalityImgPlacehodler(t){t.target.src=t0}}},dUn={class:"relative group/item"},TUn=["src","alt"],fUn={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"},pUn={class:"p-1 bg-gray-500 rounded-full text-white hover:bg-gray-600 focus:outline-none ml-1",title:"Show more"},hUn={class:"text-xs font-bold"};function mUn(t,e,n,o,r,i){const s=We("UniversalForm");return N(),H(Ae,null,[S("div",dUn,[S("button",{onClick:e[1]||(e[1]=oe((...a)=>i.onSettingsPersonality&&i.onSettingsPersonality(...a),["prevent"])),class:Ee(["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}])},[S("img",{src:i.mountedPers.avatar,onError:e[0]||(e[0]=(...a)=>i.personalityImgPlacehodler&&i.personalityImgPlacehodler(...a)),alt:i.mountedPers.name,class:Ee(["w-full h-full object-cover",{"border-2 border-secondary":t.isActive}])},null,42,TUn)],2),S("div",fUn,[S("button",{onClick:e[2]||(e[2]=oe(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]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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)])),S("button",{onClick:e[3]||(e[3]=oe(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]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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)])),S("button",pUn,[S("span",hUn,"+"+J(i.mountedPersArr.length-1),1)])])]),ne(s,{ref:"universalForm",class:"z-50"},null,512)],64)}const Zk=ze(uUn,[["render",mUn],["__scopeId","data-v-70cef6eb"]]),gUn={name:"ChangelogPopup",data(){return{showChangelogPopup:!1,changelogContent:"",currentVersion:"0.0.0"}},computed:{parsedChangelogContent(){const t={breaks:!0,gfm:!0},e=Et(this.changelogContent,t);return Rc.sanitize(e)}},async mounted(){await this.checkChangelogUpdate()},methods:{async fetchVersion(){try{const t=await fe.get("/get_lollms_webui_version");if(t&&t.data){const{version_main:e,version_secondary:n,version_type:o,version_codename:r}=t.data;let i=`${e}.${n}`;return o&&(i+=` ${o}`),r&&(i+=` (${r})`),this.$store.commit("setVersion",i),this.currentVersion=i,i}}catch(t){console.error("Error fetching LoLLMs version:",t)}return this.$store.state.version||"0.0.0"},async checkChangelogUpdate(){try{const t=await fe.get("/get_changelog");this.changelogContent=t.data||"*No changelog content found.*";const e=await this.fetchVersion(),o=(await fe.get("/get_last_viewed_changelog_version")).data,r=i=>{i&&i.app_show_changelogs&&e!==o&&e!=="0.0.0"&&(this.showChangelogPopup=!0)};if(this.$store.state.config)r(this.$store.state.config);else{const i=this.$watch("$store.state.config",s=>{s&&(r(s),i())},{immediate:!1})}}catch(t){console.error("Error checking changelog:",t)}},async handleUnderstand(){try{await fe.post("/set_last_viewed_changelog_version",{client_id:this.$store.state.client_id,version:this.currentVersion}),this.closePopup()}catch(t){console.error("Error setting last viewed changelog version:",t),this.closePopup()}},closePopup(){this.showChangelogPopup=!1}}},_Un={class:"flex justify-between items-center p-4 px-6 border-b border-blue-300 dark:border-blue-600 flex-shrink-0 unicolor-panels-color"},QUn={class:"p-6 md:p-8 flex-grow overflow-y-auto scrollbar text-blue-900 dark:text-blue-200"},vUn=["innerHTML"],yUn={class:"flex justify-end p-4 px-6 border-t border-blue-300 dark:border-blue-600 flex-shrink-0 unicolor-panels-color"};function bUn(t,e,n,o,r,i){return N(),it(Tr,{name:"fade"},{default:je(()=>[r.showChangelogPopup?(N(),H("div",{key:0,class:Ee(["fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-[100] transition-opacity duration-300",{"opacity-0 pointer-events-none":!r.showChangelogPopup,"opacity-100":r.showChangelogPopup}])},[S("div",{class:Ee(["panels-color rounded-lg w-[95%] max-w-4xl max-h-[90vh] flex flex-col shadow-2xl overflow-hidden transform transition-all duration-300 ease-out border border-blue-300 dark:border-blue-600",{"opacity-0 scale-95":!r.showChangelogPopup,"opacity-100 scale-100":r.showChangelogPopup}])},[S("div",_Un,[e[3]||(e[3]=S("h2",{class:"text-xl font-semibold text-blue-800 dark:text-blue-100"},"What's New",-1)),S("button",{class:"svg-button",onClick:e[0]||(e[0]=(...s)=>i.closePopup&&i.closePopup(...s)),"aria-label":"Close Changelog"},e[2]||(e[2]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))]),S("div",QUn,[S("div",{class:"prose prose-blue dark:prose-invert max-w-none",innerHTML:i.parsedChangelogContent},null,8,vUn)]),S("div",yUn,[S("button",{class:"btn btn-primary",onClick:e[1]||(e[1]=(...s)=>i.handleUnderstand&&i.handleUnderstand(...s))}," Got it ")])],2)],2)):Z("",!0)]),_:1})}const Xk=ze(gUn,[["render",bUn],["__scopeId","data-v-6f262cbb"]]),EUn={key:0,class:"fixed inset-0 z-50 flex items-center justify-center overflow-hidden bg-gradient-welcome text-blue-800 dark:text-blue-100"},SUn={key:0,class:"absolute inset-0 pointer-events-none overflow-hidden opacity-70"},xUn={class:"relative z-10 flex w-full max-w-4xl flex-col items-center px-6 text-center"},LUn={class:"mb-10 w-full"},CUn={class:"lollms-title-style mb-3 text-5xl font-extrabold tracking-tight drop-shadow-md md:text-7xl transition-transform duration-300 hover:scale-[1.03]"},AUn={class:"text-xl italic md:text-2xl text-subtitle"},wUn={key:0,class:"mt-4 text-base text-author"},OUn={class:"mt-1 text-sm text-author"},MUn={class:"text-base text-blue-800 dark:text-blue-200"},RUn=["innerHTML"],NUn={class:"w-full max-w-lg"},DUn={class:"mb-3 h-3 w-full overflow-hidden rounded-full shadow-inner animated-progressbar-bg"},IUn={role:"status",class:"w-full"},kUn={class:"text-2xl font-semibold text-progress"},HUn={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-[16rem] panels-color scrollbar"},PUn={class:"logo-container"},$Un=["src","title"],VUn={class:"flex flex-col justify-center"},BUn={class:"text-center p-2"},FUn={class:"text-md relative inline-block"},UUn={class:"relative inline-block font-bold tracking-wide text-blue-800 dark:text-blue-100 text-gradient-title"},qUn={class:"text-blue-600 dark:text-blue-400 text-sm text-subtitle"},GUn={class:"toolbar-color flex items-center p-1 justify-around"},jUn={class:"toolbar-container flex items-center gap-1 relative"},zUn={class:"relative"},YUn={class:"relative"},WUn={key:0,title:"Loading..",class:"flex justify-center"},KUn={key:1,class:"flex justify-center space-x-2"},ZUn={key:2,class:"flex flex-col space-y-1"},XUn=["title"],JUn=["src","alt"],eqn={class:"p-2 border-b border-blue-300 dark:border-blue-600"},tqn={class:"p-4 grid grid-cols-3 gap-x-4 gap-y-6 max-h-80 overflow-y-auto scrollbar"},nqn=["onClick","title"],rqn=["src","alt"],iqn={class:"animated-thought-bubble"},oqn=["onClick"],sqn={class:"flex space-x-1 justify-center"},aqn=["onClick"],lqn=["title"],cqn=["src","alt"],uqn={class:"p-2 border-b border-blue-300 dark:border-blue-600"},dqn={class:"p-4 grid grid-cols-3 gap-x-4 gap-y-6 max-h-80 overflow-y-auto scrollbar"},Tqn=["onClick","title"],fqn=["src","alt"],pqn={class:"animated-thought-bubble"},hqn=["onClick"],mqn={class:"flex space-x-1 justify-center"},gqn=["onClick"],_qn={class:"personalities-container"},Qqn={class:"p-2 border-b border-blue-300 dark:border-blue-600"},vqn={class:"p-4 grid grid-cols-3 gap-x-4 gap-y-6 max-h-80 overflow-y-auto scrollbar"},yqn=["onClick","title"],bqn=["src","alt"],Eqn={class:"animated-thought-bubble"},Sqn=["onClick"],xqn={class:"flex space-x-1 justify-center"},Lqn=["onClick"],Cqn=["onClick"],Aqn=["onClick"],wqn={class:"w-full max-w-md mx-auto p-2"},Oqn={class:"flex items-center"},Mqn={class:"relative flex-grow"},Rqn={key:0,class:"w-full p-2 bg-blue-200 dark:bg-blue-700"},Nqn={class:"flex flex-col space-y-1"},Dqn={key:0,class:"text-sm text-blue-700 dark:text-blue-200"},Iqn={key:1,class:"flex space-x-1 items-center"},kqn={key:1,class:"flex space-x-1 items-center"},Hqn={class:"flex space-x-1 items-center"},Pqn={class:"relative flex flex-row flex-grow mb-10 z-0 w-full"},$qn={key:1,class:"p-4 text-center text-blue-600 dark:text-blue-400"},Vqn={class:"flex flex-row items-center justify-center border-t border-blue-200 dark:border-blue-700"},Bqn={class:"text-center font-semibold text-sm drop-shadow-md align-middle text-blue-700 dark:text-blue-300"},Fqn={key:0,class:"relative flex flex-col flex-grow background-color"},Uqn={class:"container pt-4 pb-50 mb-50 w-full max-w-4xl mx-auto px-4"},qqn={key:0,class:"w-full rounded-lg m-2 shadow-lg border border-blue-200 dark:border-blue-700 bg-blue-50 dark:bg-blue-900 p-4 pb-2"},Gqn={class:"overflow-x-auto flex-grow scrollbar"},jqn={class:"flex flex-nowrap gap-4 p-2"},zqn=["title","onClick"],Yqn={class:"space-y-2"},Wqn=["title"],Kqn=["title"],Zqn={key:0,class:"fixed inset-0 bg-black bg-opacity-60 dark:bg-opacity-70 flex items-center justify-center z-50 p-4"},Xqn={class:"card max-w-4xl w-full max-h-[90vh] flex flex-col p-0"},Jqn={class:"flex-1 flex flex-col min-h-0 overflow-hidden p-4 space-y-4"},eGn={class:"p-3 bg-blue-100 dark:bg-blue-800 rounded-lg border border-blue-200 dark:border-blue-700"},tGn={class:"flex-1 h-[150px] overflow-y-auto scrollbar bg-white dark:bg-blue-900 p-2 rounded text-sm"},nGn={class:"whitespace-pre-wrap text-blue-900 dark:text-blue-100"},rGn={class:"flex-1 overflow-y-auto scrollbar space-y-3 pr-2"},iGn=["for"],oGn=["id","onUpdate:modelValue","placeholder"],sGn=["id","onUpdate:modelValue"],aGn=["id","onUpdate:modelValue"],lGn=["id","onUpdate:modelValue"],cGn={key:4,class:"border border-blue-300 dark:border-blue-600 rounded-md overflow-hidden"},uGn={class:"bg-blue-200 dark:bg-blue-700 p-1 px-2 text-xs text-blue-700 dark:text-blue-200"},dGn=["id","onUpdate:modelValue"],TGn=["id","onUpdate:modelValue"],fGn=["value"],pGn={class:"p-4 flex justify-end space-x-2 border-t border-blue-200 dark:border-blue-700"},hGn={key:0,class:"sticky bottom-0 left-0 right-0 p-4 z-20 w-full max-w-4xl mx-auto"},mGn={key:0,class:"relative flex flex-col no-scrollbar shadow-lg w-1/2 panels-color h-full scrollbar"},gGn={ref:"isolatedContent",class:"h-full p-4 prose-blue dark:prose-invert"},_Gn={role:"status",class:"fixed m-0 p-4 left-4 bottom-4 min-w-[24rem] max-w-[24rem] h-auto flex flex-col justify-center items-center bg-blue-500 dark:bg-blue-700 rounded-lg shadow-lg z-50 text-white"},QGn={class:"text-lg font-semibold animate-pulse"},vGn={id:"app"},yGn=t=>{const e=t.replace("[","").replace("]","").split("::"),n=e[0];if(e.length===1)return{label:n,type:"text",fullText:t};const o=e[1],r={label:n,type:o,fullText:t};switch(o){case"int":case"float":case"multiline":break;case"code":r.language=e[2]||"plaintext";break;case"options":r.options=e[2]?e[2].split(",").map(i=>i.trim()):[];break;default:r.type="text"}return r},bGn={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!","Did you know? The term 'bug' in computing came from an actual moth trapped in a computer relay in 1947!","The first computer mouse was made of wood in the 1960s by Doug Engelbart!","The entire Apollo 11 mission that landed humans on the moon used less computing power than today's average smartphone!","Did you know? The first emoji was created in 1999 by Shigetaka Kurita in Japan!","The world's first website, created by Tim Berners-Lee, went live on August 6, 1991, and it's still online today!","Did you know? A neural network once learned to detect tanks in photos by accidentally learning to detect the time of day - all tank photos were taken during daytime!","The first computer virus was created in 1971 and was called 'Creeper'. It simply displayed the message 'I'm the creeper: catch me if you can!'","Did you know? The CAPTCHA system you use to prove you're human actually helps digitize books and improve AI training!","The word 'robot' comes from the Czech word 'robota', meaning forced labor or servitude!","Did you know? The first AI chatbot, ELIZA, was created in 1966 and could convince some people they were talking to a real therapist!","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.","Did you know? Honeybees build their honeycombs in perfect hexagons, the most efficient shape for storing honey!","The ancient Egyptians used a simple rope with 12 knots to create perfect right angles for building pyramids!","Did you know? There's a shape called a 'mobius strip' that has only one side and one edge - try making one with a paper strip!","The sum of angles in any triangle is always 180 degrees, whether it's tiny or huge!","Did you know? A pizza slice demonstrates the mathematical concept of sectors and radians - math you can eat!","The ancient Greeks believed there were only 5 'perfect' 3D shapes, called Platonic solids!","Did you know? Fractals are shapes that repeat infinitely - they're found everywhere in nature, from snowflakes to broccoli!","A circle has an infinite number of lines of symmetry, more than any other shape!","Did you know? The Golden Ratio (approximately 1.618) appears in nature and is considered the most aesthetically pleasing proportion!","The shortest path between two points on a sphere isn't a straight line - it's called a 'great circle' route, used by airlines!","Did you know? The first computer virus wasn't created to cause harm - it was a game called 'Core War' where programs fought for control of the computer's memory!","A single Google search uses more computing power than the entire Apollo space mission!","Did you know? The world's first programmer, Ada Lovelace, wrote an algorithm in 1842 before computers even existed!","The average smartphone today is millions of times more powerful than all of NASA's combined computing power in 1969!","Did you know? The first computer 'bug' was literally a moth trapped in a relay of the Mark II computer in 1947!","Bitcoin's entire source code is shorter than Microsoft Word's printer drivers!","Did you know? The most expensive typing error in history occurred in 1962 when NASA's Mariner 1 spacecraft was destroyed due to a missing hyphen in its code!","The first computer mouse was made of wood and had two wheels instead of a ball or optical sensor!","Did you know? The entire internet weighs about as much as a strawberry - if you were to weigh all its electrons!","The popular programming language Python wasn't named after the snake - it was named after Monty Python's Flying Circus!","Did you know? The first 1GB hard drive released in 1980 weighed about 550 pounds and cost $40,000!","The QWERTY keyboard layout was designed to slow typists down to prevent mechanical typewriters from jamming!","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.","Did you know? One day on Venus is longer than its year - it takes 243 Earth days to rotate on its axis but only 225 days to orbit the Sun!","The footprints on the Moon will last for 100 million years because there is no wind to blow them away!","Did you know? If you could put Saturn in a giant bathtub, it would float - it's the only planet less dense than water!","The Great Red Spot on Jupiter is a storm that has been raging for at least 400 years!","Did you know? There's a planet made largely of diamonds, called 55 Cancri e - it's worth about $26.9 nonillion!","A day on the International Space Station has 16 sunrises and sunsets because it orbits Earth every 90 minutes!","Did you know? The largest known star, UY Scuti, is so big that it would take 1,700 years to walk around it at walking speed!","There's a cloud of alcohol in space - Sagittarius B2 contains billions of liters of ethyl alcohol!","Did you know? The sound of a black hole is actually a B-flat note, 57 octaves below middle C!","Space isn't completely silent - planets and stars emit electromagnetic vibrations that can be converted into sound!","Did you know? If you cry in space, your tears just stick to your face - they won't fall because there's no gravity!","The entire human race could fit inside a sugar cube if all the empty space in our atoms was removed!","Did you know? The green code in The Matrix isn't actually computer code - it's sushi recipes written in Japanese characters!","The Matrix used approximately 12,000 pounds of concrete to create the iconic lobby scene destruction!","Did you know? Keanu Reeves had to undergo spinal surgery before filming The Matrix Reloaded due to neck injuries from the first movie's stunts!","The famous 'bullet time' effect required 120 cameras shooting simultaneously and took months to create just a few seconds of footage!","Did you know? The actors had to train for 4 months in martial arts, wire work, and fight choreography before filming began!","The color green was deliberately used throughout the movie to create a connection to the old computer monitors of the 1980s!","Did you know? Will Smith turned down the role of Neo to star in Wild Wild West - a decision he later regretted!","The sunglasses worn in The Matrix were custom-made and cost over $2,000 per pair!","Did you know? The scene where Neo sees the cat twice was actually inspired by a programming concept called déjà vu in computer simulation!","The Matrix's original budget was $60 million, but the opening sequence alone cost $10 million to create!","Did you know? The red pill and blue pill were actually made of minted candy to ensure they looked perfect in every take!","The famous dojo fight scene between Neo and Morpheus took 6 days to film and both actors performed most of their own stunts!","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!","Did you know? Chuck Norris counted to infinity... twice!","When Chuck Norris does pushups, he doesn't push himself up - he pushes the Earth down!","Did you know? Chuck Norris's tears can cure cancer... too bad he has never cried!","Chuck Norris has a grizzly bear carpet in his room. The bear isn't dead, it's just afraid to move!","Did you know? Chuck Norris was actually born in Ryan, Oklahoma, and his real name is Carlos Ray Norris!","When Chuck Norris enters a room, he doesn't turn the lights on - he turns the dark off!","Did you know? Chuck Norris is the only person who can slam a revolving door!","Chuck Norris doesn't wear a watch. He decides what time it is!","Did you know? Chuck Norris actually served in the United States Air Force as an Air Policeman in South Korea!","When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris!","Did you know? Chuck Norris holds the record for the most consecutive push-ups without rest at 5,000!","Time waits for no man. Unless that man is Chuck Norris!","**Fishy Origins v19.1!** 🐠 That swimming mascot of the 'Fish Edition'? Its path isn't just code, it's a 'Quantum Cold Pizza Fluctuation' algorithm. Peak v19.1 engineering!","**Feeling Blue in v19.1?** Try searching 'sad' in settings. 50% chance the UI turns blue, 50% chance the v19.1 Fish mascot just gives you side-eye. 😠","**Warning: v19.1 Imaginary Lag!** The 'Prime Time Performance Boost'™ is real... but during non-prime seconds, things slow down by `sqrt(-1)`%. We call it 'v19.1 procrastinational processing'.","**Hear the Ocean in v19.1?** Using the 'Deep Sea Debug' theme might cause sonar pings. It's not a bug, it's *v19.1 immersion*. Report any Kraken sightings! 🦑","**v19.1: Salmon-Powered Purple!** The 'Prankster Purple' theme's shifts? Totally tied to the global market price of farmed salmon. Seemed logical for the Fish Edition!","**Poetry Isn't Dead (Thanks, v19.1!)** The iambic pentameter bug lives! There's a tiny chance v19.1 will critique your prompts with a Shakespearean sonnet on digital despair. 🎭","**Quantum Knob Jiggling (v19.1 Special):** Max out the 'Quantum Entanglement Level'. Will it link your v19.1 to another dimension? Or just turn the Fish mascot pink? Only one way to find out! ✨","**Dragon Mode (v19.1 Safety Hazard)!** Clicking 'Here Be Dragons' 5 times won't summon *real* dragons (legal vetoed that for v19.1), but it *will* fill your screen with ASCII flames! 🔥","**v19.1 Bubble Secrets:** Lean in... the Fish mascot's bubbles? Rumored to secretly display hex codes for *next* version's theme colors. Can you decode the v19.1 Fish's message?","**Cookie Monster Theme (v19.1 Edition):** Beware the 'Gone Phishing Gradient'. It uses v19.1's advanced subliminal tech to learn your favorite virtual cookie. Resistance is crumbly! 🍪","**Binary Brain Teaser:** The version number contains a secret message: `01100001 01110010 01110000 01101001 01101100 00100000 01100110 01101111 01101111 01101100`. If you decoded that, you truly understand the spirit of v19.1 'Fish Edition'!"],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:JFn,animated_info:eUn,normal_mode:nUn,fun_mode:tUn,is_first_connection:!0,discord:XFn,FastAPI:ZFn,modelImgPlaceholder:z1,personalityImgPlacehodler:z1,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!","Did you know? Chuck Norris counted to infinity... twice!","When Chuck Norris does pushups, he doesn't push himself up - he pushes the Earth down!","Did you know? Chuck Norris's tears can cure cancer... too bad he has never cried!","Chuck Norris has a grizzly bear carpet in his room. The bear isn't dead, it's just afraid to move!","Did you know? Chuck Norris was actually born in Ryan, Oklahoma, and his real name is Carlos Ray Norris!","When Chuck Norris enters a room, he doesn't turn the lights on - he turns the dark off!","Did you know? Chuck Norris is the only person who can slam a revolving door!","Chuck Norris doesn't wear a watch. He decides what time it is!","Did you know? Chuck Norris actually served in the United States Air Force as an Air Policeman in South Korea!","When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris!","Did you know? Chuck Norris holds the record for the most consecutive push-ups without rest at 5,000!","Time waits for no man. Unless that man is Chuck Norris!","**Fishy Origins v19.1!** 🐠 That swimming mascot of the 'Fish Edition'? Its path isn't just code, it's a 'Quantum Cold Pizza Fluctuation' algorithm. Peak v19.1 engineering!","**Feeling Blue in v19.1?** Try searching 'sad' in settings. 50% chance the UI turns blue, 50% chance the v19.1 Fish mascot just gives you side-eye. 😠","**Warning: v19.1 Imaginary Lag!** The 'Prime Time Performance Boost'™ is real... but during non-prime seconds, things slow down by `sqrt(-1)`%. We call it 'v19.1 procrastinational processing'.","**Hear the Ocean in v19.1?** Using the 'Deep Sea Debug' theme might cause sonar pings. It's not a bug, it's *v19.1 immersion*. Report any Kraken sightings! 🦑","**v19.1: Salmon-Powered Purple!** The 'Prankster Purple' theme's shifts? Totally tied to the global market price of farmed salmon. Seemed logical for the Fish Edition!","**Poetry Isn't Dead (Thanks, v19.1!)** The iambic pentameter bug lives! There's a tiny chance v19.1 will critique your prompts with a Shakespearean sonnet on digital despair. 🎭","**Quantum Knob Jiggling (v19.1 Special):** Max out the 'Quantum Entanglement Level'. Will it link your v19.1 to another dimension? Or just turn the Fish mascot pink? Only one way to find out! ✨","**Dragon Mode (v19.1 Safety Hazard)!** Clicking 'Here Be Dragons' 5 times won't summon *real* dragons (legal vetoed that for v19.1), but it *will* fill your screen with ASCII flames! 🔥","**v19.1 Bubble Secrets:** Lean in... the Fish mascot's bubbles? Rumored to secretly display hex codes for *next* version's theme colors. Can you decode the v19.1 Fish's message?","**Cookie Monster Theme (v19.1 Edition):** Beware the 'Gone Phishing Gradient'. It uses v19.1's advanced subliminal tech to learn your favorite virtual cookie. Resistance is crumbly! 🍪","**Binary Brain Teaser:** The version number contains a secret message: `01100001 01110010 01110000 01101001 01101100 00100000 01100110 01101111 01101111 01101100`. If you decoded that, you truly understand the spirit of v19.1 'Fish Edition'!"],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:eUn,animated_info:tUn,normal_mode:rUn,fun_mode:nUn,is_first_connection:!0,discord:JFn,FastAPI:XFn,modelImgPlaceholder:z1,personalityImgPlacehodler:z1,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:` @@ -340,7 +340,7 @@ It meant THERE IS NO SPOON, the matirx's famous scene.`,"ParisNeo started coding - `,memory_icon:rUn,active_skills:iUn,inactive_skills:oUn,skillsRegistry:sUn,robot:aUn,posts_headers:{accept:"application/json","Content-Type":"application/json"},host:"",progress_visibility_val:!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:[],isDragOverDiscussion:!1,isDragOverChat:!1,isOpen:!1,discussion_id:0}},methods:{async getPersonailyAvatar(t){if(t.avatar){const e="/"+t.avatar;return console.log("Personality avatar"),console.log(e),e}else return z1},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 fe.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(r=>r===t.full_path),o={client_id:this.$store.state.client_id,id:n};e=await fe.post("/select_personality",o),console.log("Generating message from ",e.data.status),Ye.emit("generate_msg_from",{id:-1})}},onShowPersListFun(){},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(console.log("Selected personality"),console.log(t),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:iUn,active_skills:oUn,inactive_skills:sUn,skillsRegistry:aUn,robot:lUn,posts_headers:{accept:"application/json","Content-Type":"application/json"},host:"",progress_visibility_val:!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:[],isDragOverDiscussion:!1,isDragOverChat:!1,isOpen:!1,discussion_id:0}},methods:{async getPersonailyAvatar(t){if(t.avatar){const e="/"+t.avatar;return console.log("Personality avatar"),console.log(e),e}else return z1},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 fe.get("/get_generation_status",{});if(e)if(e.data.status)console.log("Already generating");else{const n=this.$store.state.config.personalities.findIndex(r=>r===t.full_path),o={client_id:this.$store.state.client_id,id:n};e=await fe.post("/select_personality",o),console.log("Generating message from ",e.data.status),Ye.emit("generate_msg_from",{id:-1})}},onShowPersListFun(){},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(console.log("Selected personality"),console.log(t),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"),be(()=>{Le.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(r=>r===e),o={client_id:this.$store.state.client_id,id:n};try{const r=await fe.post("/select_personality",o);if(r)return this.$store.dispatch("refreshConfig").then(()=>{this.$store.dispatch("refreshPersonalitiesZoo").then(()=>{this.$store.dispatch("refreshMountedPersonalities")})}),r.data}catch(r){console.log(r.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"),fe.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"),fe.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,fe.post("/get_active_binding_settings",{client_id:this.$store.state.client_id}).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{fe.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. @@ -359,12 +359,12 @@ ${e} ${l}`;navigator.clipboard.writeText(c)}else navigator.clipboard.writeText(e);this.$store.state.toast.showToast("Copied to clipboard successfully",4,!0),be(()=>{Le.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 o=new FileReader;o.onload=r=>e(this.parseJsonObj(r.target.result)),o.onerror=r=>n(r),o.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(),o=(e.getMonth()+1).toString().padStart(2,"0"),r=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+"."+o+"."+r+"."+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(),o=(e.getMonth()+1).toString().padStart(2,"0"),r=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+"."+o+"."+r+"."+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(o=>o.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 fe.get("/get_versionID")).data.versionId;Ye.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(()=>{Le.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";Ye.id===void 0;)await new Promise(n=>setTimeout(n,100));this.$store.state.client_id=Ye.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=Ye.id,this.setPageTitle(),await this.list_discussions(),this.loadLastUsedDiscussion(),this.isCreated=!0,this.$store.state.ready=!0,Ye.on("connected",this.socketIOConnected),Ye.on("disconnected",this.socketIODisconnected),Ye.on("show_progress",this.show_progress),Ye.on("hide_progress",this.hide_progress),Ye.on("update_progress",this.update_progress),Ye.on("notification",this.notify),Ye.on("new_message",this.new_message),Ye.on("update_message",this.update_message),Ye.on("close_message",this.finalMsgEvent),Ye.on("disucssion_renamed",n=>{const o=this.discussionsList.findIndex(i=>i.id==n.discussion_id),r=this.discussionsList[o];r.title=n.title}),Ye.onclose=n=>{this.socketIODisconnected()},Ye.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}),Ye.onerror=n=>{console.log("WebSocket connection error:",n.code,n.reason),this.socketIODisconnected(),Ye.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,window.addEventListener("resize",this.adjustMenuPosition),Ye.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&&be(()=>{const t=document.getElementById("messages-list");this.scrollBottom(t)}),this.$store.state.config.show_news_panel&&this.$store.state.news.show()},components:{Discussion:xh,Message:Ik,ChatBox:kk,WelcomeComponent:Hk,ChoiceDialog:Sh,ProgressBar:sh,SkillsLibraryViewer:Nk,PersonalityEditor:Wk,PopupViewer:Kk,ActionButton:xN,SocialIcon:LN,MountedPersonalities:Zk,ChatBarButton:fh,ChangelogPopup:Xk,Animation:DFn},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()),be(()=>{Le.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){be(()=>{Le.replace()}),t||(this.isSelectAll=!1)},socketConnected(t){console.log("Websocket connected (watch)",t)},showConfirmation(){be(()=>{Le.replace()})}},computed:{shouldShowLollmsParagraphs(){return!(this.$store.state.config&&this.$store.state.config.app_custom_name&&this.$store.state.config.app_custom_name!="")},shouldShowLollmsFunFacts(){return this.$store.state.config&&this.$store.state.config.app_show_fun_facts},parsedPlaceholders(){const t=new Map;return this.placeholders.forEach(e=>{const n=vGn(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?Wi:this.$store.state.config.app_custom_logo!=""?"/user_infos/"+this.$store.state.config.app_custom_logo:Wi},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},...BR({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 Ye.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 be(()=>{Le.replace()}),this.discussionsList.filter(t=>t.checkBoxValue==!0)}}},bGn=Object.assign(yGn,{__name:"DiscussionsView",setup(t){return hr(()=>{Yk()}),fe.defaults.baseURL="/",(e,n)=>(N(),H(Ae,null,[ne(Tr,{name:"fade-smooth"},{default:je(()=>{var o,r;return[e.isReady?Z("",!0):(N(),H("div",bUn,[e.$store.state.theme_vars.activate_dropping_animation?(N(),H("div",EUn,[(N(),H(Ae,null,Ue(60,i=>S("div",{key:i,class:"absolute animate-fall text-xs text-blue-300 dark:text-blue-500",style:Jt({left:`${Math.random()*100}%`,top:"-30px",animationDuration:`${4+Math.random()*8}s`,animationDelay:`${Math.random()*6}s`,opacity:`${.3+Math.random()*.5}`})},J(e.$store.state.theme_vars.falling_object||"·"),5)),64))])):Z("",!0),S("div",SUn,[S("div",xUn,[S("h1",LUn,J(((o=e.$store.state.config)==null?void 0:o.app_custom_name)||e.$store.state.theme_vars.lollms_title||"LoLLMs"),1),S("p",CUn,J(((r=e.$store.state.config)==null?void 0:r.app_custom_slogan)||"One tool to rule them all"),1),e.shouldShowLollmsParagraphs?(N(),H("p",AUn," by ParisNeo ")):Z("",!0),S("p",wUn,J(e.version_info),1)]),e.shouldShowLollmsFunFacts&&e.randomFact?(N(),H("div",{key:0,class:"mb-8 w-full max-w-xl cursor-pointer rounded-lg border p-4 shadow-lg backdrop-blur-sm transition-all duration-300 card border-blue-300 dark:border-blue-600 hover:bg-blue-200 dark:hover:bg-blue-700 hover:border-blue-400 dark:hover:border-blue-500",onClick:n[0]||(n[0]=(...i)=>e.updateRandomFact&&e.updateRandomFact(...i))},[S("p",OUn,[n[57]||(n[57]=S("span",{class:"font-semibold text-blue-600 dark:text-blue-400"},"🤔 Fun Fact: ",-1)),S("span",{innerHTML:e.randomFact,class:"italic"},null,8,MUn)])])):Z("",!0),S("div",RUn,[S("div",NUn,[S("div",{class:"h-full rounded-full shadow-md transition-all duration-500 ease-out animated-progressbar-fg",style:Jt({width:`${e.loading_progress}%`})},null,4)]),S("div",DUn,[(N(),H("p",{class:"mb-1 text-lg transition-opacity duration-300 text-loading",key:e.loading_infos},J(e.loading_infos)+"... ",1)),S("p",IUn,J(Math.round(e.loading_progress))+"% ",1)])])])]))]}),_:1}),ne(Tr,{name:"slide-right"},{default:je(()=>[e.showLeftPanel?(N(),H("div",kUn,[ne(vt(Q0),{to:{name:"discussions"},class:"flex items-center space-x-2 p-2 border-b border-blue-200 dark:border-blue-700"},{default:je(()=>[S("div",HUn,[S("img",{class:"w-12 h-12 rounded-full object-cover logo-image border-2 border-blue-300 dark:border-blue-600 shadow-sm",src:e.$store.state.config==null?vt(Wi):e.$store.state.config.app_custom_logo!=null&&e.$store.state.config.app_custom_logo!=""?"/user_infos/"+e.$store.state.config.app_custom_logo:vt(Wi),alt:"Logo",title:e.$store.state.config&&e.$store.state.config.app_custom_name&&e.$store.state.config.app_custom_name!=""?e.$store.state.config.app_custom_logo:"LoLLMs WebUI"},null,8,PUn)]),S("div",$Un,[S("div",VUn,[S("div",BUn,[S("span",FUn,J(e.$store.state.config&&e.$store.state.config.app_custom_name&&e.$store.state.config.app_custom_name!=""?e.$store.state.config.app_custom_name:"LoLLMS WebUI"),1),n[58]||(n[58]=S("div",{class:"absolute -bottom-0.5 left-0 w-full h-0.5 bg-blue-500 dark:bg-blue-400 transform origin-left transition-transform duration-300 hover:scale-x-100 scale-x-0"},null,-1))])]),S("p",UUn,J(e.$store.state.config&&e.$store.state.config.app_custom_slogan&&e.$store.state.config.app_custom_slogan!=""?e.$store.state.config.app_custom_slogan:"One tool to rule them all"),1)])]),_:1}),S("div",qUn,[S("div",GUn,[S("button",{class:"toolbar-button svg-button",title:"Create new discussion",onClick:n[1]||(n[1]=(...o)=>e.createNewDiscussion&&e.createNewDiscussion(...o))},n[59]||(n[59]=[S("i",{"data-feather":"plus",class:"w-5 h-5"},null,-1)])),e.loading?Z("",!0):(N(),H("div",{key:0,class:"relative",onMouseleave:n[8]||(n[8]=(...o)=>e.hideSkillsLibraryMenu&&e.hideSkillsLibraryMenu(...o))},[S("div",{onMouseenter:n[2]||(n[2]=(...o)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...o)),class:"menu-hover-area"},n[60]||(n[60]=[S("button",{class:"toolbar-button svg-button",title:"Toggle Skills library menu"},[S("svg",{class:"w-5 h-5",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{d:"M4 4v16h16V4H4zm2 2h12v12H6V6zm2 2h2v8H8V8zm3 0h2v8h-2V8zm3 0h2v8h-2V8z",fill:"currentColor"})])],-1)]),32),Ce(S("div",{onMouseenter:n[7]||(n[7]=(...o)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...o)),class:"absolute top-full left-0 mt-2 z-50 transform card p-2 flex flex-wrap gap-2 items-center shadow-lg"},[e.loading?Z("",!0):(N(),H("button",{key:0,type:"button",onClick:n[3]||(n[3]=oe((...o)=>e.addDiscussion2SkillsLibrary&&e.addDiscussion2SkillsLibrary(...o),["stop"])),title:"Add this discussion content to skills database",class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200"},n[61]||(n[61]=[S("i",{"data-feather":"plus",class:"w-5 h-5"},null,-1)]))),!e.loading&&e.$store.state.config.activate_skills_lib?(N(),H("button",{key:1,type:"button",onClick:n[4]||(n[4]=oe((...o)=>e.toggleSkillsLib&&e.toggleSkillsLib(...o),["stop"])),title:"Skills database is activated",class:"svg-button text-green-500 hover:text-green-700 dark:text-green-400 dark:hover:text-green-200"},n[62]||(n[62]=[S("i",{"data-feather":"check-circle",class:"w-5 h-5"},null,-1)]))):Z("",!0),!e.loading&&!e.$store.state.config.activate_skills_lib?(N(),H("button",{key:2,type:"button",onClick:n[5]||(n[5]=oe((...o)=>e.toggleSkillsLib&&e.toggleSkillsLib(...o),["stop"])),title:"Skills database is deactivated",class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200"},n[63]||(n[63]=[S("i",{"data-feather":"x-octagon",class:"w-5 h-5"},null,-1)]))):Z("",!0),e.loading?Z("",!0):(N(),H("button",{key:3,type:"button",onClick:n[6]||(n[6]=oe((...o)=>e.showSkillsLib&&e.showSkillsLib(...o),["stop"])),title:"Show Skills database",class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200"},n[64]||(n[64]=[S("i",{"data-feather":"book",class:"w-5 h-5"},null,-1)])))],544),[[wn,e.isSkillsLibraryMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:1,class:"relative",onMouseleave:n[22]||(n[22]=(...o)=>e.hideMenu&&e.hideMenu(...o))},[S("div",{onMouseenter:n[9]||(n[9]=(...o)=>e.showMenu&&e.showMenu(...o)),class:"menu-hover-area"},n[65]||(n[65]=[S("button",{class:"toolbar-button svg-button",title:"Toggle menu"},[S("i",{"data-feather":"menu",class:"w-5 h-5"})],-1)]),32),Ce(S("div",{onMouseenter:n[21]||(n[21]=(...o)=>e.showMenu&&e.showMenu(...o)),class:"absolute top-full left-0 mt-2 z-50 transform card p-2 flex flex-wrap gap-2 items-center shadow-lg"},[S("button",{class:Ee(["svg-button",e.isCheckbox?"text-blue-600 dark:text-blue-400 bg-blue-200 dark:bg-blue-700":"text-gray-600 dark:text-gray-300"]),title:"Edit discussion list",type:"button",onClick:n[10]||(n[10]=o=>e.isCheckbox=!e.isCheckbox)},n[66]||(n[66]=[S("i",{"data-feather":"check-square",class:"w-5 h-5"},null,-1)]),2),S("button",{class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Reset database, remove all discussions",onClick:n[11]||(n[11]=oe(()=>{},["stop"]))},n[67]||(n[67]=[S("i",{"data-feather":"trash-2",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200",title:"Export database",type:"button",onClick:n[12]||(n[12]=oe(o=>e.database_selectorDialogVisible=!0,["stop"]))},n[68]||(n[68]=[S("i",{"data-feather":"database",class:"w-5 h-5"},null,-1)])),S("div",jUn,[S("input",{type:"file",ref:"fileDialog",class:"hidden",onChange:n[13]||(n[13]=(...o)=>e.importDiscussions&&e.importDiscussions(...o))},null,544),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200 rotate-90",title:"Import discussions",type:"button",onClick:n[14]||(n[14]=oe(o=>e.$refs.fileDialog.click(),["stop"]))},n[69]||(n[69]=[S("i",{"data-feather":"log-in",class:"w-5 h-5"},null,-1)]))]),S("div",zUn,[S("input",{type:"file",ref:"bundleLoadingDialog",class:"hidden",onChange:n[15]||(n[15]=(...o)=>e.importDiscussionsBundle&&e.importDiscussionsBundle(...o))},null,544),e.showSaveConfirmation?Z("",!0):(N(),H("button",{key:0,title:"Import discussion bundle",onClick:n[16]||(n[16]=oe(o=>e.$refs.bundleLoadingDialog.click(),["stop"])),class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200"},n[70]||(n[70]=[S("i",{"data-feather":"folder",class:"w-5 h-5"},null,-1)])))]),e.loading?(N(),H("div",YUn,n[71]||(n[71]=[S("div",{role:"status"},[S("svg",{"aria-hidden":"true",class:"w-6 h-6 animate-spin text-blue-500 dark:text-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})]),S("span",{class:"sr-only"},"Loading...")],-1)]))):Z("",!0),e.showSaveConfirmation?(N(),H("div",WUn,[S("button",{class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Cancel",type:"button",onClick:n[17]||(n[17]=oe(o=>e.showSaveConfirmation=!1,["stop"]))},n[72]||(n[72]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-green-500 hover:text-green-700 dark:text-green-400 dark:hover:text-green-200",title:"Confirm save changes",type:"button",onClick:n[18]||(n[18]=oe(o=>e.save_configuration(),["stop"]))},n[73]||(n[73]=[S("i",{"data-feather":"check",class:"w-5 h-5"},null,-1)]))])):Z("",!0),e.isOpen?(N(),H("div",KUn,[S("button",{onClick:n[19]||(n[19]=(...o)=>e.importDiscussions&&e.importDiscussions(...o)),class:"link text-sm"},"LOLLMS"),S("button",{onClick:n[20]||(n[20]=(...o)=>e.importChatGPT&&e.importChatGPT(...o)),class:"link text-sm"},"ChatGPT")])):Z("",!0)],544),[[wn,e.isMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:2,class:"relative",onMouseleave:n[27]||(n[27]=(...o)=>e.hideBindingsMenu&&e.hideBindingsMenu(...o))},[S("div",{onMouseenter:n[24]||(n[24]=(...o)=>e.showBindingsMenu&&e.showBindingsMenu(...o)),class:"bindings-hover-area"},[S("button",{onClick:n[23]||(n[23]=oe(o=>e.showModelConfig(),["prevent"])),class:"w-6 h-6 block",title:e.currentBinding?e.currentBinding.name:"unknown"},[S("img",{src:e.currentBindingIcon,class:"w-full h-full rounded-full object-cover border-2 border-blue-300 dark:border-blue-600 active:scale-90 hover:border-blue-500 dark:hover:border-blue-400 hover:scale-110 hover:-translate-y-1 duration-200 transition-transform",alt:e.currentBinding?e.currentBinding.name:"Binding icon"},null,8,XUn)],8,ZUn)],32),Ce(S("div",{onMouseenter:n[26]||(n[26]=(...o)=>e.showBindingsMenu&&e.showBindingsMenu(...o)),class:"absolute top-full left-0 mt-2 z-10 transform w-80 panels-color rounded-md shadow-lg ring-1 ring-blue-400 dark:ring-blue-600 ring-opacity-50 focus:outline-none transition-all duration-300 ease-out"},[S("div",JUn,[Ce(S("input",{type:"text","onUpdate:modelValue":n[25]||(n[25]=o=>e.bindingSearchQuery=o),placeholder:"Search bindings...",class:"w-full input input-sm"},null,512),[[Je,e.bindingSearchQuery]])]),S("div",eqn,[(N(!0),H(Ae,null,Ue(e.filteredBindings,(o,r)=>(N(),H("div",{key:r,class:"relative group/item flex flex-col items-center"},[S("button",{onClick:oe(i=>e.setBinding(o),["prevent"]),title:o.name,class:Ee(o.name==e.binding_name?"border-blue-500 dark:border-blue-400":"border-transparent hover:border-blue-300 dark:hover:border-blue-500")},[S("img",{src:o.icon?o.icon:vt(z1),alt:o.name,class:"w-full h-full object-cover"},null,8,nqn)],10,tqn),S("div",rqn,[S("span",{class:"text-xs font-medium mb-1 block text-blue-800 dark:text-blue-100 cursor-pointer",onClick:oe(i=>e.setBinding(o),["prevent"])},J(o.name),9,iqn),S("div",oqn,[S("button",{onClick:oe(i=>e.showModelConfig(o),["prevent"]),class:"p-1 btn-secondary btn-sm rounded-full hover:scale-110 transition-transform duration-150",title:"Configure Binding"},n[74]||(n[74]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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,sqn)])])]))),128))])],544),[[wn,e.isBindingsMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:3,class:"relative",onMouseleave:n[32]||(n[32]=(...o)=>e.hideModelsMenu&&e.hideModelsMenu(...o))},[S("div",{onMouseenter:n[29]||(n[29]=(...o)=>e.showModelsMenu&&e.showModelsMenu(...o)),class:"models-hover-area"},[S("button",{onClick:n[28]||(n[28]=oe(o=>e.copyModelName(),["prevent"])),class:"w-6 h-6 block",title:e.currentModel?e.currentModel.name:"unknown"},[S("img",{src:e.currentModelIcon,class:"w-full h-full rounded-full object-cover border-2 border-blue-300 dark:border-blue-600 active:scale-90 hover:border-blue-500 dark:hover:border-blue-400 hover:scale-110 hover:-translate-y-1 duration-200 transition-transform",alt:e.currentModel?e.currentModel.name:"Model icon"},null,8,lqn)],8,aqn)],32),Ce(S("div",{onMouseenter:n[31]||(n[31]=(...o)=>e.showModelsMenu&&e.showModelsMenu(...o)),class:"absolute top-full left-0 mt-2 z-10 transform w-80 panels-color rounded-md shadow-lg ring-1 ring-blue-400 dark:ring-blue-600 ring-opacity-50 focus:outline-none transition-all duration-300 ease-out"},[S("div",cqn,[Ce(S("input",{type:"text","onUpdate:modelValue":n[30]||(n[30]=o=>e.modelSearchQuery=o),placeholder:"Search models...",class:"w-full input input-sm"},null,512),[[Je,e.modelSearchQuery]])]),S("div",uqn,[(N(!0),H(Ae,null,Ue(e.filteredModels,(o,r)=>(N(),H("div",{key:r,class:"relative group/item flex flex-col items-center"},[S("button",{onClick:oe(i=>e.setModel(o),["prevent"]),title:o.name,class:Ee(["w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-110 focus:outline-none border-2 mb-1",o.name==e.model_name?"border-blue-500 dark:border-blue-400":"border-transparent hover:border-blue-300 dark:hover:border-blue-500"])},[S("img",{src:o.icon?o.icon:vt(z1),alt:o.name,class:"w-full h-full object-cover"},null,8,Tqn)],10,dqn),S("div",fqn,[S("span",{class:"text-xs font-medium mb-1 block text-blue-800 dark:text-blue-100 cursor-pointer",onClick:oe(i=>e.setModel(o),["prevent"])},J(o.name),9,pqn),S("div",hqn,[S("button",{onClick:oe(i=>e.copyModelNameFrom(o.name),["prevent"]),class:"p-1 btn-secondary btn-sm rounded-full hover:scale-110 transition-transform duration-150",title:"Copy Model Name"},n[75]||(n[75]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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,mqn)])])]))),128))])],544),[[wn,e.isModelsMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:4,class:"relative",onMouseleave:n[36]||(n[36]=(...o)=>e.hidePersonalitiesMenu&&e.hidePersonalitiesMenu(...o))},[S("div",gqn,[S("div",{onMouseenter:n[33]||(n[33]=(...o)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...o)),class:"personalities-hover-area"},[ne(Zk,{ref:"mountedPers",onShowPersList:e.onShowPersListFun,onReady:e.onPersonalitiesReadyFun},null,8,["onShowPersList","onReady"])],32)]),Ce(S("div",{onMouseenter:n[35]||(n[35]=(...o)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...o)),class:"absolute top-full left-0 mt-2 z-10 transform w-80 panels-color rounded-md shadow-lg ring-1 ring-blue-400 dark:ring-blue-600 ring-opacity-50 focus:outline-none transition-all duration-300 ease-out"},[S("div",_qn,[Ce(S("input",{type:"text","onUpdate:modelValue":n[34]||(n[34]=o=>e.personalitySearchQuery=o),placeholder:"Search personalities...",class:"w-full input input-sm"},null,512),[[Je,e.personalitySearchQuery]])]),S("div",Qqn,[(N(!0),H(Ae,null,Ue(e.filteredPersonalities,(o,r)=>(N(),H("div",{key:r,class:"relative group/item flex flex-col items-center"},[S("button",{onClick:oe(i=>e.onPersonalitySelected(o),["prevent"]),title:o.name,class:Ee(["w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-110 focus:outline-none border-2 mb-1",e.$store.state.active_personality_id==e.$store.state.personalities.indexOf(o.full_path)?"border-blue-500 dark:border-blue-400":"border-transparent hover:border-blue-300 dark:hover:border-blue-500"])},[S("img",{src:o.avatar,alt:o.name,class:"w-full h-full object-cover"},null,8,yqn)],10,vqn),S("div",bqn,[S("span",{class:"text-xs font-medium mb-1 block text-blue-800 dark:text-blue-100 cursor-pointer",onClick:oe(i=>e.onPersonalitySelected(o),["prevent"])},J(o.name),9,Eqn),S("div",Sqn,[S("button",{onClick:oe(i=>e.unmountPersonality(o),["prevent"]),class:"p-1 bg-red-500 rounded-full text-white hover:bg-red-600 focus:outline-none btn-sm hover:scale-110 transition-transform duration-150",title:"Unmount"},n[76]||(n[76]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]),8,xqn),S("button",{onClick:oe(i=>e.remount_personality(o),["prevent"]),class:"p-1 btn-secondary btn-sm rounded-full hover:scale-110 transition-transform duration-150",title:"Remount"},n[77]||(n[77]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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,Lqn),S("button",{onClick:oe(i=>e.handleOnTalk(o),["prevent"]),class:"p-1 bg-green-500 rounded-full text-white hover:bg-green-600 focus:outline-none btn-sm hover:scale-110 transition-transform duration-150",title:"Talk"},n[78]||(n[78]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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,Cqn)])])]))),128))])],544),[[wn,e.isPersonalitiesMenuVisible]])],32))])]),S("div",Aqn,[S("form",{onSubmit:n[39]||(n[39]=oe((...o)=>e.handleSearch&&e.handleSearch(...o),["prevent"])),class:"relative"},[S("div",wqn,[S("div",Oqn,[Ce(S("input",{type:"search",id:"default-search",class:"block w-full h-8 pl-8 pr-10 text-sm input",placeholder:"Search discussions...",title:"Filter discussions by title","onUpdate:modelValue":n[37]||(n[37]=o=>e.filterTitle=o),onKeyup:n[38]||(n[38]=Qn((...o)=>e.handleSearch&&e.handleSearch(...o),["enter"]))},null,544),[[Je,e.filterTitle]]),n[79]||(n[79]=S("div",{class:"absolute left-2 top-1/2 -translate-y-1/2 pointer-events-none"},[S("i",{"data-feather":"search",class:"w-4 h-4 text-gray-400 dark:text-gray-500"})],-1)),n[80]||(n[80]=S("button",{type:"submit",class:"absolute right-2 top-1/2 -translate-y-1/2 svg-button p-1",title:"Search"},[S("i",{"data-feather":"arrow-right",class:"w-4 h-4"})],-1))])])],32)]),e.isCheckbox?(N(),H("div",Mqn,[S("div",Rqn,[e.selectedDiscussions.length>0?(N(),H("p",Nqn,"Selected: "+J(e.selectedDiscussions.length),1)):Z("",!0),e.selectedDiscussions.length>0?(N(),H("div",Dqn,[e.showConfirmation?Z("",!0):(N(),H("button",{key:0,class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Remove selected",type:"button",onClick:n[40]||(n[40]=oe(o=>e.showConfirmation=!0,["stop"]))},n[81]||(n[81]=[S("i",{"data-feather":"trash",class:"w-5 h-5"},null,-1)]))),e.showConfirmation?(N(),H("div",Iqn,[S("button",{class:"svg-button text-green-500 hover:text-green-700 dark:text-green-400 dark:hover:text-green-200",title:"Confirm removal",type:"button",onClick:n[41]||(n[41]=oe((...o)=>e.deleteDiscussionMulti&&e.deleteDiscussionMulti(...o),["stop"]))},n[82]||(n[82]=[S("i",{"data-feather":"check",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Cancel removal",type:"button",onClick:n[42]||(n[42]=oe(o=>e.showConfirmation=!1,["stop"]))},n[83]||(n[83]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)]))])):Z("",!0)])):Z("",!0),S("div",kqn,[S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200 rotate-90",title:"Export selected to a json file",type:"button",onClick:n[43]||(n[43]=oe((...o)=>e.exportDiscussionsAsJson&&e.exportDiscussionsAsJson(...o),["stop"]))},n[84]||(n[84]=[S("i",{"data-feather":"codepen",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200 rotate-90",title:"Export selected to a folder",type:"button",onClick:n[44]||(n[44]=oe((...o)=>e.exportDiscussions&&e.exportDiscussions(...o),["stop"]))},n[85]||(n[85]=[S("i",{"data-feather":"folder",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200",title:"Export selected to a markdown file",type:"button",onClick:n[45]||(n[45]=oe((...o)=>e.exportDiscussionsAsMarkdown&&e.exportDiscussionsAsMarkdown(...o),["stop"]))},n[86]||(n[86]=[S("i",{"data-feather":"bookmark",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200",title:"Select All",type:"button",onClick:n[46]||(n[46]=oe((...o)=>e.selectAllDiscussions&&e.selectAllDiscussions(...o),["stop"]))},n[87]||(n[87]=[S("i",{"data-feather":"list",class:"w-5 h-5"},null,-1)]))])])])):Z("",!0),S("div",{id:"leftPanel",class:"flex flex-col flex-grow overflow-y-scroll overflow-x-hidden scrollbar",onDragover:n[47]||(n[47]=oe(o=>e.setDropZoneDiscussion(),["stop","prevent"]))},[S("div",Hqn,[S("div",{class:Ee(["mx-0 flex flex-col flex-grow w-full",e.isDragOverDiscussion?"pointer-events-none opacity-50":""])},[S("div",{id:"dis-list",class:Ee([e.filterInProgress?"opacity-20 pointer-events-none":"","flex flex-col flex-grow w-full pb-80"])},[e.discussionsList.length>0?(N(),it(O2,{key:0,name:"discussionsList"},{default:je(()=>[(N(!0),H(Ae,null,Ue(e.discussionsList,(o,r)=>(N(),it(xh,{key:o.id,id:o.id,title:o.title,selected:e.currentDiscussion.id==o.id,loading:o.loading,isCheckbox:e.isCheckbox,checkBoxValue:o.checkBoxValue,openfolder_enabled:!0,onSelect:i=>e.selectDiscussion(o),onDelete:i=>e.deleteDiscussion(o.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})):Z("",!0),e.discussionsList.length<1?(N(),H("div",Pqn,n[88]||(n[88]=[S("p",null,"No discussions found.",-1)]))):Z("",!0)],2)],2)])],32),S("div",$qn,[S("div",{class:"chat-bar text-center flex items-center justify-center w-full",onClick:n[48]||(n[48]=(...o)=>e.showDatabaseSelector&&e.showDatabaseSelector(...o))},[n[89]||(n[89]=S("button",{class:"svg-button"},[S("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:"w-5 h-5 mr-2"},[S("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),S("path",{d:"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"}),S("path",{d:"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"})])],-1)),S("p",Vqn,J(e.formatted_database_name.replace("_"," ")),1)])])])):Z("",!0)]),_:1}),e.isReady?(N(),H("div",Bqn,[S("div",{id:"messages-list",class:Ee(["w-full z-0 flex flex-col flex-grow overflow-y-auto scrollbar",e.isDragOverChat?"pointer-events-none opacity-50":""])},[S("div",Fqn,[e.discussionArr.length>0?(N(),it(O2,{key:0,name:"list"},{default:je(()=>[(N(!0),H(Ae,null,Ue(e.discussionArr,(o,r)=>(N(),it(Ik,{key:o.id,message:o,id:"msg-"+o.id,ref_for:!0,ref:"msg-"+o.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(o.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(),H("div",Uqn,[n[94]||(n[94]=S("h2",{class:"text-2xl font-bold mb-4 text-blue-700 dark:text-blue-200 border-b border-blue-300 dark:border-blue-600 pb-2"},"Prompt Examples",-1)),S("div",qqn,[S("div",Gqn,[(N(!0),H(Ae,null,Ue(e.personality.prompts_list,(o,r)=>(N(),H("div",{title:e.extractTitle(o),key:r,onClick:i=>e.handlePromptSelection(o),class:"flex-shrink-0 w-[300px] card hover:shadow-xl transition-all duration-300 ease-in-out transform hover:scale-105 flex flex-col justify-between min-h-[200px] group p-4"},[S("div",zqn,[S("h3",{class:"font-semibold text-lg text-blue-800 dark:text-blue-100 mb-1 truncate",title:e.extractTitle(o)},J(e.extractTitle(o)),9,Yqn),S("div",{title:o,class:"text-sm text-blue-700 dark:text-blue-300 overflow-hidden line-clamp-4 leading-relaxed"},J(e.getPromptContent(o)),9,Wqn)]),n[90]||(n[90]=S("div",{class:"mt-3 text-xs font-medium link opacity-0 group-hover:opacity-100 transition-opacity duration-300"}," Click to select ",-1))],8,jqn))),128))])]),e.showPlaceholderModal?(N(),H("div",Kqn,[S("div",Zqn,[n[93]||(n[93]=S("h3",{class:"text-lg font-semibold p-4 border-b border-blue-200 dark:border-blue-700 text-blue-800 dark:text-blue-100"},"Fill in the placeholders",-1)),S("div",Xqn,[S("div",Jqn,[n[91]||(n[91]=S("h4",{class:"label !mb-1"},"Live Preview:",-1)),S("div",eGn,[S("span",tGn,J(e.getPromptContent(e.previewPrompt)),1)])]),S("div",nGn,[(N(!0),H(Ae,null,Ue(e.parsedPlaceholders,(o,r)=>(N(),H("div",{key:o.fullText,class:"flex flex-col"},[S("label",{for:"placeholder-"+r,class:"label"},J(o.label),9,rGn),o.type==="text"?Ce((N(),H("input",{key:0,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,type:"text",class:"input",placeholder:o.label,onInput:n[49]||(n[49]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,iGn)),[[Je,e.placeholderValues[r]]]):Z("",!0),o.type==="int"?Ce((N(),H("input",{key:1,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,type:"number",step:"1",class:"input",onInput:n[50]||(n[50]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,oGn)),[[Je,e.placeholderValues[r],void 0,{number:!0}]]):Z("",!0),o.type==="float"?Ce((N(),H("input",{key:2,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,type:"number",step:"0.01",class:"input",onInput:n[51]||(n[51]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,sGn)),[[Je,e.placeholderValues[r],void 0,{number:!0}]]):Z("",!0),o.type==="multiline"?Ce((N(),H("textarea",{key:3,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,rows:"4",class:"input",onInput:n[52]||(n[52]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,aGn)),[[Je,e.placeholderValues[r]]]):Z("",!0),o.type==="code"?(N(),H("div",lGn,[S("div",cGn,J(o.language||"Plain text"),1),Ce(S("textarea",{id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,rows:"6",class:"w-full p-2 font-mono bg-blue-50 dark:bg-blue-900 border-t border-blue-300 dark:border-blue-600 text-sm",onInput:n[53]||(n[53]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,uGn),[[Je,e.placeholderValues[r]]])])):Z("",!0),o.type==="options"?Ce((N(),H("select",{key:5,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,class:"input",onChange:n[54]||(n[54]=(...i)=>e.updatePreview&&e.updatePreview(...i))},[n[92]||(n[92]=S("option",{value:"",disabled:""},"Select an option",-1)),(N(!0),H(Ae,null,Ue(o.options,i=>(N(),H("option",{key:i,value:i,class:"text-blue-900 dark:text-blue-100 bg-blue-100 dark:bg-blue-800"},J(i),9,TGn))),128))],40,dGn)),[[Ir,e.placeholderValues[r]]]):Z("",!0)]))),128))])]),S("div",fGn,[S("button",{onClick:n[55]||(n[55]=(...o)=>e.cancelPlaceholders&&e.cancelPlaceholders(...o)),class:"btn btn-secondary"}," Cancel "),S("button",{onClick:n[56]||(n[56]=(...o)=>e.applyPlaceholders&&e.applyPlaceholders(...o)),class:"btn btn-primary"}," Apply ")])])])):Z("",!0)])):Z("",!0)]),_:1})):Z("",!0),e.currentDiscussion.id?Z("",!0):(N(),it(Hk,{key:1})),n[95]||(n[95]=S("div",{class:"h-40"},null,-1))]),n[96]||(n[96]=S("div",{class:"sticky bottom-0 left-0 right-0 h-48 pointer-events-none bg-gradient-to-t from-blue-100 to-transparent dark:from-blue-900 z-10"},null,-1))],2),e.currentDiscussion.id?(N(),H("div",pGn,[ne(kk,{ref:"chatBox",loading:e.isGenerating,discussionList:e.discussionArr,"on-show-toast-message":e.showToastMessage,"on-talk":e.talk,class:"toolbar-color p-2",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"])])):Z("",!0)])):Z("",!0),ne(Tr,{name:"slide-left"},{default:je(()=>[e.showRightPanel?(N(),H("div",hGn,[S("div",mGn,null,512)])):Z("",!0)]),_:1}),ne(Sh,{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"]),Ce(S("div",gGn,[ne(sh,{ref:"progress",progress:e.progress_value,class:"w-full h-3 mb-2"},null,8,["progress"]),S("p",_Gn,J(e.loading_infos)+" ...",1)],512),[[wn,e.progress_visibility]]),ne(Wk,{ref:"personality_editor",config:e.currentPersonConfig,personality:e.selectedPersonality},null,8,["config","personality"]),S("div",QGn,[ne(Kk,{ref:"news"},null,512)]),ne(Nk,{ref:"skills_lib"},null,512),ne(Xk)],64))}}),EGn=ze(bGn,[["__scopeId","data-v-9b0751f8"]]);let P6;const SGn=new Uint8Array(16);function xGn(){if(!P6&&(P6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!P6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return P6(SGn)}const Jn=[];for(let t=0;t<256;++t)Jn.push((t+256).toString(16).slice(1));function LGn(t,e=0){return Jn[t[e+0]]+Jn[t[e+1]]+Jn[t[e+2]]+Jn[t[e+3]]+"-"+Jn[t[e+4]]+Jn[t[e+5]]+"-"+Jn[t[e+6]]+Jn[t[e+7]]+"-"+Jn[t[e+8]]+Jn[t[e+9]]+"-"+Jn[t[e+10]]+Jn[t[e+11]]+Jn[t[e+12]]+Jn[t[e+13]]+Jn[t[e+14]]+Jn[t[e+15]]}const CGn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),FO={randomUUID:CGn};function Q1(t,e,n){if(FO.randomUUID&&!t)return FO.randomUUID();t=t||{};const o=t.random||(t.rng||xGn)();return o[6]=o[6]&15|64,o[8]=o[8]&63|128,LGn(o)}class A2{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 fe.get("/get_versionID")).data.versionId;Ye.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(()=>{Le.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";Ye.id===void 0;)await new Promise(n=>setTimeout(n,100));this.$store.state.client_id=Ye.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=Ye.id,this.setPageTitle(),await this.list_discussions(),this.loadLastUsedDiscussion(),this.isCreated=!0,this.$store.state.ready=!0,Ye.on("connected",this.socketIOConnected),Ye.on("disconnected",this.socketIODisconnected),Ye.on("show_progress",this.show_progress),Ye.on("hide_progress",this.hide_progress),Ye.on("update_progress",this.update_progress),Ye.on("notification",this.notify),Ye.on("new_message",this.new_message),Ye.on("update_message",this.update_message),Ye.on("close_message",this.finalMsgEvent),Ye.on("disucssion_renamed",n=>{const o=this.discussionsList.findIndex(i=>i.id==n.discussion_id),r=this.discussionsList[o];r.title=n.title}),Ye.onclose=n=>{this.socketIODisconnected()},Ye.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}),Ye.onerror=n=>{console.log("WebSocket connection error:",n.code,n.reason),this.socketIODisconnected(),Ye.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,window.addEventListener("resize",this.adjustMenuPosition),Ye.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&&be(()=>{const t=document.getElementById("messages-list");this.scrollBottom(t)}),this.$store.state.config.show_news_panel&&this.$store.state.news.show()},components:{Discussion:xh,Message:Ik,ChatBox:kk,WelcomeComponent:Hk,ChoiceDialog:Sh,ProgressBar:sh,SkillsLibraryViewer:Nk,PersonalityEditor:Wk,PopupViewer:Kk,ActionButton:xN,SocialIcon:LN,MountedPersonalities:Zk,ChatBarButton:fh,ChangelogPopup:Xk,Animation:IFn},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()),be(()=>{Le.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){be(()=>{Le.replace()}),t||(this.isSelectAll=!1)},socketConnected(t){console.log("Websocket connected (watch)",t)},showConfirmation(){be(()=>{Le.replace()})}},computed:{shouldShowLollmsParagraphs(){return!(this.$store.state.config&&this.$store.state.config.app_custom_name&&this.$store.state.config.app_custom_name!="")},shouldShowLollmsFunFacts(){return this.$store.state.config&&this.$store.state.config.app_show_fun_facts},parsedPlaceholders(){const t=new Map;return this.placeholders.forEach(e=>{const n=yGn(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?Wi:this.$store.state.config.app_custom_logo!=""?"/user_infos/"+this.$store.state.config.app_custom_logo:Wi},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},...BR({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 Ye.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 be(()=>{Le.replace()}),this.discussionsList.filter(t=>t.checkBoxValue==!0)}}},EGn=Object.assign(bGn,{__name:"DiscussionsView",setup(t){return hr(()=>{Yk()}),fe.defaults.baseURL="/",(e,n)=>(N(),H(Ae,null,[ne(Tr,{name:"fade-smooth"},{default:je(()=>{var o,r;return[e.isReady?Z("",!0):(N(),H("div",EUn,[e.$store.state.theme_vars.activate_dropping_animation?(N(),H("div",SUn,[(N(),H(Ae,null,Ue(60,i=>S("div",{key:i,class:"absolute animate-fall text-xs text-blue-300 dark:text-blue-500",style:Jt({left:`${Math.random()*100}%`,top:"-30px",animationDuration:`${4+Math.random()*8}s`,animationDelay:`${Math.random()*6}s`,opacity:`${.3+Math.random()*.5}`})},J(e.$store.state.theme_vars.falling_object||"·"),5)),64))])):Z("",!0),S("div",xUn,[S("div",LUn,[S("h1",CUn,J(((o=e.$store.state.config)==null?void 0:o.app_custom_name)||e.$store.state.theme_vars.lollms_title||"LoLLMs"),1),S("p",AUn,J(((r=e.$store.state.config)==null?void 0:r.app_custom_slogan)||"One tool to rule them all"),1),e.shouldShowLollmsParagraphs?(N(),H("p",wUn," by ParisNeo ")):Z("",!0),S("p",OUn,J(e.version_info),1)]),e.shouldShowLollmsFunFacts&&e.randomFact?(N(),H("div",{key:0,class:"mb-8 w-full max-w-xl cursor-pointer rounded-lg border p-4 shadow-lg backdrop-blur-sm transition-all duration-300 card border-blue-300 dark:border-blue-600 hover:bg-blue-200 dark:hover:bg-blue-700 hover:border-blue-400 dark:hover:border-blue-500",onClick:n[0]||(n[0]=(...i)=>e.updateRandomFact&&e.updateRandomFact(...i))},[S("p",MUn,[n[57]||(n[57]=S("span",{class:"font-semibold text-blue-600 dark:text-blue-400"},"🤔 Fun Fact: ",-1)),S("span",{innerHTML:e.randomFact,class:"italic"},null,8,RUn)])])):Z("",!0),S("div",NUn,[S("div",DUn,[S("div",{class:"h-full rounded-full shadow-md transition-all duration-500 ease-out animated-progressbar-fg",style:Jt({width:`${e.loading_progress}%`})},null,4)]),S("div",IUn,[(N(),H("p",{class:"mb-1 text-lg transition-opacity duration-300 text-loading",key:e.loading_infos},J(e.loading_infos)+"... ",1)),S("p",kUn,J(Math.round(e.loading_progress))+"% ",1)])])])]))]}),_:1}),ne(Tr,{name:"slide-right"},{default:je(()=>[e.showLeftPanel?(N(),H("div",HUn,[ne(vt(Q0),{to:{name:"discussions"},class:"flex items-center space-x-2 p-2 border-b border-blue-200 dark:border-blue-700"},{default:je(()=>[S("div",PUn,[S("img",{class:"w-12 h-12 rounded-full object-cover logo-image border-2 border-blue-300 dark:border-blue-600 shadow-sm",src:e.$store.state.config==null?vt(Wi):e.$store.state.config.app_custom_logo!=null&&e.$store.state.config.app_custom_logo!=""?"/user_infos/"+e.$store.state.config.app_custom_logo:vt(Wi),alt:"Logo",title:e.$store.state.config&&e.$store.state.config.app_custom_name&&e.$store.state.config.app_custom_name!=""?e.$store.state.config.app_custom_logo:"LoLLMs WebUI"},null,8,$Un)]),S("div",VUn,[S("div",BUn,[S("div",FUn,[S("span",UUn,J(e.$store.state.config&&e.$store.state.config.app_custom_name&&e.$store.state.config.app_custom_name!=""?e.$store.state.config.app_custom_name:"LoLLMS WebUI"),1),n[58]||(n[58]=S("div",{class:"absolute -bottom-0.5 left-0 w-full h-0.5 bg-blue-500 dark:bg-blue-400 transform origin-left transition-transform duration-300 hover:scale-x-100 scale-x-0"},null,-1))])]),S("p",qUn,J(e.$store.state.config&&e.$store.state.config.app_custom_slogan&&e.$store.state.config.app_custom_slogan!=""?e.$store.state.config.app_custom_slogan:"One tool to rule them all"),1)])]),_:1}),S("div",GUn,[S("div",jUn,[S("button",{class:"toolbar-button svg-button",title:"Create new discussion",onClick:n[1]||(n[1]=(...o)=>e.createNewDiscussion&&e.createNewDiscussion(...o))},n[59]||(n[59]=[S("i",{"data-feather":"plus",class:"w-5 h-5"},null,-1)])),e.loading?Z("",!0):(N(),H("div",{key:0,class:"relative",onMouseleave:n[8]||(n[8]=(...o)=>e.hideSkillsLibraryMenu&&e.hideSkillsLibraryMenu(...o))},[S("div",{onMouseenter:n[2]||(n[2]=(...o)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...o)),class:"menu-hover-area"},n[60]||(n[60]=[S("button",{class:"toolbar-button svg-button",title:"Toggle Skills library menu"},[S("svg",{class:"w-5 h-5",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{d:"M4 4v16h16V4H4zm2 2h12v12H6V6zm2 2h2v8H8V8zm3 0h2v8h-2V8zm3 0h2v8h-2V8z",fill:"currentColor"})])],-1)]),32),Ce(S("div",{onMouseenter:n[7]||(n[7]=(...o)=>e.showSkillsLibraryMenu&&e.showSkillsLibraryMenu(...o)),class:"absolute top-full left-0 mt-2 z-50 transform card p-2 flex flex-wrap gap-2 items-center shadow-lg"},[e.loading?Z("",!0):(N(),H("button",{key:0,type:"button",onClick:n[3]||(n[3]=oe((...o)=>e.addDiscussion2SkillsLibrary&&e.addDiscussion2SkillsLibrary(...o),["stop"])),title:"Add this discussion content to skills database",class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200"},n[61]||(n[61]=[S("i",{"data-feather":"plus",class:"w-5 h-5"},null,-1)]))),!e.loading&&e.$store.state.config.activate_skills_lib?(N(),H("button",{key:1,type:"button",onClick:n[4]||(n[4]=oe((...o)=>e.toggleSkillsLib&&e.toggleSkillsLib(...o),["stop"])),title:"Skills database is activated",class:"svg-button text-green-500 hover:text-green-700 dark:text-green-400 dark:hover:text-green-200"},n[62]||(n[62]=[S("i",{"data-feather":"check-circle",class:"w-5 h-5"},null,-1)]))):Z("",!0),!e.loading&&!e.$store.state.config.activate_skills_lib?(N(),H("button",{key:2,type:"button",onClick:n[5]||(n[5]=oe((...o)=>e.toggleSkillsLib&&e.toggleSkillsLib(...o),["stop"])),title:"Skills database is deactivated",class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200"},n[63]||(n[63]=[S("i",{"data-feather":"x-octagon",class:"w-5 h-5"},null,-1)]))):Z("",!0),e.loading?Z("",!0):(N(),H("button",{key:3,type:"button",onClick:n[6]||(n[6]=oe((...o)=>e.showSkillsLib&&e.showSkillsLib(...o),["stop"])),title:"Show Skills database",class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200"},n[64]||(n[64]=[S("i",{"data-feather":"book",class:"w-5 h-5"},null,-1)])))],544),[[wn,e.isSkillsLibraryMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:1,class:"relative",onMouseleave:n[22]||(n[22]=(...o)=>e.hideMenu&&e.hideMenu(...o))},[S("div",{onMouseenter:n[9]||(n[9]=(...o)=>e.showMenu&&e.showMenu(...o)),class:"menu-hover-area"},n[65]||(n[65]=[S("button",{class:"toolbar-button svg-button",title:"Toggle menu"},[S("i",{"data-feather":"menu",class:"w-5 h-5"})],-1)]),32),Ce(S("div",{onMouseenter:n[21]||(n[21]=(...o)=>e.showMenu&&e.showMenu(...o)),class:"absolute top-full left-0 mt-2 z-50 transform card p-2 flex flex-wrap gap-2 items-center shadow-lg"},[S("button",{class:Ee(["svg-button",e.isCheckbox?"text-blue-600 dark:text-blue-400 bg-blue-200 dark:bg-blue-700":"text-gray-600 dark:text-gray-300"]),title:"Edit discussion list",type:"button",onClick:n[10]||(n[10]=o=>e.isCheckbox=!e.isCheckbox)},n[66]||(n[66]=[S("i",{"data-feather":"check-square",class:"w-5 h-5"},null,-1)]),2),S("button",{class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Reset database, remove all discussions",onClick:n[11]||(n[11]=oe(()=>{},["stop"]))},n[67]||(n[67]=[S("i",{"data-feather":"trash-2",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200",title:"Export database",type:"button",onClick:n[12]||(n[12]=oe(o=>e.database_selectorDialogVisible=!0,["stop"]))},n[68]||(n[68]=[S("i",{"data-feather":"database",class:"w-5 h-5"},null,-1)])),S("div",zUn,[S("input",{type:"file",ref:"fileDialog",class:"hidden",onChange:n[13]||(n[13]=(...o)=>e.importDiscussions&&e.importDiscussions(...o))},null,544),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200 rotate-90",title:"Import discussions",type:"button",onClick:n[14]||(n[14]=oe(o=>e.$refs.fileDialog.click(),["stop"]))},n[69]||(n[69]=[S("i",{"data-feather":"log-in",class:"w-5 h-5"},null,-1)]))]),S("div",YUn,[S("input",{type:"file",ref:"bundleLoadingDialog",class:"hidden",onChange:n[15]||(n[15]=(...o)=>e.importDiscussionsBundle&&e.importDiscussionsBundle(...o))},null,544),e.showSaveConfirmation?Z("",!0):(N(),H("button",{key:0,title:"Import discussion bundle",onClick:n[16]||(n[16]=oe(o=>e.$refs.bundleLoadingDialog.click(),["stop"])),class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200"},n[70]||(n[70]=[S("i",{"data-feather":"folder",class:"w-5 h-5"},null,-1)])))]),e.loading?(N(),H("div",WUn,n[71]||(n[71]=[S("div",{role:"status"},[S("svg",{"aria-hidden":"true",class:"w-6 h-6 animate-spin text-blue-500 dark:text-blue-400",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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"})]),S("span",{class:"sr-only"},"Loading...")],-1)]))):Z("",!0),e.showSaveConfirmation?(N(),H("div",KUn,[S("button",{class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Cancel",type:"button",onClick:n[17]||(n[17]=oe(o=>e.showSaveConfirmation=!1,["stop"]))},n[72]||(n[72]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-green-500 hover:text-green-700 dark:text-green-400 dark:hover:text-green-200",title:"Confirm save changes",type:"button",onClick:n[18]||(n[18]=oe(o=>e.save_configuration(),["stop"]))},n[73]||(n[73]=[S("i",{"data-feather":"check",class:"w-5 h-5"},null,-1)]))])):Z("",!0),e.isOpen?(N(),H("div",ZUn,[S("button",{onClick:n[19]||(n[19]=(...o)=>e.importDiscussions&&e.importDiscussions(...o)),class:"link text-sm"},"LOLLMS"),S("button",{onClick:n[20]||(n[20]=(...o)=>e.importChatGPT&&e.importChatGPT(...o)),class:"link text-sm"},"ChatGPT")])):Z("",!0)],544),[[wn,e.isMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:2,class:"relative",onMouseleave:n[27]||(n[27]=(...o)=>e.hideBindingsMenu&&e.hideBindingsMenu(...o))},[S("div",{onMouseenter:n[24]||(n[24]=(...o)=>e.showBindingsMenu&&e.showBindingsMenu(...o)),class:"bindings-hover-area"},[S("button",{onClick:n[23]||(n[23]=oe(o=>e.showModelConfig(),["prevent"])),class:"w-6 h-6 block",title:e.currentBinding?e.currentBinding.name:"unknown"},[S("img",{src:e.currentBindingIcon,class:"w-full h-full rounded-full object-cover border-2 border-blue-300 dark:border-blue-600 active:scale-90 hover:border-blue-500 dark:hover:border-blue-400 hover:scale-110 hover:-translate-y-1 duration-200 transition-transform",alt:e.currentBinding?e.currentBinding.name:"Binding icon"},null,8,JUn)],8,XUn)],32),Ce(S("div",{onMouseenter:n[26]||(n[26]=(...o)=>e.showBindingsMenu&&e.showBindingsMenu(...o)),class:"absolute top-full left-0 mt-2 z-10 transform w-80 panels-color rounded-md shadow-lg ring-1 ring-blue-400 dark:ring-blue-600 ring-opacity-50 focus:outline-none transition-all duration-300 ease-out"},[S("div",eqn,[Ce(S("input",{type:"text","onUpdate:modelValue":n[25]||(n[25]=o=>e.bindingSearchQuery=o),placeholder:"Search bindings...",class:"w-full input input-sm"},null,512),[[Je,e.bindingSearchQuery]])]),S("div",tqn,[(N(!0),H(Ae,null,Ue(e.filteredBindings,(o,r)=>(N(),H("div",{key:r,class:"relative group/item flex flex-col items-center"},[S("button",{onClick:oe(i=>e.setBinding(o),["prevent"]),title:o.name,class:Ee(o.name==e.binding_name?"border-blue-500 dark:border-blue-400":"border-transparent hover:border-blue-300 dark:hover:border-blue-500")},[S("img",{src:o.icon?o.icon:vt(z1),alt:o.name,class:"w-full h-full object-cover"},null,8,rqn)],10,nqn),S("div",iqn,[S("span",{class:"text-xs font-medium mb-1 block text-blue-800 dark:text-blue-100 cursor-pointer",onClick:oe(i=>e.setBinding(o),["prevent"])},J(o.name),9,oqn),S("div",sqn,[S("button",{onClick:oe(i=>e.showModelConfig(o),["prevent"]),class:"p-1 btn-secondary btn-sm rounded-full hover:scale-110 transition-transform duration-150",title:"Configure Binding"},n[74]||(n[74]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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"}),S("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,aqn)])])]))),128))])],544),[[wn,e.isBindingsMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:3,class:"relative",onMouseleave:n[32]||(n[32]=(...o)=>e.hideModelsMenu&&e.hideModelsMenu(...o))},[S("div",{onMouseenter:n[29]||(n[29]=(...o)=>e.showModelsMenu&&e.showModelsMenu(...o)),class:"models-hover-area"},[S("button",{onClick:n[28]||(n[28]=oe(o=>e.copyModelName(),["prevent"])),class:"w-6 h-6 block",title:e.currentModel?e.currentModel.name:"unknown"},[S("img",{src:e.currentModelIcon,class:"w-full h-full rounded-full object-cover border-2 border-blue-300 dark:border-blue-600 active:scale-90 hover:border-blue-500 dark:hover:border-blue-400 hover:scale-110 hover:-translate-y-1 duration-200 transition-transform",alt:e.currentModel?e.currentModel.name:"Model icon"},null,8,cqn)],8,lqn)],32),Ce(S("div",{onMouseenter:n[31]||(n[31]=(...o)=>e.showModelsMenu&&e.showModelsMenu(...o)),class:"absolute top-full left-0 mt-2 z-10 transform w-80 panels-color rounded-md shadow-lg ring-1 ring-blue-400 dark:ring-blue-600 ring-opacity-50 focus:outline-none transition-all duration-300 ease-out"},[S("div",uqn,[Ce(S("input",{type:"text","onUpdate:modelValue":n[30]||(n[30]=o=>e.modelSearchQuery=o),placeholder:"Search models...",class:"w-full input input-sm"},null,512),[[Je,e.modelSearchQuery]])]),S("div",dqn,[(N(!0),H(Ae,null,Ue(e.filteredModels,(o,r)=>(N(),H("div",{key:r,class:"relative group/item flex flex-col items-center"},[S("button",{onClick:oe(i=>e.setModel(o),["prevent"]),title:o.name,class:Ee(["w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-110 focus:outline-none border-2 mb-1",o.name==e.model_name?"border-blue-500 dark:border-blue-400":"border-transparent hover:border-blue-300 dark:hover:border-blue-500"])},[S("img",{src:o.icon?o.icon:vt(z1),alt:o.name,class:"w-full h-full object-cover"},null,8,fqn)],10,Tqn),S("div",pqn,[S("span",{class:"text-xs font-medium mb-1 block text-blue-800 dark:text-blue-100 cursor-pointer",onClick:oe(i=>e.setModel(o),["prevent"])},J(o.name),9,hqn),S("div",mqn,[S("button",{onClick:oe(i=>e.copyModelNameFrom(o.name),["prevent"]),class:"p-1 btn-secondary btn-sm rounded-full hover:scale-110 transition-transform duration-150",title:"Copy Model Name"},n[75]||(n[75]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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,gqn)])])]))),128))])],544),[[wn,e.isModelsMenuVisible]])],32)),e.loading?Z("",!0):(N(),H("div",{key:4,class:"relative",onMouseleave:n[36]||(n[36]=(...o)=>e.hidePersonalitiesMenu&&e.hidePersonalitiesMenu(...o))},[S("div",_qn,[S("div",{onMouseenter:n[33]||(n[33]=(...o)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...o)),class:"personalities-hover-area"},[ne(Zk,{ref:"mountedPers",onShowPersList:e.onShowPersListFun,onReady:e.onPersonalitiesReadyFun},null,8,["onShowPersList","onReady"])],32)]),Ce(S("div",{onMouseenter:n[35]||(n[35]=(...o)=>e.showPersonalitiesMenu&&e.showPersonalitiesMenu(...o)),class:"absolute top-full left-0 mt-2 z-10 transform w-80 panels-color rounded-md shadow-lg ring-1 ring-blue-400 dark:ring-blue-600 ring-opacity-50 focus:outline-none transition-all duration-300 ease-out"},[S("div",Qqn,[Ce(S("input",{type:"text","onUpdate:modelValue":n[34]||(n[34]=o=>e.personalitySearchQuery=o),placeholder:"Search personalities...",class:"w-full input input-sm"},null,512),[[Je,e.personalitySearchQuery]])]),S("div",vqn,[(N(!0),H(Ae,null,Ue(e.filteredPersonalities,(o,r)=>(N(),H("div",{key:r,class:"relative group/item flex flex-col items-center"},[S("button",{onClick:oe(i=>e.onPersonalitySelected(o),["prevent"]),title:o.name,class:Ee(["w-12 h-12 rounded-md overflow-hidden transition-transform duration-200 transform group-hover/item:scale-110 focus:outline-none border-2 mb-1",e.$store.state.active_personality_id==e.$store.state.personalities.indexOf(o.full_path)?"border-blue-500 dark:border-blue-400":"border-transparent hover:border-blue-300 dark:hover:border-blue-500"])},[S("img",{src:o.avatar,alt:o.name,class:"w-full h-full object-cover"},null,8,bqn)],10,yqn),S("div",Eqn,[S("span",{class:"text-xs font-medium mb-1 block text-blue-800 dark:text-blue-100 cursor-pointer",onClick:oe(i=>e.onPersonalitySelected(o),["prevent"])},J(o.name),9,Sqn),S("div",xqn,[S("button",{onClick:oe(i=>e.unmountPersonality(o),["prevent"]),class:"p-1 bg-red-500 rounded-full text-white hover:bg-red-600 focus:outline-none btn-sm hover:scale-110 transition-transform duration-150",title:"Unmount"},n[76]||(n[76]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]),8,Lqn),S("button",{onClick:oe(i=>e.remount_personality(o),["prevent"]),class:"p-1 btn-secondary btn-sm rounded-full hover:scale-110 transition-transform duration-150",title:"Remount"},n[77]||(n[77]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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,Cqn),S("button",{onClick:oe(i=>e.handleOnTalk(o),["prevent"]),class:"p-1 bg-green-500 rounded-full text-white hover:bg-green-600 focus:outline-none btn-sm hover:scale-110 transition-transform duration-150",title:"Talk"},n[78]||(n[78]=[S("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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,Aqn)])])]))),128))])],544),[[wn,e.isPersonalitiesMenuVisible]])],32))])]),S("div",wqn,[S("form",{onSubmit:n[39]||(n[39]=oe((...o)=>e.handleSearch&&e.handleSearch(...o),["prevent"])),class:"relative"},[S("div",Oqn,[S("div",Mqn,[Ce(S("input",{type:"search",id:"default-search",class:"block w-full h-8 pl-8 pr-10 text-sm input",placeholder:"Search discussions...",title:"Filter discussions by title","onUpdate:modelValue":n[37]||(n[37]=o=>e.filterTitle=o),onKeyup:n[38]||(n[38]=Qn((...o)=>e.handleSearch&&e.handleSearch(...o),["enter"]))},null,544),[[Je,e.filterTitle]]),n[79]||(n[79]=S("div",{class:"absolute left-2 top-1/2 -translate-y-1/2 pointer-events-none"},[S("i",{"data-feather":"search",class:"w-4 h-4 text-gray-400 dark:text-gray-500"})],-1)),n[80]||(n[80]=S("button",{type:"submit",class:"absolute right-2 top-1/2 -translate-y-1/2 svg-button p-1",title:"Search"},[S("i",{"data-feather":"arrow-right",class:"w-4 h-4"})],-1))])])],32)]),e.isCheckbox?(N(),H("div",Rqn,[S("div",Nqn,[e.selectedDiscussions.length>0?(N(),H("p",Dqn,"Selected: "+J(e.selectedDiscussions.length),1)):Z("",!0),e.selectedDiscussions.length>0?(N(),H("div",Iqn,[e.showConfirmation?Z("",!0):(N(),H("button",{key:0,class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Remove selected",type:"button",onClick:n[40]||(n[40]=oe(o=>e.showConfirmation=!0,["stop"]))},n[81]||(n[81]=[S("i",{"data-feather":"trash",class:"w-5 h-5"},null,-1)]))),e.showConfirmation?(N(),H("div",kqn,[S("button",{class:"svg-button text-green-500 hover:text-green-700 dark:text-green-400 dark:hover:text-green-200",title:"Confirm removal",type:"button",onClick:n[41]||(n[41]=oe((...o)=>e.deleteDiscussionMulti&&e.deleteDiscussionMulti(...o),["stop"]))},n[82]||(n[82]=[S("i",{"data-feather":"check",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200",title:"Cancel removal",type:"button",onClick:n[42]||(n[42]=oe(o=>e.showConfirmation=!1,["stop"]))},n[83]||(n[83]=[S("i",{"data-feather":"x",class:"w-5 h-5"},null,-1)]))])):Z("",!0)])):Z("",!0),S("div",Hqn,[S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200 rotate-90",title:"Export selected to a json file",type:"button",onClick:n[43]||(n[43]=oe((...o)=>e.exportDiscussionsAsJson&&e.exportDiscussionsAsJson(...o),["stop"]))},n[84]||(n[84]=[S("i",{"data-feather":"codepen",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200 rotate-90",title:"Export selected to a folder",type:"button",onClick:n[44]||(n[44]=oe((...o)=>e.exportDiscussions&&e.exportDiscussions(...o),["stop"]))},n[85]||(n[85]=[S("i",{"data-feather":"folder",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200",title:"Export selected to a markdown file",type:"button",onClick:n[45]||(n[45]=oe((...o)=>e.exportDiscussionsAsMarkdown&&e.exportDiscussionsAsMarkdown(...o),["stop"]))},n[86]||(n[86]=[S("i",{"data-feather":"bookmark",class:"w-5 h-5"},null,-1)])),S("button",{class:"svg-button text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200",title:"Select All",type:"button",onClick:n[46]||(n[46]=oe((...o)=>e.selectAllDiscussions&&e.selectAllDiscussions(...o),["stop"]))},n[87]||(n[87]=[S("i",{"data-feather":"list",class:"w-5 h-5"},null,-1)]))])])])):Z("",!0),S("div",{id:"leftPanel",class:"flex flex-col flex-grow overflow-y-scroll overflow-x-hidden scrollbar",onDragover:n[47]||(n[47]=oe(o=>e.setDropZoneDiscussion(),["stop","prevent"]))},[S("div",Pqn,[S("div",{class:Ee(["mx-0 flex flex-col flex-grow w-full",e.isDragOverDiscussion?"pointer-events-none opacity-50":""])},[S("div",{id:"dis-list",class:Ee([e.filterInProgress?"opacity-20 pointer-events-none":"","flex flex-col flex-grow w-full pb-80"])},[e.discussionsList.length>0?(N(),it(O2,{key:0,name:"discussionsList"},{default:je(()=>[(N(!0),H(Ae,null,Ue(e.discussionsList,(o,r)=>(N(),it(xh,{key:o.id,id:o.id,title:o.title,selected:e.currentDiscussion.id==o.id,loading:o.loading,isCheckbox:e.isCheckbox,checkBoxValue:o.checkBoxValue,openfolder_enabled:!0,onSelect:i=>e.selectDiscussion(o),onDelete:i=>e.deleteDiscussion(o.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})):Z("",!0),e.discussionsList.length<1?(N(),H("div",$qn,n[88]||(n[88]=[S("p",null,"No discussions found.",-1)]))):Z("",!0)],2)],2)])],32),S("div",Vqn,[S("div",{class:"chat-bar text-center flex items-center justify-center w-full",onClick:n[48]||(n[48]=(...o)=>e.showDatabaseSelector&&e.showDatabaseSelector(...o))},[n[89]||(n[89]=S("button",{class:"svg-button"},[S("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:"w-5 h-5 mr-2"},[S("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),S("path",{d:"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"}),S("path",{d:"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"})])],-1)),S("p",Bqn,J(e.formatted_database_name.replace("_"," ")),1)])])])):Z("",!0)]),_:1}),e.isReady?(N(),H("div",Fqn,[S("div",{id:"messages-list",class:Ee(["w-full z-0 flex flex-col flex-grow overflow-y-auto scrollbar",e.isDragOverChat?"pointer-events-none opacity-50":""])},[S("div",Uqn,[e.discussionArr.length>0?(N(),it(O2,{key:0,name:"list"},{default:je(()=>[(N(!0),H(Ae,null,Ue(e.discussionArr,(o,r)=>(N(),it(Ik,{key:o.id,message:o,id:"msg-"+o.id,ref_for:!0,ref:"msg-"+o.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(o.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(),H("div",qqn,[n[94]||(n[94]=S("h2",{class:"text-2xl font-bold mb-4 text-blue-700 dark:text-blue-200 border-b border-blue-300 dark:border-blue-600 pb-2"},"Prompt Examples",-1)),S("div",Gqn,[S("div",jqn,[(N(!0),H(Ae,null,Ue(e.personality.prompts_list,(o,r)=>(N(),H("div",{title:e.extractTitle(o),key:r,onClick:i=>e.handlePromptSelection(o),class:"flex-shrink-0 w-[300px] card hover:shadow-xl transition-all duration-300 ease-in-out transform hover:scale-105 flex flex-col justify-between min-h-[200px] group p-4"},[S("div",Yqn,[S("h3",{class:"font-semibold text-lg text-blue-800 dark:text-blue-100 mb-1 truncate",title:e.extractTitle(o)},J(e.extractTitle(o)),9,Wqn),S("div",{title:o,class:"text-sm text-blue-700 dark:text-blue-300 overflow-hidden line-clamp-4 leading-relaxed"},J(e.getPromptContent(o)),9,Kqn)]),n[90]||(n[90]=S("div",{class:"mt-3 text-xs font-medium link opacity-0 group-hover:opacity-100 transition-opacity duration-300"}," Click to select ",-1))],8,zqn))),128))])]),e.showPlaceholderModal?(N(),H("div",Zqn,[S("div",Xqn,[n[93]||(n[93]=S("h3",{class:"text-lg font-semibold p-4 border-b border-blue-200 dark:border-blue-700 text-blue-800 dark:text-blue-100"},"Fill in the placeholders",-1)),S("div",Jqn,[S("div",eGn,[n[91]||(n[91]=S("h4",{class:"label !mb-1"},"Live Preview:",-1)),S("div",tGn,[S("span",nGn,J(e.getPromptContent(e.previewPrompt)),1)])]),S("div",rGn,[(N(!0),H(Ae,null,Ue(e.parsedPlaceholders,(o,r)=>(N(),H("div",{key:o.fullText,class:"flex flex-col"},[S("label",{for:"placeholder-"+r,class:"label"},J(o.label),9,iGn),o.type==="text"?Ce((N(),H("input",{key:0,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,type:"text",class:"input",placeholder:o.label,onInput:n[49]||(n[49]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,oGn)),[[Je,e.placeholderValues[r]]]):Z("",!0),o.type==="int"?Ce((N(),H("input",{key:1,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,type:"number",step:"1",class:"input",onInput:n[50]||(n[50]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,sGn)),[[Je,e.placeholderValues[r],void 0,{number:!0}]]):Z("",!0),o.type==="float"?Ce((N(),H("input",{key:2,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,type:"number",step:"0.01",class:"input",onInput:n[51]||(n[51]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,aGn)),[[Je,e.placeholderValues[r],void 0,{number:!0}]]):Z("",!0),o.type==="multiline"?Ce((N(),H("textarea",{key:3,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,rows:"4",class:"input",onInput:n[52]||(n[52]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,lGn)),[[Je,e.placeholderValues[r]]]):Z("",!0),o.type==="code"?(N(),H("div",cGn,[S("div",uGn,J(o.language||"Plain text"),1),Ce(S("textarea",{id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,rows:"6",class:"w-full p-2 font-mono bg-blue-50 dark:bg-blue-900 border-t border-blue-300 dark:border-blue-600 text-sm",onInput:n[53]||(n[53]=(...i)=>e.updatePreview&&e.updatePreview(...i))},null,40,dGn),[[Je,e.placeholderValues[r]]])])):Z("",!0),o.type==="options"?Ce((N(),H("select",{key:5,id:"placeholder-"+r,"onUpdate:modelValue":i=>e.placeholderValues[r]=i,class:"input",onChange:n[54]||(n[54]=(...i)=>e.updatePreview&&e.updatePreview(...i))},[n[92]||(n[92]=S("option",{value:"",disabled:""},"Select an option",-1)),(N(!0),H(Ae,null,Ue(o.options,i=>(N(),H("option",{key:i,value:i,class:"text-blue-900 dark:text-blue-100 bg-blue-100 dark:bg-blue-800"},J(i),9,fGn))),128))],40,TGn)),[[Ir,e.placeholderValues[r]]]):Z("",!0)]))),128))])]),S("div",pGn,[S("button",{onClick:n[55]||(n[55]=(...o)=>e.cancelPlaceholders&&e.cancelPlaceholders(...o)),class:"btn btn-secondary"}," Cancel "),S("button",{onClick:n[56]||(n[56]=(...o)=>e.applyPlaceholders&&e.applyPlaceholders(...o)),class:"btn btn-primary"}," Apply ")])])])):Z("",!0)])):Z("",!0)]),_:1})):Z("",!0),e.currentDiscussion.id?Z("",!0):(N(),it(Hk,{key:1})),n[95]||(n[95]=S("div",{class:"h-40"},null,-1))]),n[96]||(n[96]=S("div",{class:"sticky bottom-0 left-0 right-0 h-48 pointer-events-none bg-gradient-to-t from-blue-100 to-transparent dark:from-blue-900 z-10"},null,-1))],2),e.currentDiscussion.id?(N(),H("div",hGn,[ne(kk,{ref:"chatBox",loading:e.isGenerating,discussionList:e.discussionArr,"on-show-toast-message":e.showToastMessage,"on-talk":e.talk,class:"toolbar-color p-2",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"])])):Z("",!0)])):Z("",!0),ne(Tr,{name:"slide-left"},{default:je(()=>[e.showRightPanel?(N(),H("div",mGn,[S("div",gGn,null,512)])):Z("",!0)]),_:1}),ne(Sh,{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"]),Ce(S("div",_Gn,[ne(sh,{ref:"progress",progress:e.progress_value,class:"w-full h-3 mb-2"},null,8,["progress"]),S("p",QGn,J(e.loading_infos)+" ...",1)],512),[[wn,e.progress_visibility]]),ne(Wk,{ref:"personality_editor",config:e.currentPersonConfig,personality:e.selectedPersonality},null,8,["config","personality"]),S("div",vGn,[ne(Kk,{ref:"news"},null,512)]),ne(Nk,{ref:"skills_lib"},null,512),ne(Xk)],64))}}),SGn=ze(EGn,[["__scopeId","data-v-9b0751f8"]]);let P6;const xGn=new Uint8Array(16);function LGn(){if(!P6&&(P6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!P6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return P6(xGn)}const Jn=[];for(let t=0;t<256;++t)Jn.push((t+256).toString(16).slice(1));function CGn(t,e=0){return Jn[t[e+0]]+Jn[t[e+1]]+Jn[t[e+2]]+Jn[t[e+3]]+"-"+Jn[t[e+4]]+Jn[t[e+5]]+"-"+Jn[t[e+6]]+Jn[t[e+7]]+"-"+Jn[t[e+8]]+Jn[t[e+9]]+"-"+Jn[t[e+10]]+Jn[t[e+11]]+Jn[t[e+12]]+Jn[t[e+13]]+Jn[t[e+14]]+Jn[t[e+15]]}const AGn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),FO={randomUUID:AGn};function Q1(t,e,n){if(FO.randomUUID&&!t)return FO.randomUUID();t=t||{};const o=t.random||(t.rng||LGn)();return o[6]=o[6]&15|64,o[8]=o[8]&63|128,CGn(o)}class A2{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 o=this._listeners.indexOf(n);o>=0&&this._listeners.splice(o,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 o=this.proxies.indexOf(n);o>=0&&this.proxies.splice(o,1)}}class en extends A2{constructor(e){super(),this.entity=e}emit(e){this.listeners.forEach(n=>n(e,this.entity))}}class dr extends A2{constructor(e){super(),this.entity=e}emit(e){let n=!1;const o=()=>[n=!0];for(const r of Array.from(this.listeners.values()))if(r(e,o,this.entity),n)return{prevented:!0};return{prevented:!1}}}class Jk extends A2{execute(e,n){let o=e;for(const r of this.listeners)o=r(o,n);return o}}class Ai extends Jk{constructor(e){super(),this.entity=e}execute(e){return super.execute(e,this.entity)}}class AGn extends A2{constructor(e){super(),this.entity=e}execute(e){const n=[];for(const o of this.listeners)n.push(o(e,this.entity));return n}}function Jo(){const t=Symbol(),e=new Map,n=new Set,o=(l,c)=>{c instanceof A2&&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:[]})},r=l=>{const c=new A2;e.set(l,c),n.forEach(u=>o(l,u[l]))},i=l=>{n.add(l);for(const c of e.keys())o(c,l[c])},s=l=>{for(const c of e.keys())l[c]instanceof A2&&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)||r(c),e.get(c))}})}class UO{constructor(e,n){if(this.destructed=!1,this.events={destruct:new en(this)},!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Q1(),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 eH{constructor(e,n){if(!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Q1(),this.from=e,this.to=n}}function Vf(t,e){return Object.fromEntries(Object.entries(t).map(([n,o])=>[n,e(o)]))}class tH{constructor(){this._title="",this.id=Q1(),this.events={loaded:new en(this),beforeAddInput:new dr(this),addInput:new en(this),beforeRemoveInput:new dr(this),removeInput:new en(this),beforeAddOutput:new dr(this),addOutput:new en(this),beforeRemoveOutput:new dr(this),removeOutput:new en(this),beforeTitleChanged:new dr(this),titleChanged:new en(this),update:new en(this)},this.hooks={beforeLoad:new Ai(this),afterSave:new Ai(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,o])=>{this.inputs[n]&&(this.inputs[n].load(o),this.inputs[n].nodeId=this.id)}),Object.entries(e.outputs).forEach(([n,o])=>{this.outputs[n]&&(this.outputs[n].load(o),this.outputs[n].nodeId=this.id)}),this.events.loaded.emit(this)}save(){const e=Vf(this.inputs,r=>r.save()),n=Vf(this.outputs,r=>r.save()),o={type:this.type,id:this.id,title:this.title,inputs:e,outputs:n};return this.hooks.afterSave.execute(o)}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,o){o.isInput=e==="input",o.nodeId=this.id,o.events.setValue.subscribe(this,()=>this.events.update.emit({type:e,name:n,intf:o}))}addInterface(e,n,o){const r=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 r.emit(o).prevented?!1:(s[n]=o,this.initializeIntf(e,n,o),i.emit(o),!0)}removeInterface(e,n){const o=e==="input"?this.events.beforeRemoveInput:this.events.beforeRemoveOutput,r=e==="input"?this.events.removeInput:this.events.removeOutput,i=e==="input"?this.inputs[n]:this.outputs[n];if(!i||o.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],r.emit(i),!0}}let nH=class extends tH{load(e){super.load(e)}save(){return super.save()}};function Gl(t){return class extends nH{constructor(){var e,n;super(),this.type=t.type,this.inputs={},this.outputs={},this.calculate=t.calculate?(o,r)=>t.calculate.call(this,o,r):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(o=>{const r=n[o]();e==="input"?this.addInput(o,r):this.addOutput(o,r)})}}}class mn{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=Q1(),this.nodeId="",this.port=!0,this.hidden=!1,this.events={setConnectionCount:new en(this),beforeSetValue:new dr(this),setValue:new en(this),updated:new en(this)},this.hooks={load:new Ai(this),save:new Ai(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 Al="__baklava_SubgraphInputNode",wl="__baklava_SubgraphOutputNode";class rH extends nH{constructor(){super(),this.graphInterfaceId=Q1()}onPlaced(){super.onPlaced(),this.initializeIo()}save(){return{...super.save(),graphInterfaceId:this.graphInterfaceId}}load(e){super.load(e),this.graphInterfaceId=e.graphInterfaceId}}class Hh extends rH{constructor(){super(...arguments),this.type=Al,this.inputs={name:new mn("Name","Input")},this.outputs={placeholder:new mn("Value",void 0)}}static isGraphInputNode(e){return e.type===Al}}class Ph extends rH{constructor(){super(...arguments),this.type=wl,this.inputs={name:new mn("Name","Output"),placeholder:new mn("Value",void 0)},this.outputs={output:new mn("Output",void 0).setHidden(!0)},this.calculate=({placeholder:e})=>({output:e})}static isGraphOutputNode(e){return e.type===wl}}class r6{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===Al).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===wl).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Q1(),this.activeTransactions=0,this._nodes=[],this._connections=[],this._loading=!1,this._destroying=!1,this.events={beforeAddNode:new dr(this),addNode:new en(this),beforeRemoveNode:new dr(this),removeNode:new en(this),beforeAddConnection:new dr(this),addConnection:new en(this),checkConnection:new dr(this),beforeRemoveConnection:new dr(this),removeConnection:new en(this)},this.hooks={save:new Ai(this),load:new Ai(this),checkConnection:new AGn(this)},this.nodeEvents=Jo(),this.nodeHooks=Jo(),this.connectionEvents=Jo(),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(o=>n.includes(o.from)||n.includes(o.to)).forEach(o=>this.removeConnection(o)),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 o=this.checkConnection(e,n);if(!o.connectionAllowed||this.events.beforeAddConnection.emit({from:e,to:n}).prevented)return;for(const i of o.connectionsInDanger){const s=this.connections.find(a=>a.id===i.id);s&&this.removeConnection(s)}const r=new UO(o.dummyConnection.from,o.dummyConnection.to);return this.internalAddConnection(r),r}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 o=this.findNodeById(e.nodeId),r=this.findNodeById(n.nodeId);if(o&&r&&o===r)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 eH(e,n),connectionsInDanger:s}}findNodeInterface(e){for(const n of this.nodes){for(const o in n.inputs){const r=n.inputs[o];if(r.id===e)return r}for(const o in n.outputs){const r=n.outputs[o];if(r.id===e)return r}}}findNodeById(e){return this.nodes.find(n=>n.id===e)}load(e){try{this._loading=!0;const n=[];for(let o=this.connections.length-1;o>=0;o--)this.removeConnection(this.connections[o]);for(let o=this.nodes.length-1;o>=0;o--)this.removeNode(this.nodes[o]);this.id=e.id;for(const o of e.nodes){const r=this.editor.nodeTypes.get(o.type);if(!r){n.push(`Node type ${o.type} is not registered`);continue}const i=new r.type;this.addNode(i),i.load(o)}for(const o of e.connections){const r=this.findNodeInterface(o.from),i=this.findNodeInterface(o.to);if(r)if(i){const s=new UO(r,i);s.id=o.id,this.internalAddConnection(s)}else{n.push(`Could not find interface with id ${o.to}`);continue}else{n.push(`Could not find interface with id ${o.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 kc="__baklava_GraphNode-";function Ol(t){return kc+t.id}const wGn=["component","connectionCount","events","hidden","hooks","id","isInput","name","nodeId","port","templateId","value"];function OGn(t){return class extends tH{constructor(){super(...arguments),this.type=Ol(t),this.inputs={},this.outputs={},this.template=t,this.calculate=async(n,o)=>{var r;if(!this.subgraph)throw new Error(`GraphNode ${this.id}: calculate called without subgraph being initialized`);if(!o.engine||typeof o.engine!="object")throw new Error(`GraphNode ${this.id}: calculate called but no engine provided in context`);const i=o.engine.getInputValues(this.subgraph);for(const l of this.subgraph.inputs)i.set(l.nodeInterfaceId,n[l.id]);const s=await o.engine.runGraph(this.subgraph,i,o.globalValues),a={};for(const l of this.subgraph.outputs)a[l.id]=(r=s.get(l.nodeId))===null||r===void 0?void 0:r.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(o=>o.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(o=>o.id===n)||this.removeOutput(n);this.addOutput("_calculationResults",new mn("_calculationResults",void 0).setHidden(!0))}createProxyInterface(n,o){const r=new mn(n.name,void 0);return new Proxy(r,{get:(i,s)=>{var a,l,c;if(wGn.includes(s)||s in i||typeof s=="string"&&s.startsWith("__v_"))return Reflect.get(i,s);let u;if(o){const T=(a=this.subgraph)===null||a===void 0?void 0:a.nodes.find(h=>Hh.isGraphInputNode(h)&&h.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(h=>Ph.isGraphOutputNode(h)&&h.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 h;return u===((h=o?T.from:T.to)===null||h===void 0?void 0:h.id)}),f=o?d==null?void 0:d.to:d==null?void 0:d.from;if(f)return Reflect.get(f,s)}})}}}class S5{static fromGraph(e,n){return new S5(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(Ol(this));n&&(n.title=e)}get inputs(){return this.nodes.filter(n=>n.type===Al).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===wl).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Q1(),this._name="Subgraph",this.events={nameChanged:new en(this),updated:new en(this)},this.hooks={beforeLoad:new Ai(this),afterSave:new Ai(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,o=f=>{const T=Q1();return n.set(f,T),T},r=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=>Vf(f,T=>({id:o(T.id),templateId:T.id,value:T.value})),s=this.nodes.map(f=>({...f,id:o(f.id),inputs:i(f.inputs),outputs:i(f.outputs)})),a=this.connections.map(f=>({id:o(f.id),from:r(f.from),to:r(f.to)})),l=this.inputs.map(f=>({id:f.id,name:f.name,nodeId:r(f.nodeId),nodeInterfaceId:r(f.nodeInterfaceId)})),c=this.outputs.map(f=>({id:f.id,name:f.name,nodeId:r(f.nodeId),nodeInterfaceId:r(f.nodeInterfaceId)})),u={id:Q1(),nodes:s,connections:a,inputs:l,outputs:c};return e||(e=new r6(this.editor)),e.load(u).forEach(f=>console.warn(f)),e.template=this,e}}class MGn{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 en(this),beforeRegisterNodeType:new dr(this),registerNodeType:new en(this),beforeUnregisterNodeType:new dr(this),unregisterNodeType:new en(this),beforeAddGraphTemplate:new dr(this),addGraphTemplate:new en(this),beforeRemoveGraphTemplate:new dr(this),removeGraphTemplate:new en(this),registerGraph:new en(this),unregisterGraph:new en(this)},this.hooks={save:new Ai(this),load:new Ai(this)},this.graphTemplateEvents=Jo(),this.graphTemplateHooks=Jo(),this.graphEvents=Jo(),this.graphHooks=Jo(),this.nodeEvents=Jo(),this.nodeHooks=Jo(),this.connectionEvents=Jo(),this._graphs=new Set,this._nodeTypes=new Map,this._graph=new r6(this),this._graphTemplates=[],this._loading=!1,this.registerNodeType(Hh),this.registerNodeType(Ph)}registerNodeType(e,n){var o,r;if(this.events.beforeRegisterNodeType.emit({type:e,options:n}).prevented)return;const i=new e;this._nodeTypes.set(i.type,{type:e,category:(o=n==null?void 0:n.category)!==null&&o!==void 0?o:"default",title:(r=n==null?void 0:n.title)!==null&&r!==void 0?r: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=OGn(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=Ol(e);for(const o of[this.graph,...this.graphs.values()]){const r=o.nodes.filter(i=>i.type===n);for(const i of r)o.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(o=>{const r=new S5(o,this);this.addGraphTemplate(r)});const n=this._graph.load(e.graph);return this.events.loaded.emit(),n.forEach(o=>console.warn(o)),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 RGn(t,e){const n=new Map;e.graphs.forEach(o=>{o.nodes.forEach(r=>n.set(r.id,r))}),t.forEach((o,r)=>{const i=n.get(r);i&&o.forEach((s,a)=>{const l=i.outputs[a];l&&(l.value=s)})})}class iH extends Error{constructor(){super("Cycle detected")}}function NGn(t){return typeof t=="string"}function oH(t,e){const n=new Map,o=new Map,r=new Map;let i,s;if(t instanceof r6)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(NGn));o.set(c.id,d),r.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=o.get(c.id);for(;u.size>0;){const d=u.values().next().value;if(u.delete(d),Array.from(o.values()).every(f=>!f.has(d))){const f=i.find(T=>T.id===d);a.push(f)}}}if(Array.from(o.values()).some(c=>c.size>0))throw new iH;return{calculationOrder:l,connectionsFromNode:r,interfaceIdToNodeId:n}}function DGn(t,e){try{return oH(t,e),!1}catch(n){if(n instanceof iH)return!0;throw n}}var Fr;(function(t){t.Running="Running",t.Idle="Idle",t.Paused="Paused",t.Stopped="Stopped"})(Fr||(Fr={}));class IGn{get status(){return this.isRunning?Fr.Running:this.internalStatus}constructor(e){this.editor=e,this.events={beforeRun:new dr(this),afterRun:new en(this),statusChange:new en(this),beforeNodeCalculation:new en(this),afterNodeCalculation:new en(this)},this.hooks={gatherCalculationData:new Ai(this),transferData:new Jk},this.recalculateOrder=!0,this.internalStatus=Fr.Stopped,this.isRunning=!1,this.editor.nodeEvents.update.subscribe(this,(n,o)=>{o.graph&&!o.graph.loading&&o.graph.activeTransactions===0&&this.internalOnChange(o,n??void 0)}),this.editor.graphEvents.addNode.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeNode.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.addConnection.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeConnection.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphHooks.checkConnection.subscribe(this,n=>this.checkConnection(n.from,n.to))}start(){this.internalStatus===Fr.Stopped&&(this.internalStatus=Fr.Idle,this.events.statusChange.emit(this.status))}pause(){this.internalStatus===Fr.Idle&&(this.internalStatus=Fr.Paused,this.events.statusChange.emit(this.status))}resume(){this.internalStatus===Fr.Paused&&(this.internalStatus=Fr.Idle,this.events.statusChange.emit(this.status))}stop(){(this.internalStatus===Fr.Idle||this.internalStatus===Fr.Paused)&&(this.internalStatus=Fr.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 o=await this.execute(e,...n);return this.events.afterRun.emit(o),o}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 o=new eH(e,n);let r=this.editor.graph.connections.slice();return n.allowMultipleConnections||(r=r.filter(i=>i.to!==n)),r.push(o),DGn(this.editor.graph.nodes,r)?{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(o=>{if(!(o in n))throw new Error(`Calculation return value from node ${e.id} (type ${e.type}) is missing key "${o}"`)})}internalOnChange(e,n){this.internalStatus===Fr.Idle&&this.onChange(this.recalculateOrder,e,n)}findInterfaceByTemplateId(e,n){for(const o of e)for(const r of[...Object.values(o.inputs),...Object.values(o.outputs)])if(r.templateId===n)return r;return null}}class kGn extends IGn{constructor(e){super(e),this.order=new Map}start(){super.start(),this.recalculateOrder=!0,this.calculateWithoutData()}async runGraph(e,n,o){this.order.has(e.id)||this.order.set(e.id,oH(e));const{calculationOrder:r,connectionsFromNode:i}=this.order.get(e.id),s=new Map;for(const a of r){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:o,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(([,h])=>h.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 o=this.proxies.indexOf(n);o>=0&&this.proxies.splice(o,1)}}class en extends A2{constructor(e){super(),this.entity=e}emit(e){this.listeners.forEach(n=>n(e,this.entity))}}class dr extends A2{constructor(e){super(),this.entity=e}emit(e){let n=!1;const o=()=>[n=!0];for(const r of Array.from(this.listeners.values()))if(r(e,o,this.entity),n)return{prevented:!0};return{prevented:!1}}}class Jk extends A2{execute(e,n){let o=e;for(const r of this.listeners)o=r(o,n);return o}}class Ai extends Jk{constructor(e){super(),this.entity=e}execute(e){return super.execute(e,this.entity)}}class wGn extends A2{constructor(e){super(),this.entity=e}execute(e){const n=[];for(const o of this.listeners)n.push(o(e,this.entity));return n}}function Jo(){const t=Symbol(),e=new Map,n=new Set,o=(l,c)=>{c instanceof A2&&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:[]})},r=l=>{const c=new A2;e.set(l,c),n.forEach(u=>o(l,u[l]))},i=l=>{n.add(l);for(const c of e.keys())o(c,l[c])},s=l=>{for(const c of e.keys())l[c]instanceof A2&&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)||r(c),e.get(c))}})}class UO{constructor(e,n){if(this.destructed=!1,this.events={destruct:new en(this)},!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Q1(),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 eH{constructor(e,n){if(!e||!n)throw new Error("Cannot initialize connection with null/undefined for 'from' or 'to' values");this.id=Q1(),this.from=e,this.to=n}}function Vf(t,e){return Object.fromEntries(Object.entries(t).map(([n,o])=>[n,e(o)]))}class tH{constructor(){this._title="",this.id=Q1(),this.events={loaded:new en(this),beforeAddInput:new dr(this),addInput:new en(this),beforeRemoveInput:new dr(this),removeInput:new en(this),beforeAddOutput:new dr(this),addOutput:new en(this),beforeRemoveOutput:new dr(this),removeOutput:new en(this),beforeTitleChanged:new dr(this),titleChanged:new en(this),update:new en(this)},this.hooks={beforeLoad:new Ai(this),afterSave:new Ai(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,o])=>{this.inputs[n]&&(this.inputs[n].load(o),this.inputs[n].nodeId=this.id)}),Object.entries(e.outputs).forEach(([n,o])=>{this.outputs[n]&&(this.outputs[n].load(o),this.outputs[n].nodeId=this.id)}),this.events.loaded.emit(this)}save(){const e=Vf(this.inputs,r=>r.save()),n=Vf(this.outputs,r=>r.save()),o={type:this.type,id:this.id,title:this.title,inputs:e,outputs:n};return this.hooks.afterSave.execute(o)}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,o){o.isInput=e==="input",o.nodeId=this.id,o.events.setValue.subscribe(this,()=>this.events.update.emit({type:e,name:n,intf:o}))}addInterface(e,n,o){const r=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 r.emit(o).prevented?!1:(s[n]=o,this.initializeIntf(e,n,o),i.emit(o),!0)}removeInterface(e,n){const o=e==="input"?this.events.beforeRemoveInput:this.events.beforeRemoveOutput,r=e==="input"?this.events.removeInput:this.events.removeOutput,i=e==="input"?this.inputs[n]:this.outputs[n];if(!i||o.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],r.emit(i),!0}}let nH=class extends tH{load(e){super.load(e)}save(){return super.save()}};function Gl(t){return class extends nH{constructor(){var e,n;super(),this.type=t.type,this.inputs={},this.outputs={},this.calculate=t.calculate?(o,r)=>t.calculate.call(this,o,r):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(o=>{const r=n[o]();e==="input"?this.addInput(o,r):this.addOutput(o,r)})}}}class mn{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=Q1(),this.nodeId="",this.port=!0,this.hidden=!1,this.events={setConnectionCount:new en(this),beforeSetValue:new dr(this),setValue:new en(this),updated:new en(this)},this.hooks={load:new Ai(this),save:new Ai(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 Al="__baklava_SubgraphInputNode",wl="__baklava_SubgraphOutputNode";class rH extends nH{constructor(){super(),this.graphInterfaceId=Q1()}onPlaced(){super.onPlaced(),this.initializeIo()}save(){return{...super.save(),graphInterfaceId:this.graphInterfaceId}}load(e){super.load(e),this.graphInterfaceId=e.graphInterfaceId}}class Hh extends rH{constructor(){super(...arguments),this.type=Al,this.inputs={name:new mn("Name","Input")},this.outputs={placeholder:new mn("Value",void 0)}}static isGraphInputNode(e){return e.type===Al}}class Ph extends rH{constructor(){super(...arguments),this.type=wl,this.inputs={name:new mn("Name","Output"),placeholder:new mn("Value",void 0)},this.outputs={output:new mn("Output",void 0).setHidden(!0)},this.calculate=({placeholder:e})=>({output:e})}static isGraphOutputNode(e){return e.type===wl}}class r6{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===Al).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===wl).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Q1(),this.activeTransactions=0,this._nodes=[],this._connections=[],this._loading=!1,this._destroying=!1,this.events={beforeAddNode:new dr(this),addNode:new en(this),beforeRemoveNode:new dr(this),removeNode:new en(this),beforeAddConnection:new dr(this),addConnection:new en(this),checkConnection:new dr(this),beforeRemoveConnection:new dr(this),removeConnection:new en(this)},this.hooks={save:new Ai(this),load:new Ai(this),checkConnection:new wGn(this)},this.nodeEvents=Jo(),this.nodeHooks=Jo(),this.connectionEvents=Jo(),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(o=>n.includes(o.from)||n.includes(o.to)).forEach(o=>this.removeConnection(o)),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 o=this.checkConnection(e,n);if(!o.connectionAllowed||this.events.beforeAddConnection.emit({from:e,to:n}).prevented)return;for(const i of o.connectionsInDanger){const s=this.connections.find(a=>a.id===i.id);s&&this.removeConnection(s)}const r=new UO(o.dummyConnection.from,o.dummyConnection.to);return this.internalAddConnection(r),r}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 o=this.findNodeById(e.nodeId),r=this.findNodeById(n.nodeId);if(o&&r&&o===r)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 eH(e,n),connectionsInDanger:s}}findNodeInterface(e){for(const n of this.nodes){for(const o in n.inputs){const r=n.inputs[o];if(r.id===e)return r}for(const o in n.outputs){const r=n.outputs[o];if(r.id===e)return r}}}findNodeById(e){return this.nodes.find(n=>n.id===e)}load(e){try{this._loading=!0;const n=[];for(let o=this.connections.length-1;o>=0;o--)this.removeConnection(this.connections[o]);for(let o=this.nodes.length-1;o>=0;o--)this.removeNode(this.nodes[o]);this.id=e.id;for(const o of e.nodes){const r=this.editor.nodeTypes.get(o.type);if(!r){n.push(`Node type ${o.type} is not registered`);continue}const i=new r.type;this.addNode(i),i.load(o)}for(const o of e.connections){const r=this.findNodeInterface(o.from),i=this.findNodeInterface(o.to);if(r)if(i){const s=new UO(r,i);s.id=o.id,this.internalAddConnection(s)}else{n.push(`Could not find interface with id ${o.to}`);continue}else{n.push(`Could not find interface with id ${o.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 kc="__baklava_GraphNode-";function Ol(t){return kc+t.id}const OGn=["component","connectionCount","events","hidden","hooks","id","isInput","name","nodeId","port","templateId","value"];function MGn(t){return class extends tH{constructor(){super(...arguments),this.type=Ol(t),this.inputs={},this.outputs={},this.template=t,this.calculate=async(n,o)=>{var r;if(!this.subgraph)throw new Error(`GraphNode ${this.id}: calculate called without subgraph being initialized`);if(!o.engine||typeof o.engine!="object")throw new Error(`GraphNode ${this.id}: calculate called but no engine provided in context`);const i=o.engine.getInputValues(this.subgraph);for(const l of this.subgraph.inputs)i.set(l.nodeInterfaceId,n[l.id]);const s=await o.engine.runGraph(this.subgraph,i,o.globalValues),a={};for(const l of this.subgraph.outputs)a[l.id]=(r=s.get(l.nodeId))===null||r===void 0?void 0:r.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(o=>o.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(o=>o.id===n)||this.removeOutput(n);this.addOutput("_calculationResults",new mn("_calculationResults",void 0).setHidden(!0))}createProxyInterface(n,o){const r=new mn(n.name,void 0);return new Proxy(r,{get:(i,s)=>{var a,l,c;if(OGn.includes(s)||s in i||typeof s=="string"&&s.startsWith("__v_"))return Reflect.get(i,s);let u;if(o){const T=(a=this.subgraph)===null||a===void 0?void 0:a.nodes.find(h=>Hh.isGraphInputNode(h)&&h.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(h=>Ph.isGraphOutputNode(h)&&h.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 h;return u===((h=o?T.from:T.to)===null||h===void 0?void 0:h.id)}),f=o?d==null?void 0:d.to:d==null?void 0:d.from;if(f)return Reflect.get(f,s)}})}}}class S5{static fromGraph(e,n){return new S5(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(Ol(this));n&&(n.title=e)}get inputs(){return this.nodes.filter(n=>n.type===Al).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===wl).map(n=>({id:n.graphInterfaceId,name:n.inputs.name.value,nodeId:n.id,nodeInterfaceId:n.outputs.output.id}))}constructor(e,n){this.id=Q1(),this._name="Subgraph",this.events={nameChanged:new en(this),updated:new en(this)},this.hooks={beforeLoad:new Ai(this),afterSave:new Ai(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,o=f=>{const T=Q1();return n.set(f,T),T},r=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=>Vf(f,T=>({id:o(T.id),templateId:T.id,value:T.value})),s=this.nodes.map(f=>({...f,id:o(f.id),inputs:i(f.inputs),outputs:i(f.outputs)})),a=this.connections.map(f=>({id:o(f.id),from:r(f.from),to:r(f.to)})),l=this.inputs.map(f=>({id:f.id,name:f.name,nodeId:r(f.nodeId),nodeInterfaceId:r(f.nodeInterfaceId)})),c=this.outputs.map(f=>({id:f.id,name:f.name,nodeId:r(f.nodeId),nodeInterfaceId:r(f.nodeInterfaceId)})),u={id:Q1(),nodes:s,connections:a,inputs:l,outputs:c};return e||(e=new r6(this.editor)),e.load(u).forEach(f=>console.warn(f)),e.template=this,e}}class RGn{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 en(this),beforeRegisterNodeType:new dr(this),registerNodeType:new en(this),beforeUnregisterNodeType:new dr(this),unregisterNodeType:new en(this),beforeAddGraphTemplate:new dr(this),addGraphTemplate:new en(this),beforeRemoveGraphTemplate:new dr(this),removeGraphTemplate:new en(this),registerGraph:new en(this),unregisterGraph:new en(this)},this.hooks={save:new Ai(this),load:new Ai(this)},this.graphTemplateEvents=Jo(),this.graphTemplateHooks=Jo(),this.graphEvents=Jo(),this.graphHooks=Jo(),this.nodeEvents=Jo(),this.nodeHooks=Jo(),this.connectionEvents=Jo(),this._graphs=new Set,this._nodeTypes=new Map,this._graph=new r6(this),this._graphTemplates=[],this._loading=!1,this.registerNodeType(Hh),this.registerNodeType(Ph)}registerNodeType(e,n){var o,r;if(this.events.beforeRegisterNodeType.emit({type:e,options:n}).prevented)return;const i=new e;this._nodeTypes.set(i.type,{type:e,category:(o=n==null?void 0:n.category)!==null&&o!==void 0?o:"default",title:(r=n==null?void 0:n.title)!==null&&r!==void 0?r: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=MGn(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=Ol(e);for(const o of[this.graph,...this.graphs.values()]){const r=o.nodes.filter(i=>i.type===n);for(const i of r)o.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(o=>{const r=new S5(o,this);this.addGraphTemplate(r)});const n=this._graph.load(e.graph);return this.events.loaded.emit(),n.forEach(o=>console.warn(o)),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 NGn(t,e){const n=new Map;e.graphs.forEach(o=>{o.nodes.forEach(r=>n.set(r.id,r))}),t.forEach((o,r)=>{const i=n.get(r);i&&o.forEach((s,a)=>{const l=i.outputs[a];l&&(l.value=s)})})}class iH extends Error{constructor(){super("Cycle detected")}}function DGn(t){return typeof t=="string"}function oH(t,e){const n=new Map,o=new Map,r=new Map;let i,s;if(t instanceof r6)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(DGn));o.set(c.id,d),r.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=o.get(c.id);for(;u.size>0;){const d=u.values().next().value;if(u.delete(d),Array.from(o.values()).every(f=>!f.has(d))){const f=i.find(T=>T.id===d);a.push(f)}}}if(Array.from(o.values()).some(c=>c.size>0))throw new iH;return{calculationOrder:l,connectionsFromNode:r,interfaceIdToNodeId:n}}function IGn(t,e){try{return oH(t,e),!1}catch(n){if(n instanceof iH)return!0;throw n}}var Fr;(function(t){t.Running="Running",t.Idle="Idle",t.Paused="Paused",t.Stopped="Stopped"})(Fr||(Fr={}));class kGn{get status(){return this.isRunning?Fr.Running:this.internalStatus}constructor(e){this.editor=e,this.events={beforeRun:new dr(this),afterRun:new en(this),statusChange:new en(this),beforeNodeCalculation:new en(this),afterNodeCalculation:new en(this)},this.hooks={gatherCalculationData:new Ai(this),transferData:new Jk},this.recalculateOrder=!0,this.internalStatus=Fr.Stopped,this.isRunning=!1,this.editor.nodeEvents.update.subscribe(this,(n,o)=>{o.graph&&!o.graph.loading&&o.graph.activeTransactions===0&&this.internalOnChange(o,n??void 0)}),this.editor.graphEvents.addNode.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeNode.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.addConnection.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphEvents.removeConnection.subscribe(this,(n,o)=>{this.recalculateOrder=!0,!o.loading&&o.activeTransactions===0&&this.internalOnChange()}),this.editor.graphHooks.checkConnection.subscribe(this,n=>this.checkConnection(n.from,n.to))}start(){this.internalStatus===Fr.Stopped&&(this.internalStatus=Fr.Idle,this.events.statusChange.emit(this.status))}pause(){this.internalStatus===Fr.Idle&&(this.internalStatus=Fr.Paused,this.events.statusChange.emit(this.status))}resume(){this.internalStatus===Fr.Paused&&(this.internalStatus=Fr.Idle,this.events.statusChange.emit(this.status))}stop(){(this.internalStatus===Fr.Idle||this.internalStatus===Fr.Paused)&&(this.internalStatus=Fr.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 o=await this.execute(e,...n);return this.events.afterRun.emit(o),o}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 o=new eH(e,n);let r=this.editor.graph.connections.slice();return n.allowMultipleConnections||(r=r.filter(i=>i.to!==n)),r.push(o),IGn(this.editor.graph.nodes,r)?{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(o=>{if(!(o in n))throw new Error(`Calculation return value from node ${e.id} (type ${e.type}) is missing key "${o}"`)})}internalOnChange(e,n){this.internalStatus===Fr.Idle&&this.onChange(this.recalculateOrder,e,n)}findInterfaceByTemplateId(e,n){for(const o of e)for(const r of[...Object.values(o.inputs),...Object.values(o.outputs)])if(r.templateId===n)return r;return null}}class HGn extends kGn{constructor(e){super(e),this.order=new Map}start(){super.start(),this.recalculateOrder=!0,this.calculateWithoutData()}async runGraph(e,n,o){this.order.has(e.id)||this.order.set(e.id,oH(e));const{calculationOrder:r,connectionsFromNode:i}=this.order.get(e.id),s=new Map;for(const a of r){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:o,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(([,h])=>h.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 o of e.nodes)Object.values(o.inputs).forEach(r=>{r.connectionCount===0&&n.set(r.id,r.value)}),o.calculate||Object.values(o.outputs).forEach(r=>{n.set(r.id,r.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 HGn=["INPUT","TEXTAREA","SELECT"];function sH(t){return HGn.includes(t.tagName)}let Bf=null;function PGn(t){Bf=t}function wi(){if(!Bf)throw new Error("providePlugin() must be called before usePlugin()");return{viewModel:Bf}}function Zi(){const{viewModel:t}=wi();return{graph:a0(t.value,"displayedGraph"),switchGraph:t.value.switchGraph}}function aH(t){const{graph:e}=Zi(),n=ke(null),o=ke(null);return{dragging:$e(()=>!!n.value),onPointerDown:l=>{n.value={x:l.pageX,y:l.pageY},o.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=o.value.x+c/e.value.scaling,t.value.y=o.value.y+u/e.value.scaling}},onPointerUp:()=>{n.value=null,o.value=null}}}function lH(t,e,n){if(!e.template)return!1;if(Ol(e.template)===n)return!0;const o=t.graphTemplates.find(i=>Ol(i)===n);return o?o.nodes.filter(i=>i.type.startsWith(kc)).some(i=>lH(t,e,i.type)):!1}function cH(t){return $e(()=>{const e=Array.from(t.value.editor.nodeTypes.entries()),n=new Set(e.map(([,r])=>r.category)),o=[];for(const r of n.values()){let i=e.filter(([,s])=>s.category===r);t.value.displayedGraph.template?i=i.filter(([s])=>!lH(t.value.editor,t.value.displayedGraph,s)):i=i.filter(([s])=>![Al,wl].includes(s)),i.length>0&&o.push({name:r,nodeTypes:Object.fromEntries(i)})}return o.sort((r,i)=>r.name==="default"?-1:i.name==="default"||r.name>i.name?1:-1),o})}function uH(){const{graph:t}=Zi();return{transform:(n,o)=>{const r=n/t.value.scaling-t.value.panning.x,i=o/t.value.scaling-t.value.panning.y;return[r,i]}}}function $Gn(){const{graph:t}=Zi();let e=[],n=-1,o={x:0,y:0};const r=$e(()=>t.value.panning),i=aH(r),s=$e(()=>({"transform-origin":"0 0",transform:`scale(${t.value.scaling}) translate(${t.value.panning.x}px, ${t.value.panning.y}px)`})),a=(T,h,g)=>{const _=[T/t.value.scaling-t.value.panning.x,h/t.value.scaling-t.value.panning.y],m=[T/g-t.value.panning.x,h/g-t.value.panning.y],Q=[m[0]-_[0],m[1]-_[1]];t.value.panning.x+=Q[0],t.value.panning.y+=Q[1],t.value.scaling=g},l=T=>{T.preventDefault();let h=T.deltaY;T.deltaMode===1&&(h*=32);const g=t.value.scaling*(1-h/3e3);a(T.offsetX,T.offsetY,g)},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:h,ay:g,bx:_,by:m}=c();o={x:h+(_-h)/2,y:g+(m-g)/2}}},onPointerMove:T=>{for(let h=0;h0){const y=t.value.scaling*(1+(b-n)/500);a(o.x,o.y,y)}n=b}else i.onPointerMove(T)},onPointerUp:T=>{e=e.filter(h=>h.pointerId!==T.pointerId),n=-1,i.onPointerUp()},onMouseWheel:l}}var Vi=(t=>(t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.FORBIDDEN=2]="FORBIDDEN",t))(Vi||{});const dH=Symbol();function VGn(){const{graph:t}=Zi(),e=ke(null),n=ke(null),o=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)},r=()=>{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:Vi.NONE,from:a.from},t.value.removeConnection(a)):e.value={status:Vi.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?Vi.ALLOWED:Vi.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=Vi.NONE,t.value.connections.forEach(l=>{l.isInDanger=!1}))};return Tl(dH,{temporaryConnection:e,hoveredOver:s}),{temporaryConnection:e,onMouseMove:o,onMouseDown:r,onMouseUp:i,hoveredOver:s}}function BGn(t){const e=ke(!1),n=ke(0),o=ke(0),r=cH(t),{transform:i}=uH(),s=$e(()=>{let u=[];const d={};for(const T of r.value){const h=Object.entries(T.nodeTypes).map(([g,_])=>({label:_.title,value:"addNode:"+g}));T.name==="default"?u=h:d[T.name]=h}const f=[...Object.entries(d).map(([T,h])=>({label:T,submenu:h}))];return f.length>0&&u.length>0&&f.push({isDivider:!0}),f.push(...u),f}),a=$e(()=>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)||sH(d))return;u.preventDefault(),e.value=!0;const f=d.getBoundingClientRect(),h=d.closest(".baklava-editor").getBoundingClientRect();n.value=f.x+u.offsetX-h.x,o.value=f.y+u.offsetY-h.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=pr(new f.type);t.value.displayedGraph.addNode(T);const[h,g]=i(n.value,o.value);T.position.x=h,T.position.y=g}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:o,items:a,open:l,onClick:c}}const r0="START_SELECTION_BOX";function FGn(t){const{viewModel:e}=wi(),{graph:n}=Zi(),o=$e(()=>n.value.nodes),r=ke(!1),i=ke(!1),s=ke([0,0]),a=ke([0,0]);vn(e,()=>{e.value.commandHandler.hasCommand(r0)||(e.value.commandHandler.registerCommand(r0,{canExecute:()=>!0,execute(){r.value=!0}}),e.value.commandHandler.registerHotkey(["b"],r0))},{immediate:!0});function l(m){return[m.clientX-t.value.getBoundingClientRect().left,m.clientY-t.value.getBoundingClientRect().top]}function c(m){return r.value?(i.value=!0,r.value=!1,s.value=l(m),a.value=l(m),document.addEventListener("pointermove",u),document.addEventListener("pointerup",d),!0):!1}function u(m){s.value=l(m)}function d(m){document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",d),s.value=l(m),i.value=!1;const Q=f();for(const v of Q)e.value.displayedGraph.selectedNodes.push(v)}function f(){const m=T(),v=document.querySelector(".baklava-editor").getBoundingClientRect();return o.value.filter(b=>{const y=h(b,v);return g(m,y)})}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 h(m,Q){const v=document.getElementById(m.id),b=v?v.getBoundingClientRect():{x:0,y:0,width:0,height:0},y=b.x-Q.left,E=b.y-Q.top;return{left:y,top:E,right:y+b.width,bottom:E+b.height}}function g(m,Q){return m.leftQ.left&&m.topQ.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 pr({startSelection:r,isSelecting:i,start:s,end:a,onPointerDown:c,getStyles:_})}const UGn=Mn({setup(){const{viewModel:t}=wi(),{graph:e}=Zi();return{styles:$e(()=>{const o=t.value.settings.background,r=e.value.panning.x*e.value.scaling,i=e.value.panning.y*e.value.scaling,s=e.value.scaling*o.gridSize,a=s/o.gridDivision,l=`${s}px ${s}px, ${s}px ${s}px`,c=e.value.scaling>o.subGridVisibleThreshold?`, ${a}px ${a}px, ${a}px ${a}px`:"";return{backgroundPosition:`left ${r}px top ${i}px`,backgroundSize:`${l} ${c}`}})}}}),bn=(t,e)=>{const n=t.__vccOpts||t;for(const[o,r]of e)n[o]=r;return n};function qGn(t,e,n,o,r,i){return N(),H("div",{class:"background",style:Jt(t.styles)},null,4)}const GGn=bn(UGn,[["render",qGn]]);function jGn(t){return cM()?(sP(t),!0):!1}function $h(t){return typeof t=="function"?t():vt(t)}const TH=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zGn=Object.prototype.toString,YGn=t=>zGn.call(t)==="[object Object]",i0=()=>{},WGn=KGn();function KGn(){var t,e;return TH&&((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 ZGn(t,e,n=!1){return e.reduce((o,r)=>(r in t&&(!n||t[r]!==void 0)&&(o[r]=t[r]),o),{})}function XGn(t,e={}){if(!$n(t))return IP(t);const n=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const o in t.value)n[o]=DP(()=>({get(){return t.value[o]},set(r){var i;if((i=$h(e.replaceRef))!=null?i:!0)if(Array.isArray(t.value)){const a=[...t.value];a[o]=r,t.value=a}else{const a={...t.value,[o]:r};Object.setPrototypeOf(a,Object.getPrototypeOf(t.value)),t.value=a}else t.value[o]=r}}));return n}function cc(t){var e;const n=$h(t);return(e=n==null?void 0:n.$el)!=null?e:n}const Vh=TH?window:void 0;function yc(...t){let e,n,o,r;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,o,r]=t,e=Vh):[e,n,o,r]=t,!e)return i0;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);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=vn(()=>[cc(e),$h(r)],([u,d])=>{if(s(),!u)return;const f=YGn(d)?{...d}:d;i.push(...n.flatMap(T=>o.map(h=>a(u,T,h,f))))},{immediate:!0,flush:"post"}),c=()=>{l(),s()};return jGn(c),c}let qO=!1;function fH(t,e,n={}){const{window:o=Vh,ignore:r=[],capture:i=!0,detectIframe:s=!1}=n;if(!o)return i0;WGn&&!qO&&(qO=!0,Array.from(o.document.body.children).forEach(f=>f.addEventListener("click",i0)),o.document.documentElement.addEventListener("click",i0));let a=!0;const l=f=>r.some(T=>{if(typeof T=="string")return Array.from(o.document.querySelectorAll(T)).some(h=>h===f.target||f.composedPath().includes(h));{const h=cc(T);return h&&(f.target===h||f.composedPath().includes(h))}}),u=[yc(o,"click",f=>{const T=cc(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}),yc(o,"pointerdown",f=>{const T=cc(t);a=!l(f)&&!!(T&&!f.composedPath().includes(T))},{passive:!0}),s&&yc(o,"blur",f=>{setTimeout(()=>{var T;const h=cc(t);((T=o.document.activeElement)==null?void 0:T.tagName)==="IFRAME"&&!(h!=null&&h.contains(o.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},JGn=Object.keys(pH);function ejn(t={}){const{target:e=Vh}=t,n=ke(!1),o=ke(t.initialValue||{});Object.assign(o.value,pH,o.value);const r=i=>{n.value=!0,!(t.pointerTypes&&!t.pointerTypes.includes(i.pointerType))&&(o.value=ZGn(i,JGn,!1))};if(e){const i={passive:!0};yc(e,["pointerdown","pointermove","pointerup"],r,i),yc(e,"pointerleave",()=>n.value=!1,i)}return{...XGn(o),isInside:n}}const tjn=["onMouseenter","onMouseleave","onClick"],njn={class:"flex-fill"},rjn={key:0,class:"__submenu-icon",style:{"line-height":"1em"}},ijn=S("svg",{width:"13",height:"13",viewBox:"-60 120 250 250"},[S("path",{d:"M160.875 279.5625 L70.875 369.5625 L70.875 189.5625 L160.875 279.5625 Z",stroke:"none",fill:"white"})],-1),ojn=[ijn],Bh=Mn({__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,o=e;let r=null;const i=ke(null),s=ke(-1),a=ke(0),l=ke({x:!1,y:!1}),c=$e(()=>n.flippable&&(l.value.x||n.isFlipped.x)),u=$e(()=>n.flippable&&(l.value.y||n.isFlipped.y)),d=$e(()=>{const Q={};return n.isNested||(Q.top=(u.value?n.y-a.value:n.y)+"px",Q.left=n.x+"px"),Q}),f=$e(()=>({"--flipped-x":c.value,"--flipped-y":u.value,"--nested":n.isNested})),T=$e(()=>n.items.map(Q=>({...Q,hover:!1})));vn([()=>n.y,()=>n.items],()=>{var Q,v,b,y;a.value=n.items.length*30;const E=((v=(Q=i.value)==null?void 0:Q.parentElement)==null?void 0:v.offsetWidth)??0,x=((y=(b=i.value)==null?void 0:b.parentElement)==null?void 0:y.offsetHeight)??0;l.value.x=!n.isNested&&n.x>E*.75,l.value.y=!n.isNested&&n.y+a.value>x-20}),fH(i,()=>{n.modelValue&&o("update:modelValue",!1)});const h=Q=>{!Q.submenu&&Q.value&&(o("click",Q.value),o("update:modelValue",!1))},g=Q=>{o("click",Q),s.value=-1,n.isNested||o("update:modelValue",!1)},_=(Q,v)=>{n.items[v].submenu&&(s.value=v,r!==null&&(clearTimeout(r),r=null))},m=(Q,v)=>{n.items[v].submenu&&(r=window.setTimeout(()=>{s.value=-1,r=null},200))};return(Q,v)=>{const b=We("ContextMenu",!0);return N(),it(Tr,{name:"slide-fade"},{default:je(()=>[Ce(S("div",{ref_key:"el",ref:i,class:Ee(["baklava-context-menu",f.value]),style:Jt(d.value)},[(N(!0),H(Ae,null,Ue(T.value,(y,E)=>(N(),H(Ae,null,[y.isDivider?(N(),H("div",{key:`d-${E}`,class:"divider"})):(N(),H("div",{key:`i-${E}`,class:Ee(["item",{submenu:!!y.submenu,"--disabled":!!y.disabled}]),onMouseenter:x=>_(x,E),onMouseleave:x=>m(x,E),onClick:oe(x=>h(y),["stop","prevent"])},[S("div",njn,J(y.label),1),y.submenu?(N(),H("div",rjn,ojn)):Z("",!0),y.submenu?(N(),it(b,{key:1,"model-value":s.value===E,items:y.submenu,"is-nested":!0,"is-flipped":{x:c.value,y:u.value},flippable:Q.flippable,onClick:g},null,8,["model-value","items","is-flipped","flippable"])):Z("",!0)],42,tjn))],64))),256))],6),[[wn,Q.modelValue]])]),_:1})}}}),sjn={},ajn={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"},ljn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),cjn=S("circle",{cx:"12",cy:"12",r:"1"},null,-1),ujn=S("circle",{cx:"12",cy:"19",r:"1"},null,-1),djn=S("circle",{cx:"12",cy:"5",r:"1"},null,-1),Tjn=[ljn,cjn,ujn,djn];function fjn(t,e){return N(),H("svg",ajn,Tjn)}const hH=bn(sjn,[["render",fjn]]),pjn=["id"],hjn={key:0,class:"__tooltip"},mjn={key:2,class:"align-middle"},GO=Mn({__name:"NodeInterface",props:{node:{},intf:{}},setup(t){const e=(_,m=100)=>{const Q=typeof(_==null?void 0:_.toString)=="function"?String(_):"";return Q.length>m?Q.slice(0,m)+"...":Q},n=t,{viewModel:o}=wi(),{hoveredOver:r,temporaryConnection:i}=xi(dH),s=ke(null),a=$e(()=>n.intf.connectionCount>0),l=ke(!1),c=$e(()=>o.value.settings.displayValueOnHover&&l.value),u=$e(()=>({"--input":n.intf.isInput,"--output":!n.intf.isInput,"--connected":a.value})),d=$e(()=>n.intf.component&&(!n.intf.isInput||!n.intf.port||n.intf.connectionCount===0)),f=()=>{l.value=!0,r(n.intf)},T=()=>{l.value=!1,r(void 0)},h=()=>{s.value&&o.value.hooks.renderInterface.execute({intf:n.intf,el:s.value})},g=()=>{const _=o.value.displayedGraph.sidebar;_.nodeId=n.node.id,_.optionName=n.intf.name,_.visible=!0};return hr(h),Dl(h),(_,m)=>{var Q;return N(),H("div",{id:_.intf.id,ref_key:"el",ref:s,class:Ee(["baklava-node-interface",u.value])},[_.intf.port?(N(),H("div",{key:0,class:Ee(["__port",{"--selected":((Q=vt(i))==null?void 0:Q.from)===_.intf}]),onPointerover:f,onPointerout:T},[_n(_.$slots,"portTooltip",{showTooltip:c.value},()=>[c.value===!0?(N(),H("span",hjn,J(e(_.intf.value)),1)):Z("",!0)])],34)):Z("",!0),d.value?(N(),it(Vc(_.intf.component),{key:1,modelValue:_.intf.value,"onUpdate:modelValue":m[0]||(m[0]=v=>_.intf.value=v),node:_.node,intf:_.intf,onOpenSidebar:g},null,40,["modelValue","node","intf"])):(N(),H("span",mjn,J(_.intf.name),1))],10,pjn)}}}),gjn=["id","data-node-type"],_jn={class:"__title-label"},Qjn={class:"__menu"},vjn={class:"__outputs"},yjn={class:"__inputs"},bjn=Mn({__name:"Node",props:{node:{},selected:{type:Boolean,default:!1},dragging:{type:Boolean}},emits:["select","start-drag"],setup(t,{emit:e}){const n=t,o=e,{viewModel:r}=wi(),{graph:i,switchGraph:s}=Zi(),a=ke(null),l=ke(!1),c=ke(""),u=ke(null),d=ke(!1),f=ke(!1),T=$e(()=>{const R=[{value:"rename",label:"Rename"},{value:"delete",label:"Delete"}];return n.node.type.startsWith(kc)&&R.push({value:"editSubgraph",label:"Edit Subgraph"}),R}),h=$e(()=>({"--selected":n.selected,"--dragging":n.dragging,"--two-column":!!n.node.twoColumn})),g=$e(()=>({"--reverse-y":n.node.reverseY??r.value.settings.nodes.reverseY})),_=$e(()=>{var R,D;return{top:`${((R=n.node.position)==null?void 0:R.y)??0}px`,left:`${((D=n.node.position)==null?void 0:D.x)??0}px`,"--width":`${n.node.width??r.value.settings.nodes.defaultWidth}px`}}),m=$e(()=>Object.values(n.node.inputs).filter(R=>!R.hidden)),Q=$e(()=>Object.values(n.node.outputs).filter(R=>!R.hidden)),v=()=>{o("select")},b=R=>{n.selected||v(),o("start-drag",R)},y=()=>{f.value=!0},E=async R=>{var D;switch(R){case"delete":i.value.removeNode(n.node);break;case"rename":c.value=n.node.title,l.value=!0,await be(),(D=u.value)==null||D.focus();break;case"editSubgraph":s(n.node.template);break}},x=()=>{n.node.title=c.value,l.value=!1},L=()=>{a.value&&r.value.hooks.renderNode.execute({node:n.node,el:a.value})},C=R=>{d.value=!0,R.preventDefault()},A=R=>{if(!d.value)return;const D=n.node.width+R.movementX/i.value.scaling,M=r.value.settings.nodes.minWidth,$=r.value.settings.nodes.maxWidth;n.node.width=Math.max(M,Math.min($,D))},O=()=>{d.value=!1};return hr(()=>{L(),window.addEventListener("mousemove",A),window.addEventListener("mouseup",O)}),Dl(L),X1(()=>{window.removeEventListener("mousemove",A),window.removeEventListener("mouseup",O)}),(R,D)=>(N(),H("div",{id:R.node.id,ref_key:"el",ref:a,class:Ee(["baklava-node",h.value]),style:Jt(_.value),"data-node-type":R.node.type,onPointerdown:v},[vt(r).settings.nodes.resizable?(N(),H("div",{key:0,class:"__resize-handle",onMousedown:C},null,32)):Z("",!0),_n(R.$slots,"title",{},()=>[S("div",{class:"__title",onPointerdown:oe(b,["self","stop"])},[l.value?Ce((N(),H("input",{key:1,ref_key:"renameInputEl",ref:u,"onUpdate:modelValue":D[1]||(D[1]=M=>c.value=M),type:"text",class:"baklava-input",placeholder:"Node Name",onBlur:x,onKeydown:Qn(x,["enter"])},null,544)),[[Je,c.value]]):(N(),H(Ae,{key:0},[S("div",_jn,J(R.node.title),1),S("div",Qjn,[ne(hH,{class:"--clickable",onClick:y}),ne(vt(Bh),{modelValue:f.value,"onUpdate:modelValue":D[0]||(D[0]=M=>f.value=M),x:0,y:0,items:T.value,onClick:E},null,8,["modelValue","items"])])],64))],32)]),_n(R.$slots,"content",{},()=>[S("div",{class:Ee(["__content",g.value]),onKeydown:D[2]||(D[2]=Qn(oe(()=>{},["stop"]),["delete"]))},[S("div",vjn,[(N(!0),H(Ae,null,Ue(Q.value,M=>_n(R.$slots,"nodeInterface",{key:M.id,type:"output",node:R.node,intf:M},()=>[ne(GO,{node:R.node,intf:M},null,8,["node","intf"])])),128))]),S("div",yjn,[(N(!0),H(Ae,null,Ue(m.value,M=>_n(R.$slots,"nodeInterface",{key:M.id,type:"input",node:R.node,intf:M},()=>[ne(GO,{node:R.node,intf:M},null,8,["node","intf"])])),128))])],34)])],46,gjn))}}),Ejn=Mn({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:Vi.NONE},isTemporary:{type:Boolean,default:!1}},setup(t){const{viewModel:e}=wi(),{graph:n}=Zi(),o=(s,a)=>{const l=(s+n.value.panning.x)*n.value.scaling,c=(a+n.value.panning.y)*n.value.scaling;return[l,c]},r=$e(()=>{const[s,a]=o(t.x1,t.y1),[l,c]=o(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=$e(()=>({"--temporary":t.isTemporary,"--allowed":t.state===Vi.ALLOWED,"--forbidden":t.state===Vi.FORBIDDEN}));return{d:r,classes:i}}}),Sjn=["d"];function xjn(t,e,n,o,r,i){return N(),H("path",{class:Ee(["baklava-connection",t.classes]),d:t.d},null,10,Sjn)}const mH=bn(Ejn,[["render",xjn]]);function Ljn(t){return document.getElementById(t.id)}function Ml(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 Cjn=Mn({components:{"connection-view":mH},props:{connection:{type:Object,required:!0}},setup(t){const{graph:e}=Zi();let n;const o=ke({x1:0,y1:0,x2:0,y2:0}),r=$e(()=>t.connection.isInDanger?Vi.FORBIDDEN:Vi.NONE),i=$e(()=>{var c;return(c=e.value.findNodeById(t.connection.from.nodeId))==null?void 0:c.position}),s=$e(()=>{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=Ml(t.connection.from),u=Ml(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,h]=a(u);o.value={x1:d,y1:f,x2:T,y2:h}};return hr(async()=>{await be(),l()}),X1(()=>{n&&n.disconnect()}),vn([i,s],()=>l(),{deep:!0}),{d:o,state:r}}});function Ajn(t,e,n,o,r,i){const s=We("connection-view");return N(),it(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 wjn=bn(Cjn,[["render",Ajn]]);function H0(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 Ojn=Mn({components:{"connection-view":mH},props:{connection:{type:Object,required:!0}},setup(t){const e=$e(()=>t.connection?t.connection.status:Vi.NONE);return{d:$e(()=>{if(!t.connection)return{input:[0,0],output:[0,0]};const o=H0(Ml(t.connection.from)),r=t.connection.to?H0(Ml(t.connection.to)):[t.connection.mx||o[0],t.connection.my||o[1]];return t.connection.from.isInput?{input:r,output:o}:{input:o,output:r}}),status:e}}});function Mjn(t,e,n,o,r,i){const s=We("connection-view");return N(),it(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 Rjn=bn(Ojn,[["render",Mjn]]),Njn=Mn({setup(){const{viewModel:t}=wi(),{graph:e}=Zi(),n=ke(null),o=a0(t.value.settings.sidebar,"width"),r=$e(()=>t.value.settings.sidebar.resizable),i=$e(()=>{const d=e.value.sidebar.nodeId;return e.value.nodes.find(f=>f.id===d)}),s=$e(()=>({width:`${o.value}px`})),a=$e(()=>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 h=((T=(f=n.value)==null?void 0:f.parentElement)==null?void 0:T.getBoundingClientRect().width)??500;let g=o.value-d.movementX;g<300?g=300:g>.9*h&&(g=.9*h),o.value=g};return{el:n,graph:e,resizable:r,node:i,styles:s,displayedInterfaces:a,startResize:c,close:l}}}),Djn={class:"__header"},Ijn={class:"__node-name"};function kjn(t,e,n,o,r,i){return N(),H("div",{ref:"el",class:Ee(["baklava-sidebar",{"--open":t.graph.sidebar.visible}]),style:Jt(t.styles)},[t.resizable?(N(),H("div",{key:0,class:"__resizer",onMousedown:e[0]||(e[0]=(...s)=>t.startResize&&t.startResize(...s))},null,32)):Z("",!0),S("div",Djn,[S("button",{tabindex:"-1",class:"__close",onClick:e[1]||(e[1]=(...s)=>t.close&&t.close(...s))},"×"),S("div",Ijn,[S("b",null,J(t.node?t.node.title:""),1)])]),(N(!0),H(Ae,null,Ue(t.displayedInterfaces,s=>(N(),H("div",{key:s.id,class:"__interface"},[(N(),it(Vc(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 Hjn=bn(Njn,[["render",kjn]]),Pjn=Mn({__name:"Minimap",setup(t){const{viewModel:e}=wi(),{graph:n}=Zi(),o=ke(null),r=ke(!1);let i,s=!1,a={x1:0,y1:0,x2:0,y2:0},l;const c=()=>{var E,x;if(!i)return;i.canvas.width=o.value.offsetWidth,i.canvas.height=o.value.offsetHeight;const L=new Map,C=new Map;for(const M of n.value.nodes){const $=Ljn(M),U=($==null?void 0:$.offsetWidth)??0,G=($==null?void 0:$.offsetHeight)??0,P=((E=M.position)==null?void 0:E.x)??0,F=((x=M.position)==null?void 0:x.y)??0;L.set(M,{x1:P,y1:F,x2:P+U,y2:F+G}),C.set(M,$)}const A={x1:Number.MAX_SAFE_INTEGER,y1:Number.MAX_SAFE_INTEGER,x2:Number.MIN_SAFE_INTEGER,y2:Number.MIN_SAFE_INTEGER};for(const M of L.values())M.x1A.x2&&(A.x2=M.x2),M.y2>A.y2&&(A.y2=M.y2);const O=50;A.x1-=O,A.y1-=O,A.x2+=O,A.y2+=O,a=A;const R=i.canvas.width/i.canvas.height,D=(a.x2-a.x1)/(a.y2-a.y1);if(R>D){const M=(R-D)*(a.y2-a.y1)*.5;a.x1-=M,a.x2+=M}else{const M=a.x2-a.x1,$=a.y2-a.y1,U=(M-R*$)/R*.5;a.y1-=U,a.y2+=U}i.clearRect(0,0,i.canvas.width,i.canvas.height),i.strokeStyle="white";for(const M of n.value.connections){const[$,U]=H0(Ml(M.from)),[G,P]=H0(Ml(M.to)),[F,B]=u($,U),[q,ee]=u(G,P);if(i.beginPath(),i.moveTo(F,B),e.value.settings.useStraightConnections)i.lineTo(q,ee);else{const K=.3*Math.abs(F-q);i.bezierCurveTo(F+K,B,q-K,ee,q,ee)}i.stroke()}i.strokeStyle="lightgray";for(const[M,$]of L.entries()){const[U,G]=u($.x1,$.y1),[P,F]=u($.x2,$.y2);i.fillStyle=f(C.get(M)),i.beginPath(),i.rect(U,G,P-U,F-G),i.fill(),i.stroke()}if(r.value){const M=h(),[$,U]=u(M.x1,M.y1),[G,P]=u(M.x2,M.y2);i.fillStyle="rgba(255, 255, 255, 0.2)",i.fillRect($,U,G-$,P-U)}},u=(E,x)=>[(E-a.x1)/(a.x2-a.x1)*i.canvas.width,(x-a.y1)/(a.y2-a.y1)*i.canvas.height],d=(E,x)=>[E*(a.x2-a.x1)/i.canvas.width+a.x1,x*(a.y2-a.y1)/i.canvas.height+a.y1],f=E=>{if(E){const x=E.querySelector(".__content");if(x){const C=T(x);if(C)return C}const L=T(E);if(L)return L}return"gray"},T=E=>{const x=getComputedStyle(E).backgroundColor;if(x&&x!=="rgba(0, 0, 0, 0)")return x},h=()=>{const E=o.value.parentElement.offsetWidth,x=o.value.parentElement.offsetHeight,L=E/n.value.scaling-n.value.panning.x,C=x/n.value.scaling-n.value.panning.y;return{x1:-n.value.panning.x,y1:-n.value.panning.y,x2:L,y2:C}},g=E=>{E.button===0&&(s=!0,_(E))},_=E=>{if(s){const[x,L]=d(E.offsetX,E.offsetY),C=h(),A=(C.x2-C.x1)/2,O=(C.y2-C.y1)/2;n.value.panning.x=-(x-A),n.value.panning.y=-(L-O)}},m=()=>{s=!1},Q=()=>{r.value=!0},v=()=>{r.value=!1,m()};vn([r,n.value.panning,()=>n.value.scaling,()=>n.value.connections.length],()=>{c()});const b=$e(()=>n.value.nodes.map(E=>E.position)),y=$e(()=>n.value.nodes.map(E=>E.width));return vn([b,y],()=>{c()},{deep:!0}),hr(()=>{i=o.value.getContext("2d"),i.imageSmoothingQuality="high",c(),l=setInterval(c,500)}),X1(()=>{clearInterval(l)}),(E,x)=>(N(),H("canvas",{ref_key:"canvas",ref:o,class:"baklava-minimap",onMouseenter:Q,onMouseleave:v,onMousedown:oe(g,["self"]),onMousemove:oe(_,["self"]),onMouseup:m,onContextmenu:x[0]||(x[0]=oe(()=>{},["stop","prevent"]))},null,544))}}),$jn=Mn({components:{ContextMenu:Bh,VerticalDots:hH},props:{type:{type:String,required:!0},title:{type:String,required:!0}},setup(t){const{viewModel:e}=wi(),{switchGraph:n}=Zi(),o=ke(!1),r=$e(()=>t.type.startsWith(kc));return{showContextMenu:o,hasContextMenu:r,contextMenuItems:[{label:"Edit Subgraph",value:"editSubgraph"},{label:"Delete Subgraph",value:"deleteSubgraph"}],openContextMenu:()=>{o.value=!0},onContextMenuClick:l=>{const c=t.type.substring(kc.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}}}}}),Vjn=["data-node-type"],Bjn={class:"__title"},Fjn={class:"__title-label"},Ujn={key:0,class:"__menu"};function qjn(t,e,n,o,r,i){const s=We("vertical-dots"),a=We("context-menu");return N(),H("div",{class:"baklava-node --palette","data-node-type":t.type},[S("div",Bjn,[S("div",Fjn,J(t.title),1),t.hasContextMenu?(N(),H("div",Ujn,[ne(s,{class:"--clickable",onPointerdown:e[0]||(e[0]=oe(()=>{},["stop","prevent"])),onClick:oe(t.openContextMenu,["stop","prevent"])},null,8,["onClick"]),ne(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]=oe(()=>{},["stop","prevent"]))},null,8,["modelValue","items","onClick"])])):Z("",!0)])],8,Vjn)}const jO=bn($jn,[["render",qjn]]),Gjn={key:0},jjn=Mn({__name:"NodePalette",setup(t){const{viewModel:e}=wi(),{x:n,y:o}=ejn(),{transform:r}=uH(),i=cH(e),s=xi("editorEl"),a=ke(null),l=$e(()=>{if(!a.value||!(s!=null&&s.value))return{};const{left:u,top:d}=s.value.getBoundingClientRect();return{top:`${o.value-d}px`,left:`${n.value-u}px`}}),c=(u,d)=>{a.value={type:u,nodeInformation:d};const f=()=>{const T=pr(new d.type);e.value.displayedGraph.addNode(T);const h=s.value.getBoundingClientRect(),[g,_]=r(n.value-h.left,o.value-h.top);T.position.x=g,T.position.y=_,a.value=null,document.removeEventListener("pointerup",f)};document.addEventListener("pointerup",f)};return(u,d)=>(N(),H(Ae,null,[S("div",{class:"baklava-node-palette",onContextmenu:d[0]||(d[0]=oe(()=>{},["stop","prevent"]))},[(N(!0),H(Ae,null,Ue(vt(i),f=>(N(),H("section",{key:f.name},[f.name!=="default"?(N(),H("h1",Gjn,J(f.name),1)):Z("",!0),(N(!0),H(Ae,null,Ue(f.nodeTypes,(T,h)=>(N(),it(jO,{key:h,type:h,title:T.title,onPointerdown:g=>c(h,T)},null,8,["type","title","onPointerdown"]))),128))]))),128))],32),ne(Tr,{name:"fade"},{default:je(()=>[a.value?(N(),H("div",{key:0,class:"baklava-dragged-node",style:Jt(l.value)},[ne(jO,{type:a.value.type,title:a.value.nodeInformation.title},null,8,["type","title"])],4)):Z("",!0)]),_:1})],64))}});let $6;const zjn=new Uint8Array(16);function Yjn(){if(!$6&&($6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!$6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $6(zjn)}const er=[];for(let t=0;t<256;++t)er.push((t+256).toString(16).slice(1));function Wjn(t,e=0){return er[t[e+0]]+er[t[e+1]]+er[t[e+2]]+er[t[e+3]]+"-"+er[t[e+4]]+er[t[e+5]]+"-"+er[t[e+6]]+er[t[e+7]]+"-"+er[t[e+8]]+er[t[e+9]]+"-"+er[t[e+10]]+er[t[e+11]]+er[t[e+12]]+er[t[e+13]]+er[t[e+14]]+er[t[e+15]]}const Kjn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),zO={randomUUID:Kjn};function P0(t,e,n){if(zO.randomUUID&&!t)return zO.randomUUID();t=t||{};const o=t.random||(t.rng||Yjn)();return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Wjn(o)}const Hc="SAVE_SUBGRAPH";function Zjn(t,e){const n=()=>{const o=t.value;if(!o.template)throw new Error("Graph template property not set");o.template.update(o.save()),o.template.panning=o.panning,o.template.scaling=o.scaling};e.registerCommand(Hc,{canExecute:()=>{var o;return t.value!==((o=t.value.editor)==null?void 0:o.graph)},execute:n})}const Xjn={},Jjn={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"},ezn=S("polyline",{points:"6 9 12 15 18 9"},null,-1),tzn=[ezn];function nzn(t,e){return N(),H("svg",Jjn,tzn)}const rzn=bn(Xjn,[["render",nzn]]),izn=Mn({components:{"i-arrow":rzn},props:{intf:{type:Object,required:!0}},setup(t){const e=ke(null),n=ke(!1),o=$e(()=>t.intf.items.find(s=>typeof s=="string"?s===t.intf.value:s.value===t.intf.value)),r=$e(()=>o.value?typeof o.value=="string"?o.value:o.value.text:""),i=s=>{t.intf.value=typeof s=="string"?s:s.value};return fH(e,()=>{n.value=!1}),{el:e,open:n,selectedItem:o,selectedText:r,setSelected:i}}}),ozn=["title"],szn={class:"__selected"},azn={class:"__text"},lzn={class:"__icon"},czn={class:"__dropdown"},uzn={class:"item --header"},dzn=["onClick"];function Tzn(t,e,n,o,r,i){const s=We("i-arrow");return N(),H("div",{ref:"el",class:Ee(["baklava-select",{"--open":t.open}]),title:t.intf.name,onClick:e[0]||(e[0]=a=>t.open=!t.open)},[S("div",szn,[S("div",azn,J(t.selectedText),1),S("div",lzn,[ne(s)])]),ne(Tr,{name:"slide-fade"},{default:je(()=>[Ce(S("div",czn,[S("div",uzn,J(t.intf.name),1),(N(!0),H(Ae,null,Ue(t.intf.items,(a,l)=>(N(),H("div",{key:l,class:Ee(["item",{"--active":a===t.selectedItem}]),onClick:c=>t.setSelected(a)},J(typeof a=="string"?a:a.text),11,dzn))),128))],512),[[wn,t.open]])]),_:1})],10,ozn)}const fzn=bn(izn,[["render",Tzn]]);class pzn extends mn{constructor(e,n,o){super(e,n),this.component=z0(fzn),this.items=o}}const hzn=Mn({props:{intf:{type:Object,required:!0}}});function mzn(t,e,n,o,r,i){return N(),H("div",null,J(t.intf.value),1)}const gzn=bn(hzn,[["render",mzn]]);class _zn extends mn{constructor(e,n){super(e,n),this.component=z0(gzn),this.setPort(!1)}}const Qzn=Mn({props:{intf:{type:Object,required:!0},modelValue:{type:String,required:!0}},emits:["update:modelValue"],setup(t,{emit:e}){return{v:$e({get:()=>t.modelValue,set:o=>{e("update:modelValue",o)}})}}}),vzn=["placeholder","title"];function yzn(t,e,n,o,r,i){return N(),H("div",null,[Ce(S("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,vzn),[[Je,t.v]])])}const bzn=bn(Qzn,[["render",yzn]]);class i6 extends mn{constructor(){super(...arguments),this.component=z0(bzn)}}class gH extends Hh{constructor(){super(...arguments),this._title="Subgraph Input",this.inputs={name:new i6("Name","Input").setPort(!1)},this.outputs={placeholder:new mn("Connection",void 0)}}}class _H extends Ph{constructor(){super(...arguments),this._title="Subgraph Output",this.inputs={name:new i6("Name","Output").setPort(!1),placeholder:new mn("Connection",void 0)},this.outputs={output:new mn("Output",void 0).setHidden(!0)}}}const QH="CREATE_SUBGRAPH",YO=[Al,wl];function Ezn(t,e,n){const o=()=>t.value.selectedNodes.filter(i=>!YO.includes(i.type)).length>0,r=()=>{const{viewModel:i}=wi(),s=t.value,a=t.value.editor;if(s.selectedNodes.length===0)return;const l=s.selectedNodes.filter(C=>!YO.includes(C.type)),c=l.flatMap(C=>Object.values(C.inputs)),u=l.flatMap(C=>Object.values(C.outputs)),d=s.connections.filter(C=>!u.includes(C.from)&&c.includes(C.to)),f=s.connections.filter(C=>u.includes(C.from)&&!c.includes(C.to)),T=s.connections.filter(C=>u.includes(C.from)&&c.includes(C.to)),h=l.map(C=>C.save()),g=T.map(C=>({id:C.id,from:C.from.id,to:C.to.id})),_=new Map,{xLeft:m,xRight:Q,yTop:v}=Szn(l);for(const[C,A]of d.entries()){const O=new gH;O.inputs.name.value=A.to.name,h.push({...O.save(),position:{x:Q-i.value.settings.nodes.defaultWidth-100,y:v+C*200}}),g.push({id:P0(),from:O.outputs.placeholder.id,to:A.to.id}),_.set(A.to.id,O.graphInterfaceId)}for(const[C,A]of f.entries()){const O=new _H;O.inputs.name.value=A.from.name,h.push({...O.save(),position:{x:m+100,y:v+C*200}}),g.push({id:P0(),from:A.from.id,to:O.inputs.placeholder.id}),_.set(A.from.id,O.graphInterfaceId)}const b=pr(new S5({connections:g,nodes:h,inputs:[],outputs:[]},a));a.addGraphTemplate(b);const y=a.nodeTypes.get(Ol(b));if(!y)throw new Error("Unable to create subgraph: Could not find corresponding graph node type");s.activeTransactions++;const E=pr(new y.type);s.addNode(E);const x=Math.round(l.map(C=>C.position.x).reduce((C,A)=>C+A,0)/l.length),L=Math.round(l.map(C=>C.position.y).reduce((C,A)=>C+A,0)/l.length);E.position.x=x,E.position.y=L,d.forEach(C=>{s.removeConnection(C),s.addConnection(C.from,E.inputs[_.get(C.to.id)])}),f.forEach(C=>{s.removeConnection(C),s.addConnection(E.outputs[_.get(C.from.id)],C.to)}),l.forEach(C=>s.removeNode(C)),s.activeTransactions--,e.canExecuteCommand(Hc)&&e.executeCommand(Hc),n(b),t.value.panning={...s.panning},t.value.scaling=s.scaling};e.registerCommand(QH,{canExecute:o,execute:r})}function Szn(t){const e=t.reduce((r,i)=>{const s=i.position.x;return s{const s=i.position.y;return s{const s=i.position.x+i.width;return s>r?s:r},-1/0),xRight:e,yTop:n}}class WO{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 o=new n.type;e.addNode(o),o.load(this.nodeState),this.nodeId=o.id}removeNode(e){const n=e.nodes.find(o=>o.id===this.nodeId);n&&(this.nodeState=n.save(),e.removeNode(n))}}class KO{constructor(e,n){if(this.type=e,e==="addConnection")this.connectionId=n;else{const o=n;this.connectionState={id:o.id,from:o.from.id,to:o.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),o=e.findNodeInterface(this.connectionState.to);if(!n||!o)return;const r=e.addConnection(n,o);r&&(r.id=this.connectionState.id),this.connectionId=r==null?void 0:r.id}removeConnection(e){const n=e.connections.find(o=>o.id===this.connectionId);n&&(this.connectionState={id:n.id,from:n.from.id,to:n.to.id},e.removeConnection(n))}}class xzn{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!==r.value.length-1&&(r.value=r.value.slice(0,s.value+1)),r.value.push(_),s.value++;r.value.length>o.value;)r.value.shift()},u=()=>{a.value=!0},d=()=>{a.value=!1,l.value.length>0&&(c(new xzn(l.value)),l.value=[])},f=()=>r.value.length!==0&&s.value!==-1,T=()=>{f()&&(i.value=!0,r.value[s.value--].undo(t.value),i.value=!1)},h=()=>r.value.length!==0&&s.value{h()&&(i.value=!0,r.value[++s.value].redo(t.value),i.value=!1)};return vn(t,(_,m)=>{m&&(m.events.addNode.unsubscribe(n),m.events.removeNode.unsubscribe(n),m.events.addConnection.unsubscribe(n),m.events.removeConnection.unsubscribe(n)),_&&(_.events.addNode.subscribe(n,Q=>{c(new WO("addNode",Q.id))}),_.events.removeNode.subscribe(n,Q=>{c(new WO("removeNode",Q.save()))}),_.events.addConnection.subscribe(n,Q=>{c(new KO("addConnection",Q.id))}),_.events.removeConnection.subscribe(n,Q=>{c(new KO("removeConnection",Q))}))},{immediate:!0}),e.registerCommand(Ff,{canExecute:f,execute:T}),e.registerCommand(Uf,{canExecute:h,execute:g}),e.registerCommand(Fh,{canExecute:()=>!a.value,execute:u}),e.registerCommand(Uh,{canExecute:()=>a.value,execute:d}),e.registerHotkey(["Control","z"],Ff),e.registerHotkey(["Control","y"],Uf),pr({maxSteps:o})}const qf="DELETE_NODES";function Czn(t,e){e.registerCommand(qf,{canExecute:()=>t.value.selectedNodes.length>0,execute(){e.executeCommand(Fh);for(let n=t.value.selectedNodes.length-1;n>=0;n--){const o=t.value.selectedNodes[n];t.value.removeNode(o)}e.executeCommand(Uh)}}),e.registerHotkey(["Delete"],qf)}const vH="SWITCH_TO_MAIN_GRAPH";function Azn(t,e,n){e.registerCommand(vH,{canExecute:()=>t.value!==t.value.editor.graph,execute:()=>{e.executeCommand(Hc),n(t.value.editor.graph)}})}function wzn(t,e,n){Czn(t,e),Ezn(t,e,n),Zjn(t,e),Azn(t,e,n)}const Gf="COPY",jf="PASTE",Ozn="CLEAR_CLIPBOARD";function Mzn(t,e,n){const o=Symbol("ClipboardToken"),r=ke(""),i=ke(""),s=$e(()=>!r.value),a=()=>{r.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),r.value=JSON.stringify(t.value.selectedNodes.map(T=>T.save()))},c=(d,f,T)=>{for(const h of d){let g;if((!T||T==="input")&&(g=Object.values(h.inputs).find(_=>_.id===f)),!g&&(!T||T==="output")&&(g=Object.values(h.outputs).find(_=>_.id===f)),g)return g}},u=()=>{if(s.value)return;const d=new Map,f=JSON.parse(r.value),T=JSON.parse(i.value),h=[],g=[],_=t.value;n.executeCommand(Fh);for(const m of f){const Q=e.value.nodeTypes.get(m.type);if(!Q){console.warn(`Node type ${m.type} not registered`);return}const v=new Q.type,b=v.id;h.push(v),v.hooks.beforeLoad.subscribe(o,y=>{const E=y;return E.position&&(E.position.x+=100,E.position.y+=100),v.hooks.beforeLoad.unsubscribe(o),E}),_.addNode(v),v.load({...m,id:b}),v.id=b,d.set(m.id,b);for(const y of Object.values(v.inputs)){const E=P0();d.set(y.id,E),y.id=E}for(const y of Object.values(v.outputs)){const E=P0();d.set(y.id,E),y.id=E}}for(const m of T){const Q=c(h,d.get(m.from),"output"),v=c(h,d.get(m.to),"input");if(!Q||!v)continue;const b=_.addConnection(Q,v);b&&g.push(b)}return t.value.selectedNodes=h,n.executeCommand(Uh),{newNodes:h,newConnections:g}};return n.registerCommand(Gf,{canExecute:()=>t.value.selectedNodes.length>0,execute:l}),n.registerHotkey(["Control","c"],Gf),n.registerCommand(jf,{canExecute:()=>!s.value,execute:u}),n.registerHotkey(["Control","v"],jf),n.registerCommand(Ozn,{canExecute:()=>!0,execute:a}),pr({isEmpty:s})}const Rzn="OPEN_SIDEBAR";function Nzn(t,e){e.registerCommand(Rzn,{execute:n=>{t.value.sidebar.nodeId=n,t.value.sidebar.visible=!0},canExecute:()=>!0})}function Dzn(t,e){Nzn(t,e)}const Izn={},kzn={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"},Hzn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Pzn=S("path",{d:"M9 13l-4 -4l4 -4m-4 4h11a4 4 0 0 1 0 8h-1"},null,-1),$zn=[Hzn,Pzn];function Vzn(t,e){return N(),H("svg",kzn,$zn)}const Bzn=bn(Izn,[["render",Vzn]]),Fzn={},Uzn={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"},qzn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Gzn=S("path",{d:"M15 13l4 -4l-4 -4m4 4h-11a4 4 0 0 0 0 8h1"},null,-1),jzn=[qzn,Gzn];function zzn(t,e){return N(),H("svg",Uzn,jzn)}const Yzn=bn(Fzn,[["render",zzn]]),Wzn={},Kzn={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"},Zzn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Xzn=S("line",{x1:"5",y1:"12",x2:"19",y2:"12"},null,-1),Jzn=S("line",{x1:"5",y1:"12",x2:"11",y2:"18"},null,-1),eYn=S("line",{x1:"5",y1:"12",x2:"11",y2:"6"},null,-1),tYn=[Zzn,Xzn,Jzn,eYn];function nYn(t,e){return N(),H("svg",Kzn,tYn)}const rYn=bn(Wzn,[["render",nYn]]),iYn={},oYn={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"},sYn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),aYn=S("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),lYn=S("rect",{x:"9",y:"3",width:"6",height:"4",rx:"2"},null,-1),cYn=[sYn,aYn,lYn];function uYn(t,e){return N(),H("svg",oYn,cYn)}const dYn=bn(iYn,[["render",uYn]]),TYn={},fYn={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"},pYn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),hYn=S("rect",{x:"8",y:"8",width:"12",height:"12",rx:"2"},null,-1),mYn=S("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),gYn=[pYn,hYn,mYn];function _Yn(t,e){return N(),H("svg",fYn,gYn)}const QYn=bn(TYn,[["render",_Yn]]),vYn={},yYn={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"},bYn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),EYn=S("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),SYn=S("circle",{cx:"12",cy:"14",r:"2"},null,-1),xYn=S("polyline",{points:"14 4 14 8 8 8 8 4"},null,-1),LYn=[bYn,EYn,SYn,xYn];function CYn(t,e){return N(),H("svg",yYn,LYn)}const AYn=bn(vYn,[["render",CYn]]),wYn={},OYn={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"},MYn=tr('',6),RYn=[MYn];function NYn(t,e){return N(),H("svg",OYn,RYn)}const DYn=bn(wYn,[["render",NYn]]),IYn={},kYn={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"},HYn=tr('',18),PYn=[HYn];function $Yn(t,e){return N(),H("svg",kYn,PYn)}const VYn=bn(IYn,[["render",$Yn]]),BYn={},FYn={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"},UYn=tr('',6),qYn=[UYn];function GYn(t,e){return N(),H("svg",FYn,qYn)}const jYn=bn(BYn,[["render",GYn]]),zYn=Mn({props:{command:{type:String,required:!0},title:{type:String,required:!0},icon:{type:Object,required:!1,default:void 0}},setup(){const{viewModel:t}=wi();return{viewModel:t}}}),YYn=["disabled","title"];function WYn(t,e,n,o,r,i){return N(),H("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(),it(Vc(t.icon),{key:0})):(N(),H(Ae,{key:1},[Oe(J(t.title),1)],64))],8,YYn)}const KYn=bn(zYn,[["render",WYn]]),ZYn=Mn({components:{ToolbarButton:KYn},setup(){const{viewModel:t}=wi();return{isSubgraph:$e(()=>t.value.displayedGraph!==t.value.editor.graph),commands:[{command:Gf,title:"Copy",icon:QYn},{command:jf,title:"Paste",icon:dYn},{command:qf,title:"Delete selected nodes",icon:jYn},{command:Ff,title:"Undo",icon:Bzn},{command:Uf,title:"Redo",icon:Yzn},{command:r0,title:"Box Select",icon:VYn},{command:QH,title:"Create Subgraph",icon:DYn}],subgraphCommands:[{command:Hc,title:"Save Subgraph",icon:AYn},{command:vH,title:"Back to Main Graph",icon:rYn}]}}});function XYn(t,e,n,o,r,i){const s=We("toolbar-button");return N(),H("div",{class:"baklava-toolbar",onContextmenu:e[0]||(e[0]=oe(()=>{},["stop","prevent"]))},[(N(!0),H(Ae,null,Ue(t.commands,a=>(N(),it(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)),t.isSubgraph?(N(!0),H(Ae,{key:0},Ue(t.subgraphCommands,a=>(N(),it(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)):Z("",!0)],32)}const JYn=bn(ZYn,[["render",XYn]]),eWn={class:"connections-container"},tWn=Mn({__name:"Editor",props:{viewModel:{}},setup(t){const e=t,n=Symbol("EditorToken"),o=a0(e,"viewModel");PGn(o);const r=ke(null);Tl("editorEl",r);const i=$e(()=>e.viewModel.displayedGraph.nodes),s=$e(()=>e.viewModel.displayedGraph.nodes.map(L=>aH(a0(L,"position")))),a=$e(()=>e.viewModel.displayedGraph.connections),l=$e(()=>e.viewModel.displayedGraph.selectedNodes),c=$Gn(),u=VGn(),d=BGn(o),f=FGn(r),T=$e(()=>({...c.styles.value})),h=ke(0);e.viewModel.editor.hooks.load.subscribe(n,L=>(h.value++,L));const g=L=>{c.onPointerMove(L),u.onMouseMove(L)},_=L=>{if(L.button===0){if(f.onPointerDown(L))return;L.target===r.value&&(y(),c.onPointerDown(L)),u.onMouseDown()}},m=L=>{c.onPointerUp(L),u.onMouseUp()},Q=L=>{L.key==="Tab"&&L.preventDefault(),e.viewModel.commandHandler.handleKeyDown(L)},v=L=>{e.viewModel.commandHandler.handleKeyUp(L)},b=L=>{["Control","Shift"].some(C=>e.viewModel.commandHandler.pressedKeys.includes(C))||y(),e.viewModel.displayedGraph.selectedNodes.push(L)},y=()=>{e.viewModel.displayedGraph.selectedNodes=[]},E=L=>{for(const C of e.viewModel.displayedGraph.selectedNodes){const A=i.value.indexOf(C),O=s.value[A];O.onPointerDown(L),document.addEventListener("pointermove",O.onPointerMove)}document.addEventListener("pointerup",x)},x=()=>{for(const L of e.viewModel.displayedGraph.selectedNodes){const C=i.value.indexOf(L),A=s.value[C];A.onPointerUp(),document.removeEventListener("pointermove",A.onPointerMove)}document.removeEventListener("pointerup",x)};return(L,C)=>(N(),H("div",{ref_key:"el",ref:r,tabindex:"-1",class:Ee(["baklava-editor",{"baklava-ignore-mouse":!!vt(u).temporaryConnection.value||vt(c).dragging.value,"--temporary-connection":!!vt(u).temporaryConnection.value,"--start-selection-box":vt(f).startSelection}]),onPointermove:oe(g,["self"]),onPointerdown:_,onPointerup:m,onWheel:C[1]||(C[1]=oe((...A)=>vt(c).onMouseWheel&&vt(c).onMouseWheel(...A),["self"])),onKeydown:Q,onKeyup:v,onContextmenu:C[2]||(C[2]=(...A)=>vt(d).open&&vt(d).open(...A))},[_n(L.$slots,"background",{},()=>[ne(GGn)]),_n(L.$slots,"toolbar",{},()=>[L.viewModel.settings.toolbar.enabled?(N(),it(JYn,{key:0})):Z("",!0)]),_n(L.$slots,"palette",{},()=>[L.viewModel.settings.palette.enabled?(N(),it(jjn,{key:0})):Z("",!0)]),(N(),H("svg",eWn,[(N(!0),H(Ae,null,Ue(a.value,A=>(N(),H("g",{key:A.id+h.value.toString()},[_n(L.$slots,"connection",{connection:A},()=>[ne(wjn,{connection:A},null,8,["connection"])])]))),128)),_n(L.$slots,"temporaryConnection",{temporaryConnection:vt(u).temporaryConnection.value},()=>[vt(u).temporaryConnection.value?(N(),it(Rjn,{key:0,connection:vt(u).temporaryConnection.value},null,8,["connection"])):Z("",!0)])])),S("div",{class:"node-container",style:Jt(T.value)},[ne(O2,{name:"fade"},{default:je(()=>[(N(!0),H(Ae,null,Ue(i.value,(A,O)=>_n(L.$slots,"node",{key:A.id+h.value.toString(),node:A,selected:l.value.includes(A),dragging:s.value[O].dragging.value,onSelect:R=>b(A),onStartDrag:E},()=>[ne(bjn,{node:A,selected:l.value.includes(A),dragging:s.value[O].dragging.value,onSelect:R=>b(A),onStartDrag:E},null,8,["node","selected","dragging","onSelect"])])),128))]),_:3})],4),_n(L.$slots,"sidebar",{},()=>[L.viewModel.settings.sidebar.enabled?(N(),it(Hjn,{key:0})):Z("",!0)]),_n(L.$slots,"minimap",{},()=>[L.viewModel.settings.enableMinimap?(N(),it(Pjn,{key:0})):Z("",!0)]),_n(L.$slots,"contextMenu",{contextMenu:vt(d)},()=>[L.viewModel.settings.contextMenu.enabled?(N(),it(Bh,{key:0,modelValue:vt(d).show.value,"onUpdate:modelValue":C[0]||(C[0]=A=>vt(d).show.value=A),items:vt(d).items.value,x:vt(d).x.value,y:vt(d).y.value,onClick:vt(d).onClick},null,8,["modelValue","items","x","y","onClick"])):Z("",!0)]),vt(f).isSelecting?(N(),H("div",{key:0,class:"selection-box",style:Jt(vt(f).getStyles())},null,4)):Z("",!0)],34))}});function nWn(t){const e=ke([]),n=ke([]);return{pressedKeys:e,handleKeyDown:s=>{e.value.includes(s.key)||e.value.push(s.key),!(document.activeElement&&sH(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 rWn=()=>{const t=ke(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)},o=(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)},r=(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=nWn(o);return pr({hasCommand:e,registerCommand:n,executeCommand:o,canExecuteCommand:r,...i})},iWn=t=>!(t instanceof r6);function oWn(t,e){return{switchGraph:o=>{let r;if(iWn(o))r=new r6(t.value),o.createGraph(r);else{if(o!==t.value.graph)throw new Error("Can only switch using 'Graph' instance when it is the root graph. Otherwise a 'GraphTemplate' must be used.");r=o}e.value&&e.value!==t.value.graph&&e.value.destroy(),r.panning=r.panning??o.panning??{x:0,y:0},r.scaling=r.scaling??o.scaling??1,r.selectedNodes=r.selectedNodes??[],r.sidebar=r.sidebar??{visible:!1,nodeId:"",optionName:""},e.value=r}}}function sWn(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 aWn=()=>({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 lWn(t){const e=ke(new MGn),n=Symbol("ViewModelToken"),o=ke(null),r=wP(o),{switchGraph:i}=oWn(e,o),s=$e(()=>r.value&&r.value!==e.value.graph),a=pr(aWn()),l=rWn(),c=Lzn(r,l),u=Mzn(r,e,l),d={renderNode:new Ai(null),renderInterface:new Ai(null)};return wzn(r,l,i),Dzn(r,l),vn(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,(h,g)=>(g.position=h.position??{x:0,y:0},g.width=h.width??a.nodes.defaultWidth,g.twoColumn=h.twoColumn??!1,h)),f.nodeHooks.afterSave.subscribe(n,(h,g)=>(h.position=g.position,h.width=g.width,h.twoColumn=g.twoColumn,h)),f.graphTemplateHooks.beforeLoad.subscribe(n,(h,g)=>(g.panning=h.panning,g.scaling=h.scaling,h)),f.graphTemplateHooks.afterSave.subscribe(n,(h,g)=>(h.panning=g.panning,h.scaling=g.scaling,h)),f.graph.hooks.load.subscribe(n,(h,g)=>(g.panning=h.panning,g.scaling=h.scaling,h)),f.graph.hooks.save.subscribe(n,(h,g)=>(h.panning=g.panning,h.scaling=g.scaling,h)),f.graphEvents.beforeAddNode.subscribe(n,h=>sWn(h,{defaultWidth:a.nodes.defaultWidth})),e.value.registerNodeType(gH,{category:"Subgraphs"}),e.value.registerNodeType(_H,{category:"Subgraphs"}),i(f.graph))},{immediate:!0}),pr({editor:e,displayedGraph:r,isSubgraph:s,settings:a,commandHandler:l,history:c,clipboard:u,hooks:d,switchGraph:i})}const cWn=Gl({type:"PersonalityNode",title:"Personality",inputs:{request:()=>new mn("Request",""),agent_name:()=>new pzn("Personality","",m1.state.config.personalities).setPort(!1)},outputs:{response:()=>new mn("Response","")},async calculate({request:t}){console.log(m1.state.config.personalities);let e="";try{e=(await fe.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),uWn=Gl({type:"RAGNode",title:"RAG",inputs:{request:()=>new mn("Prompt",""),document_path:()=>new i6("Document path","").setPort(!1)},outputs:{prompt:()=>new mn("Prompt with Data","")},async calculate({request:t,document_path:e}){let n="";try{n=(await fe.get("/rag",{params:{text:t,doc_path:e}})).data}catch(o){console.error(o)}return{response:n}}}),ZO=Gl({type:"Task",title:"Task",inputs:{description:()=>new i6("Task description","").setPort(!1)},outputs:{prompt:()=>new mn("Prompt")},calculate({description:t}){return{prompt:t}}}),XO=Gl({type:"TextDisplayNode",title:"TextDisplay",inputs:{text2display:()=>new mn("Input","")},outputs:{response:()=>new _zn("Text","")},async calculate({request:t}){}}),JO=Gl({type:"LLMNode",title:"LLM",inputs:{request:()=>new mn("Request","")},outputs:{response:()=>new mn("Response","")},async calculate({request:t}){console.log(m1.state.config.personalities);let e="";try{e=(await fe.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),dWn=Gl({type:"MultichoiceNode",title:"Multichoice",inputs:{question:()=>new mn("Question",""),outputs:()=>new i6("choices, one per line","","").setPort(!1)},outputs:{response:()=>new mn("Response","")}}),TWn=Mn({components:{"baklava-editor":tWn},setup(){const t=lWn(),e=new kGn(t.editor);t.editor.registerNodeType(cWn),t.editor.registerNodeType(ZO),t.editor.registerNodeType(uWn),t.editor.registerNodeType(XO),t.editor.registerNodeType(JO),t.editor.registerNodeType(dWn);const n=Symbol();e.events.afterRun.subscribe(n,a=>{e.pause(),RGn(a,t.editor),e.resume()}),e.start();function o(a,l,c){const u=new a;return t.displayedGraph.addNode(u),u.position.x=l,u.position.y=c,u}const r=o(ZO,300,140),i=o(JO,550,140),s=o(XO,850,140);return t.displayedGraph.addConnection(r.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)}}}}),fWn={style:{width:"100vw",height:"100vh"}};function pWn(t,e,n,o,r,i){const s=We("baklava-editor");return N(),H("div",fWn,[ne(s,{"view-model":t.baklava},null,8,["view-model"]),S("button",{onClick:e[0]||(e[0]=(...a)=>t.saveGraph&&t.saveGraph(...a))},"Save Graph"),S("button",{onClick:e[1]||(e[1]=(...a)=>t.loadGraph&&t.loadGraph(...a))},"Load Graph")])}const hWn=ze(TWn,[["render",pWn]]),mWn={},gWn={style:{width:"100vw",height:"100vh"}},_Wn=["src"];function QWn(t,e,n,o,r,i){return N(),H("div",gWn,[S("iframe",{src:t.$store.state.config.comfyui_base_url,class:"m-0 p-0 w-full h-full"},null,8,_Wn)])}const vWn=ze(mWn,[["render",QWn]]),yWn={},bWn={style:{width:"100vw",height:"100vh"}},EWn=["src"];function SWn(t,e,n,o,r,i){return N(),H("div",bWn,[S("iframe",{src:t.$store.state.config.sd_base_url,class:"m-0 p-0 w-full h-full"},null,8,EWn)])}const xWn=ze(yWn,[["render",SWn]]),LWn={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)}}},CWn={class:"app-card flex flex-col h-full"},AWn={class:"flex-grow"},wWn={class:"flex items-center mb-4"},OWn=["src"],MWn={class:"font-bold text-xl text-gray-800"},RWn={class:"text-sm text-gray-600"},NWn={class:"text-sm text-gray-600"},DWn={class:"text-sm text-gray-600"},IWn={class:"text-sm text-gray-600"},kWn={class:"text-sm text-gray-600"},HWn={class:"mb-4"},PWn={class:"text-sm text-gray-600 h-20 overflow-y-auto"},$Wn={class:"text-sm text-gray-600 mb-2"},VWn={key:0,class:"mb-4"},BWn={class:"text-xs text-gray-500 italic h-16 overflow-y-auto"},FWn={class:"mt-auto pt-4 border-t"},UWn={class:"flex justify-between items-center flex-wrap"},qWn=["title"],GWn=["fill"];function jWn(t,e,n,o,r,i){return N(),H("div",CWn,[S("div",AWn,[S("div",wWn,[S("img",{src:n.app.icon,alt:"App Icon",class:"w-16 h-16 rounded-full border border-gray-300 mr-4"},null,8,OWn),S("div",null,[S("h3",MWn,J(n.app.name),1),S("p",RWn,"Author: "+J(n.app.author),1),S("p",NWn,"Version: "+J(n.app.version),1),S("p",DWn,"Category: "+J(n.app.category),1),S("p",IWn,"Creation date: "+J(i.formatDate(n.app.creation_date)),1),S("p",kWn,"Last update: "+J(i.formatDate(n.app.last_update_date)),1),S("p",{class:Ee(["text-sm",n.app.is_public?"text-green-600":"text-orange-600"])},J(n.app.is_public?"Public App":"Local App"),3)])]),S("div",HWn,[e[10]||(e[10]=S("h4",{class:"font-semibold mb-1 text-gray-700"},"Description:",-1)),S("p",PWn,J(n.app.description),1)]),S("p",$Wn,"AI Model: "+J(n.app.model_name),1),n.app.disclaimer&&n.app.disclaimer.trim()!==""?(N(),H("div",VWn,[e[11]||(e[11]=S("h4",{class:"font-semibold mb-1 text-gray-700"},"Disclaimer:",-1)),S("p",BWn,J(n.app.disclaimer),1)])):Z("",!0)]),S("div",FWn,[S("div",UWn,[S("button",{onClick:e[0]||(e[0]=oe(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(),H("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]=[S("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,GWn))],8,qWn),n.app.installed?(N(),H("button",{key:0,onClick:e[1]||(e[1]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:1,onClick:e[2]||(e[2]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:2,onClick:e[3]||(e[3]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:3,onClick:e[4]||(e[4]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)]))):Z("",!0),S("button",{onClick:e[5]||(e[5]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:4,onClick:e[6]||(e[6]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)]))):Z("",!0),n.app.installed?(N(),H("button",{key:5,onClick:e[7]||(e[7]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)]))):Z("",!0),n.app.has_server&&n.app.installed?(N(),H("button",{key:6,onClick:e[8]||(e[8]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14M12 5l7 7-7 7"})],-1)]))):Z("",!0),n.app.has_update?(N(),H("button",{key:7,onClick:e[9]||(e[9]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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),S("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)]))):Z("",!0)])])])}const zWn=ze(LWn,[["render",jWn],["__scopeId","data-v-ae134649"]]),YWn={components:{AppCard:zWn},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,o=this.showOnlyInstalled&&t.installed||this.showOnlyUnInstalled&&!t.installed||!this.showOnlyInstalled&&!this.showOnlyUnInstalled;return e&&n&&o})},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.`),fe.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 o,r;this.$store.state.messageBox.hideMessage(),console.error("Error starting server:",n),this.$notify({type:"error",title:"Server Start Failed",text:((r=(o=n.response)==null?void 0:o.data)==null?void 0:r.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 o=await fe.post("/upload_app",t,{headers:{"Content-Type":"multipart/form-data"}});this.message=o.data.message,this.$refs.fileInput.value="",this.selectedFile=null}catch(o){console.error("Error uploading app:",o),this.error=((n=(e=o.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 fe.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 fe.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 fe.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 fe.get(`/apps/${t.folder_name}/README.md`);this.appCode=Et(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 fe.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 fe.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 fe.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 fe.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 fe.post("/download_app",{client_id:this.$store.state.client_id,app_name:t},{responseType:"arraybuffer"}),n=e.headers["content-disposition"],o=n&&n.match(/filename="?(.+)"?/i),r=o?o[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=r,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()}},WWn={class:"app-zoo background-color w-full p-6 pt-12 min-h-screen overflow-y-auto"},KWn={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},ZWn={class:"flex flex-wrap items-center justify-between gap-4"},XWn={class:"flex items-center space-x-4"},JWn=["disabled"],eKn={key:0},tKn={key:1,class:"error"},nKn={class:"relative flex-grow max-w-md"},rKn={class:"flex items-center space-x-4"},iKn=["value"],oKn={class:"flex items-center space-x-4"},sKn={for:"installed-only",class:"font-semibold"},aKn={for:"installed-only",class:"font-semibold"},lKn={class:"flex items-center space-x-4"},cKn={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},uKn={key:1,class:"pb-20"},dKn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-8"},TKn={class:"text-2xl font-bold mb-4"},fKn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"},pKn={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"},hKn={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},mKn={class:"flex justify-between items-center mb-4"},gKn={class:"text-2xl font-bold"},_Kn=["srcdoc"],QKn={key:1,class:"text-center text-red-500"};function vKn(t,e,n,o,r,i){const s=We("app-card");return N(),H("div",WWn,[S("nav",KWn,[S("div",ZWn,[S("div",XWn,[S("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]=[S("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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),Oe(" Refresh ")])),S("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]=[S("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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),Oe(" Open Folder ")])),S("input",{type:"file",onChange:e[2]||(e[2]=(...a)=>i.onFileSelected&&i.onFileSelected(...a)),accept:".zip",ref:"fileInput",style:{display:"none"}},null,544),S("button",{onClick:e[3]||(e[3]=(...a)=>i.triggerFileInput&&i.triggerFileInput(...a)),disabled:r.isUploading,class:"btn-secondary text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Upload App"},J(r.isUploading?"Uploading...":"Upload App"),9,JWn)]),r.message?(N(),H("p",eKn,J(r.message),1)):Z("",!0),r.error?(N(),H("p",tKn,J(r.error),1)):Z("",!0),S("div",nKn,[Ce(S("input",{"onUpdate:modelValue":e[4]||(e[4]=a=>r.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),[[Je,r.searchQuery]]),e[13]||(e[13]=S("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"},[S("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))]),S("div",rKn,[e[15]||(e[15]=S("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Ce(S("select",{id:"category-select","onUpdate:modelValue":e[5]||(e[5]=a=>r.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[14]||(e[14]=S("option",{value:"all"},"All Categories",-1)),(N(!0),H(Ae,null,Ue(i.categories,a=>(N(),H("option",{key:a,value:a},J(a),9,iKn))),128))],512),[[Ir,r.selectedCategory]])]),S("div",oKn,[S("label",sKn,[Ce(S("input",{id:"installed-only",type:"checkbox","onUpdate:modelValue":e[6]||(e[6]=a=>r.showOnlyInstalled=a),class:"mr-2"},null,512),[[Ql,r.showOnlyInstalled]]),e[16]||(e[16]=Oe(" Show only installed apps "))]),S("label",aKn,[Ce(S("input",{id:"uninstalled-only",type:"checkbox","onUpdate:modelValue":e[7]||(e[7]=a=>r.showOnlyUnInstalled=a),class:"mr-2"},null,512),[[Ql,r.showOnlyUnInstalled]]),e[17]||(e[17]=Oe(" Show only non installed apps "))])]),S("div",lKn,[e[19]||(e[19]=S("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Ce(S("select",{id:"sort-select","onUpdate:modelValue":e[8]||(e[8]=a=>r.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[18]||(e[18]=[S("option",{value:"name"},"Name",-1),S("option",{value:"author"},"Author",-1),S("option",{value:"date"},"Creation Date",-1),S("option",{value:"update"},"Last Update",-1)]),512),[[Ir,r.sortBy]]),S("button",{onClick:e[9]||(e[9]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},J(r.sortOrder==="asc"?"↑":"↓"),1)])])]),r.loading?(N(),H("div",cKn,e[20]||(e[20]=[S("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),S("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),H("div",uKn,[e[21]||(e[21]=S("h2",{class:"text-2xl font-bold mb-4"},"Favorite Apps",-1)),S("div",dKn,[(N(!0),H(Ae,null,Ue(i.favoriteApps,a=>(N(),it(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))]),S("h2",TKn,J(i.currentCategoryName)+" ("+J(i.sortedAndFilteredApps.length)+")",1),S("div",fKn,[(N(!0),H(Ae,null,Ue(i.sortedAndFilteredApps,a=>(N(),it(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))])])),r.selectedApp?(N(),H("div",pKn,[S("div",hKn,[S("div",mKn,[S("h2",gKn,J(r.selectedApp.name),1),S("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")]),r.appCode?(N(),H("iframe",{key:0,srcdoc:r.appCode,class:"flex-grow border-none"},null,8,_Kn)):(N(),H("p",QKn,"Please install this app to view its code."))])])):Z("",!0),r.message?(N(),H("div",{key:3,class:Ee(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":r.successMessage,"bg-red-100 text-red-800":!r.successMessage}])},J(r.message),3)):Z("",!0)])}const yKn=ze(YWn,[["render",vKn]]),bKn={components:{PersonalityEntry:Rk},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})},favoritePersonalities(){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 PGn=["INPUT","TEXTAREA","SELECT"];function sH(t){return PGn.includes(t.tagName)}let Bf=null;function $Gn(t){Bf=t}function wi(){if(!Bf)throw new Error("providePlugin() must be called before usePlugin()");return{viewModel:Bf}}function Zi(){const{viewModel:t}=wi();return{graph:a0(t.value,"displayedGraph"),switchGraph:t.value.switchGraph}}function aH(t){const{graph:e}=Zi(),n=ke(null),o=ke(null);return{dragging:$e(()=>!!n.value),onPointerDown:l=>{n.value={x:l.pageX,y:l.pageY},o.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=o.value.x+c/e.value.scaling,t.value.y=o.value.y+u/e.value.scaling}},onPointerUp:()=>{n.value=null,o.value=null}}}function lH(t,e,n){if(!e.template)return!1;if(Ol(e.template)===n)return!0;const o=t.graphTemplates.find(i=>Ol(i)===n);return o?o.nodes.filter(i=>i.type.startsWith(kc)).some(i=>lH(t,e,i.type)):!1}function cH(t){return $e(()=>{const e=Array.from(t.value.editor.nodeTypes.entries()),n=new Set(e.map(([,r])=>r.category)),o=[];for(const r of n.values()){let i=e.filter(([,s])=>s.category===r);t.value.displayedGraph.template?i=i.filter(([s])=>!lH(t.value.editor,t.value.displayedGraph,s)):i=i.filter(([s])=>![Al,wl].includes(s)),i.length>0&&o.push({name:r,nodeTypes:Object.fromEntries(i)})}return o.sort((r,i)=>r.name==="default"?-1:i.name==="default"||r.name>i.name?1:-1),o})}function uH(){const{graph:t}=Zi();return{transform:(n,o)=>{const r=n/t.value.scaling-t.value.panning.x,i=o/t.value.scaling-t.value.panning.y;return[r,i]}}}function VGn(){const{graph:t}=Zi();let e=[],n=-1,o={x:0,y:0};const r=$e(()=>t.value.panning),i=aH(r),s=$e(()=>({"transform-origin":"0 0",transform:`scale(${t.value.scaling}) translate(${t.value.panning.x}px, ${t.value.panning.y}px)`})),a=(T,h,g)=>{const _=[T/t.value.scaling-t.value.panning.x,h/t.value.scaling-t.value.panning.y],m=[T/g-t.value.panning.x,h/g-t.value.panning.y],Q=[m[0]-_[0],m[1]-_[1]];t.value.panning.x+=Q[0],t.value.panning.y+=Q[1],t.value.scaling=g},l=T=>{T.preventDefault();let h=T.deltaY;T.deltaMode===1&&(h*=32);const g=t.value.scaling*(1-h/3e3);a(T.offsetX,T.offsetY,g)},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:h,ay:g,bx:_,by:m}=c();o={x:h+(_-h)/2,y:g+(m-g)/2}}},onPointerMove:T=>{for(let h=0;h0){const y=t.value.scaling*(1+(b-n)/500);a(o.x,o.y,y)}n=b}else i.onPointerMove(T)},onPointerUp:T=>{e=e.filter(h=>h.pointerId!==T.pointerId),n=-1,i.onPointerUp()},onMouseWheel:l}}var Vi=(t=>(t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.FORBIDDEN=2]="FORBIDDEN",t))(Vi||{});const dH=Symbol();function BGn(){const{graph:t}=Zi(),e=ke(null),n=ke(null),o=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)},r=()=>{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:Vi.NONE,from:a.from},t.value.removeConnection(a)):e.value={status:Vi.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?Vi.ALLOWED:Vi.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=Vi.NONE,t.value.connections.forEach(l=>{l.isInDanger=!1}))};return Tl(dH,{temporaryConnection:e,hoveredOver:s}),{temporaryConnection:e,onMouseMove:o,onMouseDown:r,onMouseUp:i,hoveredOver:s}}function FGn(t){const e=ke(!1),n=ke(0),o=ke(0),r=cH(t),{transform:i}=uH(),s=$e(()=>{let u=[];const d={};for(const T of r.value){const h=Object.entries(T.nodeTypes).map(([g,_])=>({label:_.title,value:"addNode:"+g}));T.name==="default"?u=h:d[T.name]=h}const f=[...Object.entries(d).map(([T,h])=>({label:T,submenu:h}))];return f.length>0&&u.length>0&&f.push({isDivider:!0}),f.push(...u),f}),a=$e(()=>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)||sH(d))return;u.preventDefault(),e.value=!0;const f=d.getBoundingClientRect(),h=d.closest(".baklava-editor").getBoundingClientRect();n.value=f.x+u.offsetX-h.x,o.value=f.y+u.offsetY-h.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=pr(new f.type);t.value.displayedGraph.addNode(T);const[h,g]=i(n.value,o.value);T.position.x=h,T.position.y=g}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:o,items:a,open:l,onClick:c}}const r0="START_SELECTION_BOX";function UGn(t){const{viewModel:e}=wi(),{graph:n}=Zi(),o=$e(()=>n.value.nodes),r=ke(!1),i=ke(!1),s=ke([0,0]),a=ke([0,0]);vn(e,()=>{e.value.commandHandler.hasCommand(r0)||(e.value.commandHandler.registerCommand(r0,{canExecute:()=>!0,execute(){r.value=!0}}),e.value.commandHandler.registerHotkey(["b"],r0))},{immediate:!0});function l(m){return[m.clientX-t.value.getBoundingClientRect().left,m.clientY-t.value.getBoundingClientRect().top]}function c(m){return r.value?(i.value=!0,r.value=!1,s.value=l(m),a.value=l(m),document.addEventListener("pointermove",u),document.addEventListener("pointerup",d),!0):!1}function u(m){s.value=l(m)}function d(m){document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",d),s.value=l(m),i.value=!1;const Q=f();for(const v of Q)e.value.displayedGraph.selectedNodes.push(v)}function f(){const m=T(),v=document.querySelector(".baklava-editor").getBoundingClientRect();return o.value.filter(b=>{const y=h(b,v);return g(m,y)})}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 h(m,Q){const v=document.getElementById(m.id),b=v?v.getBoundingClientRect():{x:0,y:0,width:0,height:0},y=b.x-Q.left,E=b.y-Q.top;return{left:y,top:E,right:y+b.width,bottom:E+b.height}}function g(m,Q){return m.leftQ.left&&m.topQ.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 pr({startSelection:r,isSelecting:i,start:s,end:a,onPointerDown:c,getStyles:_})}const qGn=Mn({setup(){const{viewModel:t}=wi(),{graph:e}=Zi();return{styles:$e(()=>{const o=t.value.settings.background,r=e.value.panning.x*e.value.scaling,i=e.value.panning.y*e.value.scaling,s=e.value.scaling*o.gridSize,a=s/o.gridDivision,l=`${s}px ${s}px, ${s}px ${s}px`,c=e.value.scaling>o.subGridVisibleThreshold?`, ${a}px ${a}px, ${a}px ${a}px`:"";return{backgroundPosition:`left ${r}px top ${i}px`,backgroundSize:`${l} ${c}`}})}}}),bn=(t,e)=>{const n=t.__vccOpts||t;for(const[o,r]of e)n[o]=r;return n};function GGn(t,e,n,o,r,i){return N(),H("div",{class:"background",style:Jt(t.styles)},null,4)}const jGn=bn(qGn,[["render",GGn]]);function zGn(t){return cM()?(sP(t),!0):!1}function $h(t){return typeof t=="function"?t():vt(t)}const TH=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const YGn=Object.prototype.toString,WGn=t=>YGn.call(t)==="[object Object]",i0=()=>{},KGn=ZGn();function ZGn(){var t,e;return TH&&((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 XGn(t,e,n=!1){return e.reduce((o,r)=>(r in t&&(!n||t[r]!==void 0)&&(o[r]=t[r]),o),{})}function JGn(t,e={}){if(!$n(t))return IP(t);const n=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const o in t.value)n[o]=DP(()=>({get(){return t.value[o]},set(r){var i;if((i=$h(e.replaceRef))!=null?i:!0)if(Array.isArray(t.value)){const a=[...t.value];a[o]=r,t.value=a}else{const a={...t.value,[o]:r};Object.setPrototypeOf(a,Object.getPrototypeOf(t.value)),t.value=a}else t.value[o]=r}}));return n}function cc(t){var e;const n=$h(t);return(e=n==null?void 0:n.$el)!=null?e:n}const Vh=TH?window:void 0;function yc(...t){let e,n,o,r;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,o,r]=t,e=Vh):[e,n,o,r]=t,!e)return i0;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);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=vn(()=>[cc(e),$h(r)],([u,d])=>{if(s(),!u)return;const f=WGn(d)?{...d}:d;i.push(...n.flatMap(T=>o.map(h=>a(u,T,h,f))))},{immediate:!0,flush:"post"}),c=()=>{l(),s()};return zGn(c),c}let qO=!1;function fH(t,e,n={}){const{window:o=Vh,ignore:r=[],capture:i=!0,detectIframe:s=!1}=n;if(!o)return i0;KGn&&!qO&&(qO=!0,Array.from(o.document.body.children).forEach(f=>f.addEventListener("click",i0)),o.document.documentElement.addEventListener("click",i0));let a=!0;const l=f=>r.some(T=>{if(typeof T=="string")return Array.from(o.document.querySelectorAll(T)).some(h=>h===f.target||f.composedPath().includes(h));{const h=cc(T);return h&&(f.target===h||f.composedPath().includes(h))}}),u=[yc(o,"click",f=>{const T=cc(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}),yc(o,"pointerdown",f=>{const T=cc(t);a=!l(f)&&!!(T&&!f.composedPath().includes(T))},{passive:!0}),s&&yc(o,"blur",f=>{setTimeout(()=>{var T;const h=cc(t);((T=o.document.activeElement)==null?void 0:T.tagName)==="IFRAME"&&!(h!=null&&h.contains(o.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},ejn=Object.keys(pH);function tjn(t={}){const{target:e=Vh}=t,n=ke(!1),o=ke(t.initialValue||{});Object.assign(o.value,pH,o.value);const r=i=>{n.value=!0,!(t.pointerTypes&&!t.pointerTypes.includes(i.pointerType))&&(o.value=XGn(i,ejn,!1))};if(e){const i={passive:!0};yc(e,["pointerdown","pointermove","pointerup"],r,i),yc(e,"pointerleave",()=>n.value=!1,i)}return{...JGn(o),isInside:n}}const njn=["onMouseenter","onMouseleave","onClick"],rjn={class:"flex-fill"},ijn={key:0,class:"__submenu-icon",style:{"line-height":"1em"}},ojn=S("svg",{width:"13",height:"13",viewBox:"-60 120 250 250"},[S("path",{d:"M160.875 279.5625 L70.875 369.5625 L70.875 189.5625 L160.875 279.5625 Z",stroke:"none",fill:"white"})],-1),sjn=[ojn],Bh=Mn({__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,o=e;let r=null;const i=ke(null),s=ke(-1),a=ke(0),l=ke({x:!1,y:!1}),c=$e(()=>n.flippable&&(l.value.x||n.isFlipped.x)),u=$e(()=>n.flippable&&(l.value.y||n.isFlipped.y)),d=$e(()=>{const Q={};return n.isNested||(Q.top=(u.value?n.y-a.value:n.y)+"px",Q.left=n.x+"px"),Q}),f=$e(()=>({"--flipped-x":c.value,"--flipped-y":u.value,"--nested":n.isNested})),T=$e(()=>n.items.map(Q=>({...Q,hover:!1})));vn([()=>n.y,()=>n.items],()=>{var Q,v,b,y;a.value=n.items.length*30;const E=((v=(Q=i.value)==null?void 0:Q.parentElement)==null?void 0:v.offsetWidth)??0,x=((y=(b=i.value)==null?void 0:b.parentElement)==null?void 0:y.offsetHeight)??0;l.value.x=!n.isNested&&n.x>E*.75,l.value.y=!n.isNested&&n.y+a.value>x-20}),fH(i,()=>{n.modelValue&&o("update:modelValue",!1)});const h=Q=>{!Q.submenu&&Q.value&&(o("click",Q.value),o("update:modelValue",!1))},g=Q=>{o("click",Q),s.value=-1,n.isNested||o("update:modelValue",!1)},_=(Q,v)=>{n.items[v].submenu&&(s.value=v,r!==null&&(clearTimeout(r),r=null))},m=(Q,v)=>{n.items[v].submenu&&(r=window.setTimeout(()=>{s.value=-1,r=null},200))};return(Q,v)=>{const b=We("ContextMenu",!0);return N(),it(Tr,{name:"slide-fade"},{default:je(()=>[Ce(S("div",{ref_key:"el",ref:i,class:Ee(["baklava-context-menu",f.value]),style:Jt(d.value)},[(N(!0),H(Ae,null,Ue(T.value,(y,E)=>(N(),H(Ae,null,[y.isDivider?(N(),H("div",{key:`d-${E}`,class:"divider"})):(N(),H("div",{key:`i-${E}`,class:Ee(["item",{submenu:!!y.submenu,"--disabled":!!y.disabled}]),onMouseenter:x=>_(x,E),onMouseleave:x=>m(x,E),onClick:oe(x=>h(y),["stop","prevent"])},[S("div",rjn,J(y.label),1),y.submenu?(N(),H("div",ijn,sjn)):Z("",!0),y.submenu?(N(),it(b,{key:1,"model-value":s.value===E,items:y.submenu,"is-nested":!0,"is-flipped":{x:c.value,y:u.value},flippable:Q.flippable,onClick:g},null,8,["model-value","items","is-flipped","flippable"])):Z("",!0)],42,njn))],64))),256))],6),[[wn,Q.modelValue]])]),_:1})}}}),ajn={},ljn={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"},cjn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),ujn=S("circle",{cx:"12",cy:"12",r:"1"},null,-1),djn=S("circle",{cx:"12",cy:"19",r:"1"},null,-1),Tjn=S("circle",{cx:"12",cy:"5",r:"1"},null,-1),fjn=[cjn,ujn,djn,Tjn];function pjn(t,e){return N(),H("svg",ljn,fjn)}const hH=bn(ajn,[["render",pjn]]),hjn=["id"],mjn={key:0,class:"__tooltip"},gjn={key:2,class:"align-middle"},GO=Mn({__name:"NodeInterface",props:{node:{},intf:{}},setup(t){const e=(_,m=100)=>{const Q=typeof(_==null?void 0:_.toString)=="function"?String(_):"";return Q.length>m?Q.slice(0,m)+"...":Q},n=t,{viewModel:o}=wi(),{hoveredOver:r,temporaryConnection:i}=xi(dH),s=ke(null),a=$e(()=>n.intf.connectionCount>0),l=ke(!1),c=$e(()=>o.value.settings.displayValueOnHover&&l.value),u=$e(()=>({"--input":n.intf.isInput,"--output":!n.intf.isInput,"--connected":a.value})),d=$e(()=>n.intf.component&&(!n.intf.isInput||!n.intf.port||n.intf.connectionCount===0)),f=()=>{l.value=!0,r(n.intf)},T=()=>{l.value=!1,r(void 0)},h=()=>{s.value&&o.value.hooks.renderInterface.execute({intf:n.intf,el:s.value})},g=()=>{const _=o.value.displayedGraph.sidebar;_.nodeId=n.node.id,_.optionName=n.intf.name,_.visible=!0};return hr(h),Dl(h),(_,m)=>{var Q;return N(),H("div",{id:_.intf.id,ref_key:"el",ref:s,class:Ee(["baklava-node-interface",u.value])},[_.intf.port?(N(),H("div",{key:0,class:Ee(["__port",{"--selected":((Q=vt(i))==null?void 0:Q.from)===_.intf}]),onPointerover:f,onPointerout:T},[_n(_.$slots,"portTooltip",{showTooltip:c.value},()=>[c.value===!0?(N(),H("span",mjn,J(e(_.intf.value)),1)):Z("",!0)])],34)):Z("",!0),d.value?(N(),it(Vc(_.intf.component),{key:1,modelValue:_.intf.value,"onUpdate:modelValue":m[0]||(m[0]=v=>_.intf.value=v),node:_.node,intf:_.intf,onOpenSidebar:g},null,40,["modelValue","node","intf"])):(N(),H("span",gjn,J(_.intf.name),1))],10,hjn)}}}),_jn=["id","data-node-type"],Qjn={class:"__title-label"},vjn={class:"__menu"},yjn={class:"__outputs"},bjn={class:"__inputs"},Ejn=Mn({__name:"Node",props:{node:{},selected:{type:Boolean,default:!1},dragging:{type:Boolean}},emits:["select","start-drag"],setup(t,{emit:e}){const n=t,o=e,{viewModel:r}=wi(),{graph:i,switchGraph:s}=Zi(),a=ke(null),l=ke(!1),c=ke(""),u=ke(null),d=ke(!1),f=ke(!1),T=$e(()=>{const R=[{value:"rename",label:"Rename"},{value:"delete",label:"Delete"}];return n.node.type.startsWith(kc)&&R.push({value:"editSubgraph",label:"Edit Subgraph"}),R}),h=$e(()=>({"--selected":n.selected,"--dragging":n.dragging,"--two-column":!!n.node.twoColumn})),g=$e(()=>({"--reverse-y":n.node.reverseY??r.value.settings.nodes.reverseY})),_=$e(()=>{var R,D;return{top:`${((R=n.node.position)==null?void 0:R.y)??0}px`,left:`${((D=n.node.position)==null?void 0:D.x)??0}px`,"--width":`${n.node.width??r.value.settings.nodes.defaultWidth}px`}}),m=$e(()=>Object.values(n.node.inputs).filter(R=>!R.hidden)),Q=$e(()=>Object.values(n.node.outputs).filter(R=>!R.hidden)),v=()=>{o("select")},b=R=>{n.selected||v(),o("start-drag",R)},y=()=>{f.value=!0},E=async R=>{var D;switch(R){case"delete":i.value.removeNode(n.node);break;case"rename":c.value=n.node.title,l.value=!0,await be(),(D=u.value)==null||D.focus();break;case"editSubgraph":s(n.node.template);break}},x=()=>{n.node.title=c.value,l.value=!1},L=()=>{a.value&&r.value.hooks.renderNode.execute({node:n.node,el:a.value})},C=R=>{d.value=!0,R.preventDefault()},A=R=>{if(!d.value)return;const D=n.node.width+R.movementX/i.value.scaling,M=r.value.settings.nodes.minWidth,$=r.value.settings.nodes.maxWidth;n.node.width=Math.max(M,Math.min($,D))},O=()=>{d.value=!1};return hr(()=>{L(),window.addEventListener("mousemove",A),window.addEventListener("mouseup",O)}),Dl(L),X1(()=>{window.removeEventListener("mousemove",A),window.removeEventListener("mouseup",O)}),(R,D)=>(N(),H("div",{id:R.node.id,ref_key:"el",ref:a,class:Ee(["baklava-node",h.value]),style:Jt(_.value),"data-node-type":R.node.type,onPointerdown:v},[vt(r).settings.nodes.resizable?(N(),H("div",{key:0,class:"__resize-handle",onMousedown:C},null,32)):Z("",!0),_n(R.$slots,"title",{},()=>[S("div",{class:"__title",onPointerdown:oe(b,["self","stop"])},[l.value?Ce((N(),H("input",{key:1,ref_key:"renameInputEl",ref:u,"onUpdate:modelValue":D[1]||(D[1]=M=>c.value=M),type:"text",class:"baklava-input",placeholder:"Node Name",onBlur:x,onKeydown:Qn(x,["enter"])},null,544)),[[Je,c.value]]):(N(),H(Ae,{key:0},[S("div",Qjn,J(R.node.title),1),S("div",vjn,[ne(hH,{class:"--clickable",onClick:y}),ne(vt(Bh),{modelValue:f.value,"onUpdate:modelValue":D[0]||(D[0]=M=>f.value=M),x:0,y:0,items:T.value,onClick:E},null,8,["modelValue","items"])])],64))],32)]),_n(R.$slots,"content",{},()=>[S("div",{class:Ee(["__content",g.value]),onKeydown:D[2]||(D[2]=Qn(oe(()=>{},["stop"]),["delete"]))},[S("div",yjn,[(N(!0),H(Ae,null,Ue(Q.value,M=>_n(R.$slots,"nodeInterface",{key:M.id,type:"output",node:R.node,intf:M},()=>[ne(GO,{node:R.node,intf:M},null,8,["node","intf"])])),128))]),S("div",bjn,[(N(!0),H(Ae,null,Ue(m.value,M=>_n(R.$slots,"nodeInterface",{key:M.id,type:"input",node:R.node,intf:M},()=>[ne(GO,{node:R.node,intf:M},null,8,["node","intf"])])),128))])],34)])],46,_jn))}}),Sjn=Mn({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:Vi.NONE},isTemporary:{type:Boolean,default:!1}},setup(t){const{viewModel:e}=wi(),{graph:n}=Zi(),o=(s,a)=>{const l=(s+n.value.panning.x)*n.value.scaling,c=(a+n.value.panning.y)*n.value.scaling;return[l,c]},r=$e(()=>{const[s,a]=o(t.x1,t.y1),[l,c]=o(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=$e(()=>({"--temporary":t.isTemporary,"--allowed":t.state===Vi.ALLOWED,"--forbidden":t.state===Vi.FORBIDDEN}));return{d:r,classes:i}}}),xjn=["d"];function Ljn(t,e,n,o,r,i){return N(),H("path",{class:Ee(["baklava-connection",t.classes]),d:t.d},null,10,xjn)}const mH=bn(Sjn,[["render",Ljn]]);function Cjn(t){return document.getElementById(t.id)}function Ml(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 Ajn=Mn({components:{"connection-view":mH},props:{connection:{type:Object,required:!0}},setup(t){const{graph:e}=Zi();let n;const o=ke({x1:0,y1:0,x2:0,y2:0}),r=$e(()=>t.connection.isInDanger?Vi.FORBIDDEN:Vi.NONE),i=$e(()=>{var c;return(c=e.value.findNodeById(t.connection.from.nodeId))==null?void 0:c.position}),s=$e(()=>{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=Ml(t.connection.from),u=Ml(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,h]=a(u);o.value={x1:d,y1:f,x2:T,y2:h}};return hr(async()=>{await be(),l()}),X1(()=>{n&&n.disconnect()}),vn([i,s],()=>l(),{deep:!0}),{d:o,state:r}}});function wjn(t,e,n,o,r,i){const s=We("connection-view");return N(),it(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 Ojn=bn(Ajn,[["render",wjn]]);function H0(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 Mjn=Mn({components:{"connection-view":mH},props:{connection:{type:Object,required:!0}},setup(t){const e=$e(()=>t.connection?t.connection.status:Vi.NONE);return{d:$e(()=>{if(!t.connection)return{input:[0,0],output:[0,0]};const o=H0(Ml(t.connection.from)),r=t.connection.to?H0(Ml(t.connection.to)):[t.connection.mx||o[0],t.connection.my||o[1]];return t.connection.from.isInput?{input:r,output:o}:{input:o,output:r}}),status:e}}});function Rjn(t,e,n,o,r,i){const s=We("connection-view");return N(),it(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 Njn=bn(Mjn,[["render",Rjn]]),Djn=Mn({setup(){const{viewModel:t}=wi(),{graph:e}=Zi(),n=ke(null),o=a0(t.value.settings.sidebar,"width"),r=$e(()=>t.value.settings.sidebar.resizable),i=$e(()=>{const d=e.value.sidebar.nodeId;return e.value.nodes.find(f=>f.id===d)}),s=$e(()=>({width:`${o.value}px`})),a=$e(()=>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 h=((T=(f=n.value)==null?void 0:f.parentElement)==null?void 0:T.getBoundingClientRect().width)??500;let g=o.value-d.movementX;g<300?g=300:g>.9*h&&(g=.9*h),o.value=g};return{el:n,graph:e,resizable:r,node:i,styles:s,displayedInterfaces:a,startResize:c,close:l}}}),Ijn={class:"__header"},kjn={class:"__node-name"};function Hjn(t,e,n,o,r,i){return N(),H("div",{ref:"el",class:Ee(["baklava-sidebar",{"--open":t.graph.sidebar.visible}]),style:Jt(t.styles)},[t.resizable?(N(),H("div",{key:0,class:"__resizer",onMousedown:e[0]||(e[0]=(...s)=>t.startResize&&t.startResize(...s))},null,32)):Z("",!0),S("div",Ijn,[S("button",{tabindex:"-1",class:"__close",onClick:e[1]||(e[1]=(...s)=>t.close&&t.close(...s))},"×"),S("div",kjn,[S("b",null,J(t.node?t.node.title:""),1)])]),(N(!0),H(Ae,null,Ue(t.displayedInterfaces,s=>(N(),H("div",{key:s.id,class:"__interface"},[(N(),it(Vc(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 Pjn=bn(Djn,[["render",Hjn]]),$jn=Mn({__name:"Minimap",setup(t){const{viewModel:e}=wi(),{graph:n}=Zi(),o=ke(null),r=ke(!1);let i,s=!1,a={x1:0,y1:0,x2:0,y2:0},l;const c=()=>{var E,x;if(!i)return;i.canvas.width=o.value.offsetWidth,i.canvas.height=o.value.offsetHeight;const L=new Map,C=new Map;for(const M of n.value.nodes){const $=Cjn(M),U=($==null?void 0:$.offsetWidth)??0,G=($==null?void 0:$.offsetHeight)??0,P=((E=M.position)==null?void 0:E.x)??0,F=((x=M.position)==null?void 0:x.y)??0;L.set(M,{x1:P,y1:F,x2:P+U,y2:F+G}),C.set(M,$)}const A={x1:Number.MAX_SAFE_INTEGER,y1:Number.MAX_SAFE_INTEGER,x2:Number.MIN_SAFE_INTEGER,y2:Number.MIN_SAFE_INTEGER};for(const M of L.values())M.x1A.x2&&(A.x2=M.x2),M.y2>A.y2&&(A.y2=M.y2);const O=50;A.x1-=O,A.y1-=O,A.x2+=O,A.y2+=O,a=A;const R=i.canvas.width/i.canvas.height,D=(a.x2-a.x1)/(a.y2-a.y1);if(R>D){const M=(R-D)*(a.y2-a.y1)*.5;a.x1-=M,a.x2+=M}else{const M=a.x2-a.x1,$=a.y2-a.y1,U=(M-R*$)/R*.5;a.y1-=U,a.y2+=U}i.clearRect(0,0,i.canvas.width,i.canvas.height),i.strokeStyle="white";for(const M of n.value.connections){const[$,U]=H0(Ml(M.from)),[G,P]=H0(Ml(M.to)),[F,B]=u($,U),[q,ee]=u(G,P);if(i.beginPath(),i.moveTo(F,B),e.value.settings.useStraightConnections)i.lineTo(q,ee);else{const K=.3*Math.abs(F-q);i.bezierCurveTo(F+K,B,q-K,ee,q,ee)}i.stroke()}i.strokeStyle="lightgray";for(const[M,$]of L.entries()){const[U,G]=u($.x1,$.y1),[P,F]=u($.x2,$.y2);i.fillStyle=f(C.get(M)),i.beginPath(),i.rect(U,G,P-U,F-G),i.fill(),i.stroke()}if(r.value){const M=h(),[$,U]=u(M.x1,M.y1),[G,P]=u(M.x2,M.y2);i.fillStyle="rgba(255, 255, 255, 0.2)",i.fillRect($,U,G-$,P-U)}},u=(E,x)=>[(E-a.x1)/(a.x2-a.x1)*i.canvas.width,(x-a.y1)/(a.y2-a.y1)*i.canvas.height],d=(E,x)=>[E*(a.x2-a.x1)/i.canvas.width+a.x1,x*(a.y2-a.y1)/i.canvas.height+a.y1],f=E=>{if(E){const x=E.querySelector(".__content");if(x){const C=T(x);if(C)return C}const L=T(E);if(L)return L}return"gray"},T=E=>{const x=getComputedStyle(E).backgroundColor;if(x&&x!=="rgba(0, 0, 0, 0)")return x},h=()=>{const E=o.value.parentElement.offsetWidth,x=o.value.parentElement.offsetHeight,L=E/n.value.scaling-n.value.panning.x,C=x/n.value.scaling-n.value.panning.y;return{x1:-n.value.panning.x,y1:-n.value.panning.y,x2:L,y2:C}},g=E=>{E.button===0&&(s=!0,_(E))},_=E=>{if(s){const[x,L]=d(E.offsetX,E.offsetY),C=h(),A=(C.x2-C.x1)/2,O=(C.y2-C.y1)/2;n.value.panning.x=-(x-A),n.value.panning.y=-(L-O)}},m=()=>{s=!1},Q=()=>{r.value=!0},v=()=>{r.value=!1,m()};vn([r,n.value.panning,()=>n.value.scaling,()=>n.value.connections.length],()=>{c()});const b=$e(()=>n.value.nodes.map(E=>E.position)),y=$e(()=>n.value.nodes.map(E=>E.width));return vn([b,y],()=>{c()},{deep:!0}),hr(()=>{i=o.value.getContext("2d"),i.imageSmoothingQuality="high",c(),l=setInterval(c,500)}),X1(()=>{clearInterval(l)}),(E,x)=>(N(),H("canvas",{ref_key:"canvas",ref:o,class:"baklava-minimap",onMouseenter:Q,onMouseleave:v,onMousedown:oe(g,["self"]),onMousemove:oe(_,["self"]),onMouseup:m,onContextmenu:x[0]||(x[0]=oe(()=>{},["stop","prevent"]))},null,544))}}),Vjn=Mn({components:{ContextMenu:Bh,VerticalDots:hH},props:{type:{type:String,required:!0},title:{type:String,required:!0}},setup(t){const{viewModel:e}=wi(),{switchGraph:n}=Zi(),o=ke(!1),r=$e(()=>t.type.startsWith(kc));return{showContextMenu:o,hasContextMenu:r,contextMenuItems:[{label:"Edit Subgraph",value:"editSubgraph"},{label:"Delete Subgraph",value:"deleteSubgraph"}],openContextMenu:()=>{o.value=!0},onContextMenuClick:l=>{const c=t.type.substring(kc.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}}}}}),Bjn=["data-node-type"],Fjn={class:"__title"},Ujn={class:"__title-label"},qjn={key:0,class:"__menu"};function Gjn(t,e,n,o,r,i){const s=We("vertical-dots"),a=We("context-menu");return N(),H("div",{class:"baklava-node --palette","data-node-type":t.type},[S("div",Fjn,[S("div",Ujn,J(t.title),1),t.hasContextMenu?(N(),H("div",qjn,[ne(s,{class:"--clickable",onPointerdown:e[0]||(e[0]=oe(()=>{},["stop","prevent"])),onClick:oe(t.openContextMenu,["stop","prevent"])},null,8,["onClick"]),ne(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]=oe(()=>{},["stop","prevent"]))},null,8,["modelValue","items","onClick"])])):Z("",!0)])],8,Bjn)}const jO=bn(Vjn,[["render",Gjn]]),jjn={key:0},zjn=Mn({__name:"NodePalette",setup(t){const{viewModel:e}=wi(),{x:n,y:o}=tjn(),{transform:r}=uH(),i=cH(e),s=xi("editorEl"),a=ke(null),l=$e(()=>{if(!a.value||!(s!=null&&s.value))return{};const{left:u,top:d}=s.value.getBoundingClientRect();return{top:`${o.value-d}px`,left:`${n.value-u}px`}}),c=(u,d)=>{a.value={type:u,nodeInformation:d};const f=()=>{const T=pr(new d.type);e.value.displayedGraph.addNode(T);const h=s.value.getBoundingClientRect(),[g,_]=r(n.value-h.left,o.value-h.top);T.position.x=g,T.position.y=_,a.value=null,document.removeEventListener("pointerup",f)};document.addEventListener("pointerup",f)};return(u,d)=>(N(),H(Ae,null,[S("div",{class:"baklava-node-palette",onContextmenu:d[0]||(d[0]=oe(()=>{},["stop","prevent"]))},[(N(!0),H(Ae,null,Ue(vt(i),f=>(N(),H("section",{key:f.name},[f.name!=="default"?(N(),H("h1",jjn,J(f.name),1)):Z("",!0),(N(!0),H(Ae,null,Ue(f.nodeTypes,(T,h)=>(N(),it(jO,{key:h,type:h,title:T.title,onPointerdown:g=>c(h,T)},null,8,["type","title","onPointerdown"]))),128))]))),128))],32),ne(Tr,{name:"fade"},{default:je(()=>[a.value?(N(),H("div",{key:0,class:"baklava-dragged-node",style:Jt(l.value)},[ne(jO,{type:a.value.type,title:a.value.nodeInformation.title},null,8,["type","title"])],4)):Z("",!0)]),_:1})],64))}});let $6;const Yjn=new Uint8Array(16);function Wjn(){if(!$6&&($6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!$6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $6(Yjn)}const er=[];for(let t=0;t<256;++t)er.push((t+256).toString(16).slice(1));function Kjn(t,e=0){return er[t[e+0]]+er[t[e+1]]+er[t[e+2]]+er[t[e+3]]+"-"+er[t[e+4]]+er[t[e+5]]+"-"+er[t[e+6]]+er[t[e+7]]+"-"+er[t[e+8]]+er[t[e+9]]+"-"+er[t[e+10]]+er[t[e+11]]+er[t[e+12]]+er[t[e+13]]+er[t[e+14]]+er[t[e+15]]}const Zjn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),zO={randomUUID:Zjn};function P0(t,e,n){if(zO.randomUUID&&!t)return zO.randomUUID();t=t||{};const o=t.random||(t.rng||Wjn)();return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Kjn(o)}const Hc="SAVE_SUBGRAPH";function Xjn(t,e){const n=()=>{const o=t.value;if(!o.template)throw new Error("Graph template property not set");o.template.update(o.save()),o.template.panning=o.panning,o.template.scaling=o.scaling};e.registerCommand(Hc,{canExecute:()=>{var o;return t.value!==((o=t.value.editor)==null?void 0:o.graph)},execute:n})}const Jjn={},ezn={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"},tzn=S("polyline",{points:"6 9 12 15 18 9"},null,-1),nzn=[tzn];function rzn(t,e){return N(),H("svg",ezn,nzn)}const izn=bn(Jjn,[["render",rzn]]),ozn=Mn({components:{"i-arrow":izn},props:{intf:{type:Object,required:!0}},setup(t){const e=ke(null),n=ke(!1),o=$e(()=>t.intf.items.find(s=>typeof s=="string"?s===t.intf.value:s.value===t.intf.value)),r=$e(()=>o.value?typeof o.value=="string"?o.value:o.value.text:""),i=s=>{t.intf.value=typeof s=="string"?s:s.value};return fH(e,()=>{n.value=!1}),{el:e,open:n,selectedItem:o,selectedText:r,setSelected:i}}}),szn=["title"],azn={class:"__selected"},lzn={class:"__text"},czn={class:"__icon"},uzn={class:"__dropdown"},dzn={class:"item --header"},Tzn=["onClick"];function fzn(t,e,n,o,r,i){const s=We("i-arrow");return N(),H("div",{ref:"el",class:Ee(["baklava-select",{"--open":t.open}]),title:t.intf.name,onClick:e[0]||(e[0]=a=>t.open=!t.open)},[S("div",azn,[S("div",lzn,J(t.selectedText),1),S("div",czn,[ne(s)])]),ne(Tr,{name:"slide-fade"},{default:je(()=>[Ce(S("div",uzn,[S("div",dzn,J(t.intf.name),1),(N(!0),H(Ae,null,Ue(t.intf.items,(a,l)=>(N(),H("div",{key:l,class:Ee(["item",{"--active":a===t.selectedItem}]),onClick:c=>t.setSelected(a)},J(typeof a=="string"?a:a.text),11,Tzn))),128))],512),[[wn,t.open]])]),_:1})],10,szn)}const pzn=bn(ozn,[["render",fzn]]);class hzn extends mn{constructor(e,n,o){super(e,n),this.component=z0(pzn),this.items=o}}const mzn=Mn({props:{intf:{type:Object,required:!0}}});function gzn(t,e,n,o,r,i){return N(),H("div",null,J(t.intf.value),1)}const _zn=bn(mzn,[["render",gzn]]);class Qzn extends mn{constructor(e,n){super(e,n),this.component=z0(_zn),this.setPort(!1)}}const vzn=Mn({props:{intf:{type:Object,required:!0},modelValue:{type:String,required:!0}},emits:["update:modelValue"],setup(t,{emit:e}){return{v:$e({get:()=>t.modelValue,set:o=>{e("update:modelValue",o)}})}}}),yzn=["placeholder","title"];function bzn(t,e,n,o,r,i){return N(),H("div",null,[Ce(S("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,yzn),[[Je,t.v]])])}const Ezn=bn(vzn,[["render",bzn]]);class i6 extends mn{constructor(){super(...arguments),this.component=z0(Ezn)}}class gH extends Hh{constructor(){super(...arguments),this._title="Subgraph Input",this.inputs={name:new i6("Name","Input").setPort(!1)},this.outputs={placeholder:new mn("Connection",void 0)}}}class _H extends Ph{constructor(){super(...arguments),this._title="Subgraph Output",this.inputs={name:new i6("Name","Output").setPort(!1),placeholder:new mn("Connection",void 0)},this.outputs={output:new mn("Output",void 0).setHidden(!0)}}}const QH="CREATE_SUBGRAPH",YO=[Al,wl];function Szn(t,e,n){const o=()=>t.value.selectedNodes.filter(i=>!YO.includes(i.type)).length>0,r=()=>{const{viewModel:i}=wi(),s=t.value,a=t.value.editor;if(s.selectedNodes.length===0)return;const l=s.selectedNodes.filter(C=>!YO.includes(C.type)),c=l.flatMap(C=>Object.values(C.inputs)),u=l.flatMap(C=>Object.values(C.outputs)),d=s.connections.filter(C=>!u.includes(C.from)&&c.includes(C.to)),f=s.connections.filter(C=>u.includes(C.from)&&!c.includes(C.to)),T=s.connections.filter(C=>u.includes(C.from)&&c.includes(C.to)),h=l.map(C=>C.save()),g=T.map(C=>({id:C.id,from:C.from.id,to:C.to.id})),_=new Map,{xLeft:m,xRight:Q,yTop:v}=xzn(l);for(const[C,A]of d.entries()){const O=new gH;O.inputs.name.value=A.to.name,h.push({...O.save(),position:{x:Q-i.value.settings.nodes.defaultWidth-100,y:v+C*200}}),g.push({id:P0(),from:O.outputs.placeholder.id,to:A.to.id}),_.set(A.to.id,O.graphInterfaceId)}for(const[C,A]of f.entries()){const O=new _H;O.inputs.name.value=A.from.name,h.push({...O.save(),position:{x:m+100,y:v+C*200}}),g.push({id:P0(),from:A.from.id,to:O.inputs.placeholder.id}),_.set(A.from.id,O.graphInterfaceId)}const b=pr(new S5({connections:g,nodes:h,inputs:[],outputs:[]},a));a.addGraphTemplate(b);const y=a.nodeTypes.get(Ol(b));if(!y)throw new Error("Unable to create subgraph: Could not find corresponding graph node type");s.activeTransactions++;const E=pr(new y.type);s.addNode(E);const x=Math.round(l.map(C=>C.position.x).reduce((C,A)=>C+A,0)/l.length),L=Math.round(l.map(C=>C.position.y).reduce((C,A)=>C+A,0)/l.length);E.position.x=x,E.position.y=L,d.forEach(C=>{s.removeConnection(C),s.addConnection(C.from,E.inputs[_.get(C.to.id)])}),f.forEach(C=>{s.removeConnection(C),s.addConnection(E.outputs[_.get(C.from.id)],C.to)}),l.forEach(C=>s.removeNode(C)),s.activeTransactions--,e.canExecuteCommand(Hc)&&e.executeCommand(Hc),n(b),t.value.panning={...s.panning},t.value.scaling=s.scaling};e.registerCommand(QH,{canExecute:o,execute:r})}function xzn(t){const e=t.reduce((r,i)=>{const s=i.position.x;return s{const s=i.position.y;return s{const s=i.position.x+i.width;return s>r?s:r},-1/0),xRight:e,yTop:n}}class WO{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 o=new n.type;e.addNode(o),o.load(this.nodeState),this.nodeId=o.id}removeNode(e){const n=e.nodes.find(o=>o.id===this.nodeId);n&&(this.nodeState=n.save(),e.removeNode(n))}}class KO{constructor(e,n){if(this.type=e,e==="addConnection")this.connectionId=n;else{const o=n;this.connectionState={id:o.id,from:o.from.id,to:o.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),o=e.findNodeInterface(this.connectionState.to);if(!n||!o)return;const r=e.addConnection(n,o);r&&(r.id=this.connectionState.id),this.connectionId=r==null?void 0:r.id}removeConnection(e){const n=e.connections.find(o=>o.id===this.connectionId);n&&(this.connectionState={id:n.id,from:n.from.id,to:n.to.id},e.removeConnection(n))}}class Lzn{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!==r.value.length-1&&(r.value=r.value.slice(0,s.value+1)),r.value.push(_),s.value++;r.value.length>o.value;)r.value.shift()},u=()=>{a.value=!0},d=()=>{a.value=!1,l.value.length>0&&(c(new Lzn(l.value)),l.value=[])},f=()=>r.value.length!==0&&s.value!==-1,T=()=>{f()&&(i.value=!0,r.value[s.value--].undo(t.value),i.value=!1)},h=()=>r.value.length!==0&&s.value{h()&&(i.value=!0,r.value[++s.value].redo(t.value),i.value=!1)};return vn(t,(_,m)=>{m&&(m.events.addNode.unsubscribe(n),m.events.removeNode.unsubscribe(n),m.events.addConnection.unsubscribe(n),m.events.removeConnection.unsubscribe(n)),_&&(_.events.addNode.subscribe(n,Q=>{c(new WO("addNode",Q.id))}),_.events.removeNode.subscribe(n,Q=>{c(new WO("removeNode",Q.save()))}),_.events.addConnection.subscribe(n,Q=>{c(new KO("addConnection",Q.id))}),_.events.removeConnection.subscribe(n,Q=>{c(new KO("removeConnection",Q))}))},{immediate:!0}),e.registerCommand(Ff,{canExecute:f,execute:T}),e.registerCommand(Uf,{canExecute:h,execute:g}),e.registerCommand(Fh,{canExecute:()=>!a.value,execute:u}),e.registerCommand(Uh,{canExecute:()=>a.value,execute:d}),e.registerHotkey(["Control","z"],Ff),e.registerHotkey(["Control","y"],Uf),pr({maxSteps:o})}const qf="DELETE_NODES";function Azn(t,e){e.registerCommand(qf,{canExecute:()=>t.value.selectedNodes.length>0,execute(){e.executeCommand(Fh);for(let n=t.value.selectedNodes.length-1;n>=0;n--){const o=t.value.selectedNodes[n];t.value.removeNode(o)}e.executeCommand(Uh)}}),e.registerHotkey(["Delete"],qf)}const vH="SWITCH_TO_MAIN_GRAPH";function wzn(t,e,n){e.registerCommand(vH,{canExecute:()=>t.value!==t.value.editor.graph,execute:()=>{e.executeCommand(Hc),n(t.value.editor.graph)}})}function Ozn(t,e,n){Azn(t,e),Szn(t,e,n),Xjn(t,e),wzn(t,e,n)}const Gf="COPY",jf="PASTE",Mzn="CLEAR_CLIPBOARD";function Rzn(t,e,n){const o=Symbol("ClipboardToken"),r=ke(""),i=ke(""),s=$e(()=>!r.value),a=()=>{r.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),r.value=JSON.stringify(t.value.selectedNodes.map(T=>T.save()))},c=(d,f,T)=>{for(const h of d){let g;if((!T||T==="input")&&(g=Object.values(h.inputs).find(_=>_.id===f)),!g&&(!T||T==="output")&&(g=Object.values(h.outputs).find(_=>_.id===f)),g)return g}},u=()=>{if(s.value)return;const d=new Map,f=JSON.parse(r.value),T=JSON.parse(i.value),h=[],g=[],_=t.value;n.executeCommand(Fh);for(const m of f){const Q=e.value.nodeTypes.get(m.type);if(!Q){console.warn(`Node type ${m.type} not registered`);return}const v=new Q.type,b=v.id;h.push(v),v.hooks.beforeLoad.subscribe(o,y=>{const E=y;return E.position&&(E.position.x+=100,E.position.y+=100),v.hooks.beforeLoad.unsubscribe(o),E}),_.addNode(v),v.load({...m,id:b}),v.id=b,d.set(m.id,b);for(const y of Object.values(v.inputs)){const E=P0();d.set(y.id,E),y.id=E}for(const y of Object.values(v.outputs)){const E=P0();d.set(y.id,E),y.id=E}}for(const m of T){const Q=c(h,d.get(m.from),"output"),v=c(h,d.get(m.to),"input");if(!Q||!v)continue;const b=_.addConnection(Q,v);b&&g.push(b)}return t.value.selectedNodes=h,n.executeCommand(Uh),{newNodes:h,newConnections:g}};return n.registerCommand(Gf,{canExecute:()=>t.value.selectedNodes.length>0,execute:l}),n.registerHotkey(["Control","c"],Gf),n.registerCommand(jf,{canExecute:()=>!s.value,execute:u}),n.registerHotkey(["Control","v"],jf),n.registerCommand(Mzn,{canExecute:()=>!0,execute:a}),pr({isEmpty:s})}const Nzn="OPEN_SIDEBAR";function Dzn(t,e){e.registerCommand(Nzn,{execute:n=>{t.value.sidebar.nodeId=n,t.value.sidebar.visible=!0},canExecute:()=>!0})}function Izn(t,e){Dzn(t,e)}const kzn={},Hzn={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"},Pzn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),$zn=S("path",{d:"M9 13l-4 -4l4 -4m-4 4h11a4 4 0 0 1 0 8h-1"},null,-1),Vzn=[Pzn,$zn];function Bzn(t,e){return N(),H("svg",Hzn,Vzn)}const Fzn=bn(kzn,[["render",Bzn]]),Uzn={},qzn={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"},Gzn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),jzn=S("path",{d:"M15 13l4 -4l-4 -4m4 4h-11a4 4 0 0 0 0 8h1"},null,-1),zzn=[Gzn,jzn];function Yzn(t,e){return N(),H("svg",qzn,zzn)}const Wzn=bn(Uzn,[["render",Yzn]]),Kzn={},Zzn={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"},Xzn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),Jzn=S("line",{x1:"5",y1:"12",x2:"19",y2:"12"},null,-1),eYn=S("line",{x1:"5",y1:"12",x2:"11",y2:"18"},null,-1),tYn=S("line",{x1:"5",y1:"12",x2:"11",y2:"6"},null,-1),nYn=[Xzn,Jzn,eYn,tYn];function rYn(t,e){return N(),H("svg",Zzn,nYn)}const iYn=bn(Kzn,[["render",rYn]]),oYn={},sYn={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"},aYn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),lYn=S("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),cYn=S("rect",{x:"9",y:"3",width:"6",height:"4",rx:"2"},null,-1),uYn=[aYn,lYn,cYn];function dYn(t,e){return N(),H("svg",sYn,uYn)}const TYn=bn(oYn,[["render",dYn]]),fYn={},pYn={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"},hYn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),mYn=S("rect",{x:"8",y:"8",width:"12",height:"12",rx:"2"},null,-1),gYn=S("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),_Yn=[hYn,mYn,gYn];function QYn(t,e){return N(),H("svg",pYn,_Yn)}const vYn=bn(fYn,[["render",QYn]]),yYn={},bYn={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"},EYn=S("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),SYn=S("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),xYn=S("circle",{cx:"12",cy:"14",r:"2"},null,-1),LYn=S("polyline",{points:"14 4 14 8 8 8 8 4"},null,-1),CYn=[EYn,SYn,xYn,LYn];function AYn(t,e){return N(),H("svg",bYn,CYn)}const wYn=bn(yYn,[["render",AYn]]),OYn={},MYn={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"},RYn=tr('',6),NYn=[RYn];function DYn(t,e){return N(),H("svg",MYn,NYn)}const IYn=bn(OYn,[["render",DYn]]),kYn={},HYn={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"},PYn=tr('',18),$Yn=[PYn];function VYn(t,e){return N(),H("svg",HYn,$Yn)}const BYn=bn(kYn,[["render",VYn]]),FYn={},UYn={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"},qYn=tr('',6),GYn=[qYn];function jYn(t,e){return N(),H("svg",UYn,GYn)}const zYn=bn(FYn,[["render",jYn]]),YYn=Mn({props:{command:{type:String,required:!0},title:{type:String,required:!0},icon:{type:Object,required:!1,default:void 0}},setup(){const{viewModel:t}=wi();return{viewModel:t}}}),WYn=["disabled","title"];function KYn(t,e,n,o,r,i){return N(),H("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(),it(Vc(t.icon),{key:0})):(N(),H(Ae,{key:1},[Oe(J(t.title),1)],64))],8,WYn)}const ZYn=bn(YYn,[["render",KYn]]),XYn=Mn({components:{ToolbarButton:ZYn},setup(){const{viewModel:t}=wi();return{isSubgraph:$e(()=>t.value.displayedGraph!==t.value.editor.graph),commands:[{command:Gf,title:"Copy",icon:vYn},{command:jf,title:"Paste",icon:TYn},{command:qf,title:"Delete selected nodes",icon:zYn},{command:Ff,title:"Undo",icon:Fzn},{command:Uf,title:"Redo",icon:Wzn},{command:r0,title:"Box Select",icon:BYn},{command:QH,title:"Create Subgraph",icon:IYn}],subgraphCommands:[{command:Hc,title:"Save Subgraph",icon:wYn},{command:vH,title:"Back to Main Graph",icon:iYn}]}}});function JYn(t,e,n,o,r,i){const s=We("toolbar-button");return N(),H("div",{class:"baklava-toolbar",onContextmenu:e[0]||(e[0]=oe(()=>{},["stop","prevent"]))},[(N(!0),H(Ae,null,Ue(t.commands,a=>(N(),it(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)),t.isSubgraph?(N(!0),H(Ae,{key:0},Ue(t.subgraphCommands,a=>(N(),it(s,{key:a.command,command:a.command,title:a.title,icon:a.icon},null,8,["command","title","icon"]))),128)):Z("",!0)],32)}const eWn=bn(XYn,[["render",JYn]]),tWn={class:"connections-container"},nWn=Mn({__name:"Editor",props:{viewModel:{}},setup(t){const e=t,n=Symbol("EditorToken"),o=a0(e,"viewModel");$Gn(o);const r=ke(null);Tl("editorEl",r);const i=$e(()=>e.viewModel.displayedGraph.nodes),s=$e(()=>e.viewModel.displayedGraph.nodes.map(L=>aH(a0(L,"position")))),a=$e(()=>e.viewModel.displayedGraph.connections),l=$e(()=>e.viewModel.displayedGraph.selectedNodes),c=VGn(),u=BGn(),d=FGn(o),f=UGn(r),T=$e(()=>({...c.styles.value})),h=ke(0);e.viewModel.editor.hooks.load.subscribe(n,L=>(h.value++,L));const g=L=>{c.onPointerMove(L),u.onMouseMove(L)},_=L=>{if(L.button===0){if(f.onPointerDown(L))return;L.target===r.value&&(y(),c.onPointerDown(L)),u.onMouseDown()}},m=L=>{c.onPointerUp(L),u.onMouseUp()},Q=L=>{L.key==="Tab"&&L.preventDefault(),e.viewModel.commandHandler.handleKeyDown(L)},v=L=>{e.viewModel.commandHandler.handleKeyUp(L)},b=L=>{["Control","Shift"].some(C=>e.viewModel.commandHandler.pressedKeys.includes(C))||y(),e.viewModel.displayedGraph.selectedNodes.push(L)},y=()=>{e.viewModel.displayedGraph.selectedNodes=[]},E=L=>{for(const C of e.viewModel.displayedGraph.selectedNodes){const A=i.value.indexOf(C),O=s.value[A];O.onPointerDown(L),document.addEventListener("pointermove",O.onPointerMove)}document.addEventListener("pointerup",x)},x=()=>{for(const L of e.viewModel.displayedGraph.selectedNodes){const C=i.value.indexOf(L),A=s.value[C];A.onPointerUp(),document.removeEventListener("pointermove",A.onPointerMove)}document.removeEventListener("pointerup",x)};return(L,C)=>(N(),H("div",{ref_key:"el",ref:r,tabindex:"-1",class:Ee(["baklava-editor",{"baklava-ignore-mouse":!!vt(u).temporaryConnection.value||vt(c).dragging.value,"--temporary-connection":!!vt(u).temporaryConnection.value,"--start-selection-box":vt(f).startSelection}]),onPointermove:oe(g,["self"]),onPointerdown:_,onPointerup:m,onWheel:C[1]||(C[1]=oe((...A)=>vt(c).onMouseWheel&&vt(c).onMouseWheel(...A),["self"])),onKeydown:Q,onKeyup:v,onContextmenu:C[2]||(C[2]=(...A)=>vt(d).open&&vt(d).open(...A))},[_n(L.$slots,"background",{},()=>[ne(jGn)]),_n(L.$slots,"toolbar",{},()=>[L.viewModel.settings.toolbar.enabled?(N(),it(eWn,{key:0})):Z("",!0)]),_n(L.$slots,"palette",{},()=>[L.viewModel.settings.palette.enabled?(N(),it(zjn,{key:0})):Z("",!0)]),(N(),H("svg",tWn,[(N(!0),H(Ae,null,Ue(a.value,A=>(N(),H("g",{key:A.id+h.value.toString()},[_n(L.$slots,"connection",{connection:A},()=>[ne(Ojn,{connection:A},null,8,["connection"])])]))),128)),_n(L.$slots,"temporaryConnection",{temporaryConnection:vt(u).temporaryConnection.value},()=>[vt(u).temporaryConnection.value?(N(),it(Njn,{key:0,connection:vt(u).temporaryConnection.value},null,8,["connection"])):Z("",!0)])])),S("div",{class:"node-container",style:Jt(T.value)},[ne(O2,{name:"fade"},{default:je(()=>[(N(!0),H(Ae,null,Ue(i.value,(A,O)=>_n(L.$slots,"node",{key:A.id+h.value.toString(),node:A,selected:l.value.includes(A),dragging:s.value[O].dragging.value,onSelect:R=>b(A),onStartDrag:E},()=>[ne(Ejn,{node:A,selected:l.value.includes(A),dragging:s.value[O].dragging.value,onSelect:R=>b(A),onStartDrag:E},null,8,["node","selected","dragging","onSelect"])])),128))]),_:3})],4),_n(L.$slots,"sidebar",{},()=>[L.viewModel.settings.sidebar.enabled?(N(),it(Pjn,{key:0})):Z("",!0)]),_n(L.$slots,"minimap",{},()=>[L.viewModel.settings.enableMinimap?(N(),it($jn,{key:0})):Z("",!0)]),_n(L.$slots,"contextMenu",{contextMenu:vt(d)},()=>[L.viewModel.settings.contextMenu.enabled?(N(),it(Bh,{key:0,modelValue:vt(d).show.value,"onUpdate:modelValue":C[0]||(C[0]=A=>vt(d).show.value=A),items:vt(d).items.value,x:vt(d).x.value,y:vt(d).y.value,onClick:vt(d).onClick},null,8,["modelValue","items","x","y","onClick"])):Z("",!0)]),vt(f).isSelecting?(N(),H("div",{key:0,class:"selection-box",style:Jt(vt(f).getStyles())},null,4)):Z("",!0)],34))}});function rWn(t){const e=ke([]),n=ke([]);return{pressedKeys:e,handleKeyDown:s=>{e.value.includes(s.key)||e.value.push(s.key),!(document.activeElement&&sH(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 iWn=()=>{const t=ke(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)},o=(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)},r=(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=rWn(o);return pr({hasCommand:e,registerCommand:n,executeCommand:o,canExecuteCommand:r,...i})},oWn=t=>!(t instanceof r6);function sWn(t,e){return{switchGraph:o=>{let r;if(oWn(o))r=new r6(t.value),o.createGraph(r);else{if(o!==t.value.graph)throw new Error("Can only switch using 'Graph' instance when it is the root graph. Otherwise a 'GraphTemplate' must be used.");r=o}e.value&&e.value!==t.value.graph&&e.value.destroy(),r.panning=r.panning??o.panning??{x:0,y:0},r.scaling=r.scaling??o.scaling??1,r.selectedNodes=r.selectedNodes??[],r.sidebar=r.sidebar??{visible:!1,nodeId:"",optionName:""},e.value=r}}}function aWn(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 lWn=()=>({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 cWn(t){const e=ke(new RGn),n=Symbol("ViewModelToken"),o=ke(null),r=wP(o),{switchGraph:i}=sWn(e,o),s=$e(()=>r.value&&r.value!==e.value.graph),a=pr(lWn()),l=iWn(),c=Czn(r,l),u=Rzn(r,e,l),d={renderNode:new Ai(null),renderInterface:new Ai(null)};return Ozn(r,l,i),Izn(r,l),vn(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,(h,g)=>(g.position=h.position??{x:0,y:0},g.width=h.width??a.nodes.defaultWidth,g.twoColumn=h.twoColumn??!1,h)),f.nodeHooks.afterSave.subscribe(n,(h,g)=>(h.position=g.position,h.width=g.width,h.twoColumn=g.twoColumn,h)),f.graphTemplateHooks.beforeLoad.subscribe(n,(h,g)=>(g.panning=h.panning,g.scaling=h.scaling,h)),f.graphTemplateHooks.afterSave.subscribe(n,(h,g)=>(h.panning=g.panning,h.scaling=g.scaling,h)),f.graph.hooks.load.subscribe(n,(h,g)=>(g.panning=h.panning,g.scaling=h.scaling,h)),f.graph.hooks.save.subscribe(n,(h,g)=>(h.panning=g.panning,h.scaling=g.scaling,h)),f.graphEvents.beforeAddNode.subscribe(n,h=>aWn(h,{defaultWidth:a.nodes.defaultWidth})),e.value.registerNodeType(gH,{category:"Subgraphs"}),e.value.registerNodeType(_H,{category:"Subgraphs"}),i(f.graph))},{immediate:!0}),pr({editor:e,displayedGraph:r,isSubgraph:s,settings:a,commandHandler:l,history:c,clipboard:u,hooks:d,switchGraph:i})}const uWn=Gl({type:"PersonalityNode",title:"Personality",inputs:{request:()=>new mn("Request",""),agent_name:()=>new hzn("Personality","",m1.state.config.personalities).setPort(!1)},outputs:{response:()=>new mn("Response","")},async calculate({request:t}){console.log(m1.state.config.personalities);let e="";try{e=(await fe.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),dWn=Gl({type:"RAGNode",title:"RAG",inputs:{request:()=>new mn("Prompt",""),document_path:()=>new i6("Document path","").setPort(!1)},outputs:{prompt:()=>new mn("Prompt with Data","")},async calculate({request:t,document_path:e}){let n="";try{n=(await fe.get("/rag",{params:{text:t,doc_path:e}})).data}catch(o){console.error(o)}return{response:n}}}),ZO=Gl({type:"Task",title:"Task",inputs:{description:()=>new i6("Task description","").setPort(!1)},outputs:{prompt:()=>new mn("Prompt")},calculate({description:t}){return{prompt:t}}}),XO=Gl({type:"TextDisplayNode",title:"TextDisplay",inputs:{text2display:()=>new mn("Input","")},outputs:{response:()=>new Qzn("Text","")},async calculate({request:t}){}}),JO=Gl({type:"LLMNode",title:"LLM",inputs:{request:()=>new mn("Request","")},outputs:{response:()=>new mn("Response","")},async calculate({request:t}){console.log(m1.state.config.personalities);let e="";try{e=(await fe.post("/generate",{params:{text:t}})).data}catch(n){console.error(n)}return{display:e,response:e}}}),TWn=Gl({type:"MultichoiceNode",title:"Multichoice",inputs:{question:()=>new mn("Question",""),outputs:()=>new i6("choices, one per line","","").setPort(!1)},outputs:{response:()=>new mn("Response","")}}),fWn=Mn({components:{"baklava-editor":nWn},setup(){const t=cWn(),e=new HGn(t.editor);t.editor.registerNodeType(uWn),t.editor.registerNodeType(ZO),t.editor.registerNodeType(dWn),t.editor.registerNodeType(XO),t.editor.registerNodeType(JO),t.editor.registerNodeType(TWn);const n=Symbol();e.events.afterRun.subscribe(n,a=>{e.pause(),NGn(a,t.editor),e.resume()}),e.start();function o(a,l,c){const u=new a;return t.displayedGraph.addNode(u),u.position.x=l,u.position.y=c,u}const r=o(ZO,300,140),i=o(JO,550,140),s=o(XO,850,140);return t.displayedGraph.addConnection(r.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)}}}}),pWn={style:{width:"100vw",height:"100vh"}};function hWn(t,e,n,o,r,i){const s=We("baklava-editor");return N(),H("div",pWn,[ne(s,{"view-model":t.baklava},null,8,["view-model"]),S("button",{onClick:e[0]||(e[0]=(...a)=>t.saveGraph&&t.saveGraph(...a))},"Save Graph"),S("button",{onClick:e[1]||(e[1]=(...a)=>t.loadGraph&&t.loadGraph(...a))},"Load Graph")])}const mWn=ze(fWn,[["render",hWn]]),gWn={},_Wn={style:{width:"100vw",height:"100vh"}},QWn=["src"];function vWn(t,e,n,o,r,i){return N(),H("div",_Wn,[S("iframe",{src:t.$store.state.config.comfyui_base_url,class:"m-0 p-0 w-full h-full"},null,8,QWn)])}const yWn=ze(gWn,[["render",vWn]]),bWn={},EWn={style:{width:"100vw",height:"100vh"}},SWn=["src"];function xWn(t,e,n,o,r,i){return N(),H("div",EWn,[S("iframe",{src:t.$store.state.config.sd_base_url,class:"m-0 p-0 w-full h-full"},null,8,SWn)])}const LWn=ze(bWn,[["render",xWn]]),CWn={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)}}},AWn={class:"app-card flex flex-col h-full"},wWn={class:"flex-grow"},OWn={class:"flex items-center mb-4"},MWn=["src"],RWn={class:"font-bold text-xl text-gray-800"},NWn={class:"text-sm text-gray-600"},DWn={class:"text-sm text-gray-600"},IWn={class:"text-sm text-gray-600"},kWn={class:"text-sm text-gray-600"},HWn={class:"text-sm text-gray-600"},PWn={class:"mb-4"},$Wn={class:"text-sm text-gray-600 h-20 overflow-y-auto"},VWn={class:"text-sm text-gray-600 mb-2"},BWn={key:0,class:"mb-4"},FWn={class:"text-xs text-gray-500 italic h-16 overflow-y-auto"},UWn={class:"mt-auto pt-4 border-t"},qWn={class:"flex justify-between items-center flex-wrap"},GWn=["title"],jWn=["fill"];function zWn(t,e,n,o,r,i){return N(),H("div",AWn,[S("div",wWn,[S("div",OWn,[S("img",{src:n.app.icon,alt:"App Icon",class:"w-16 h-16 rounded-full border border-gray-300 mr-4"},null,8,MWn),S("div",null,[S("h3",RWn,J(n.app.name),1),S("p",NWn,"Author: "+J(n.app.author),1),S("p",DWn,"Version: "+J(n.app.version),1),S("p",IWn,"Category: "+J(n.app.category),1),S("p",kWn,"Creation date: "+J(i.formatDate(n.app.creation_date)),1),S("p",HWn,"Last update: "+J(i.formatDate(n.app.last_update_date)),1),S("p",{class:Ee(["text-sm",n.app.is_public?"text-green-600":"text-orange-600"])},J(n.app.is_public?"Public App":"Local App"),3)])]),S("div",PWn,[e[10]||(e[10]=S("h4",{class:"font-semibold mb-1 text-gray-700"},"Description:",-1)),S("p",$Wn,J(n.app.description),1)]),S("p",VWn,"AI Model: "+J(n.app.model_name),1),n.app.disclaimer&&n.app.disclaimer.trim()!==""?(N(),H("div",BWn,[e[11]||(e[11]=S("h4",{class:"font-semibold mb-1 text-gray-700"},"Disclaimer:",-1)),S("p",FWn,J(n.app.disclaimer),1)])):Z("",!0)]),S("div",UWn,[S("div",qWn,[S("button",{onClick:e[0]||(e[0]=oe(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(),H("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]=[S("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,jWn))],8,GWn),n.app.installed?(N(),H("button",{key:0,onClick:e[1]||(e[1]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:1,onClick:e[2]||(e[2]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:2,onClick:e[3]||(e[3]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:3,onClick:e[4]||(e[4]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)]))):Z("",!0),S("button",{onClick:e[5]||(e[5]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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(),H("button",{key:4,onClick:e[6]||(e[6]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)]))):Z("",!0),n.app.installed?(N(),H("button",{key:5,onClick:e[7]||(e[7]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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)]))):Z("",!0),n.app.has_server&&n.app.installed?(N(),H("button",{key:6,onClick:e[8]||(e[8]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14M12 5l7 7-7 7"})],-1)]))):Z("",!0),n.app.has_update?(N(),H("button",{key:7,onClick:e[9]||(e[9]=oe(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]=[S("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[S("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),S("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)]))):Z("",!0)])])])}const YWn=ze(CWn,[["render",zWn],["__scopeId","data-v-ae134649"]]),WWn={components:{AppCard:YWn},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,o=this.showOnlyInstalled&&t.installed||this.showOnlyUnInstalled&&!t.installed||!this.showOnlyInstalled&&!this.showOnlyUnInstalled;return e&&n&&o})},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.`),fe.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 o,r;this.$store.state.messageBox.hideMessage(),console.error("Error starting server:",n),this.$notify({type:"error",title:"Server Start Failed",text:((r=(o=n.response)==null?void 0:o.data)==null?void 0:r.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 o=await fe.post("/upload_app",t,{headers:{"Content-Type":"multipart/form-data"}});this.message=o.data.message,this.$refs.fileInput.value="",this.selectedFile=null}catch(o){console.error("Error uploading app:",o),this.error=((n=(e=o.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 fe.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 fe.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 fe.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 fe.get(`/apps/${t.folder_name}/README.md`);this.appCode=Et(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 fe.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 fe.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 fe.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 fe.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 fe.post("/download_app",{client_id:this.$store.state.client_id,app_name:t},{responseType:"arraybuffer"}),n=e.headers["content-disposition"],o=n&&n.match(/filename="?(.+)"?/i),r=o?o[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=r,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()}},KWn={class:"app-zoo background-color w-full p-6 pt-12 min-h-screen overflow-y-auto"},ZWn={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},XWn={class:"flex flex-wrap items-center justify-between gap-4"},JWn={class:"flex items-center space-x-4"},eKn=["disabled"],tKn={key:0},nKn={key:1,class:"error"},rKn={class:"relative flex-grow max-w-md"},iKn={class:"flex items-center space-x-4"},oKn=["value"],sKn={class:"flex items-center space-x-4"},aKn={for:"installed-only",class:"font-semibold"},lKn={for:"installed-only",class:"font-semibold"},cKn={class:"flex items-center space-x-4"},uKn={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},dKn={key:1,class:"pb-20"},TKn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-8"},fKn={class:"text-2xl font-bold mb-4"},pKn={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"},hKn={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"},mKn={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},gKn={class:"flex justify-between items-center mb-4"},_Kn={class:"text-2xl font-bold"},QKn=["srcdoc"],vKn={key:1,class:"text-center text-red-500"};function yKn(t,e,n,o,r,i){const s=We("app-card");return N(),H("div",KWn,[S("nav",ZWn,[S("div",XWn,[S("div",JWn,[S("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]=[S("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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),Oe(" Refresh ")])),S("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]=[S("svg",{class:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[S("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),Oe(" Open Folder ")])),S("input",{type:"file",onChange:e[2]||(e[2]=(...a)=>i.onFileSelected&&i.onFileSelected(...a)),accept:".zip",ref:"fileInput",style:{display:"none"}},null,544),S("button",{onClick:e[3]||(e[3]=(...a)=>i.triggerFileInput&&i.triggerFileInput(...a)),disabled:r.isUploading,class:"btn-secondary text-green-500 hover:text-green-600 transition duration-300 ease-in-out",title:"Upload App"},J(r.isUploading?"Uploading...":"Upload App"),9,eKn)]),r.message?(N(),H("p",tKn,J(r.message),1)):Z("",!0),r.error?(N(),H("p",nKn,J(r.error),1)):Z("",!0),S("div",rKn,[Ce(S("input",{"onUpdate:modelValue":e[4]||(e[4]=a=>r.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),[[Je,r.searchQuery]]),e[13]||(e[13]=S("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"},[S("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))]),S("div",iKn,[e[15]||(e[15]=S("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Ce(S("select",{id:"category-select","onUpdate:modelValue":e[5]||(e[5]=a=>r.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[14]||(e[14]=S("option",{value:"all"},"All Categories",-1)),(N(!0),H(Ae,null,Ue(i.categories,a=>(N(),H("option",{key:a,value:a},J(a),9,oKn))),128))],512),[[Ir,r.selectedCategory]])]),S("div",sKn,[S("label",aKn,[Ce(S("input",{id:"installed-only",type:"checkbox","onUpdate:modelValue":e[6]||(e[6]=a=>r.showOnlyInstalled=a),class:"mr-2"},null,512),[[Ql,r.showOnlyInstalled]]),e[16]||(e[16]=Oe(" Show only installed apps "))]),S("label",lKn,[Ce(S("input",{id:"uninstalled-only",type:"checkbox","onUpdate:modelValue":e[7]||(e[7]=a=>r.showOnlyUnInstalled=a),class:"mr-2"},null,512),[[Ql,r.showOnlyUnInstalled]]),e[17]||(e[17]=Oe(" Show only non installed apps "))])]),S("div",cKn,[e[19]||(e[19]=S("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Ce(S("select",{id:"sort-select","onUpdate:modelValue":e[8]||(e[8]=a=>r.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[18]||(e[18]=[S("option",{value:"name"},"Name",-1),S("option",{value:"author"},"Author",-1),S("option",{value:"date"},"Creation Date",-1),S("option",{value:"update"},"Last Update",-1)]),512),[[Ir,r.sortBy]]),S("button",{onClick:e[9]||(e[9]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},J(r.sortOrder==="asc"?"↑":"↓"),1)])])]),r.loading?(N(),H("div",uKn,e[20]||(e[20]=[S("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),S("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),H("div",dKn,[e[21]||(e[21]=S("h2",{class:"text-2xl font-bold mb-4"},"Favorite Apps",-1)),S("div",TKn,[(N(!0),H(Ae,null,Ue(i.favoriteApps,a=>(N(),it(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))]),S("h2",fKn,J(i.currentCategoryName)+" ("+J(i.sortedAndFilteredApps.length)+")",1),S("div",pKn,[(N(!0),H(Ae,null,Ue(i.sortedAndFilteredApps,a=>(N(),it(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))])])),r.selectedApp?(N(),H("div",hKn,[S("div",mKn,[S("div",gKn,[S("h2",_Kn,J(r.selectedApp.name),1),S("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")]),r.appCode?(N(),H("iframe",{key:0,srcdoc:r.appCode,class:"flex-grow border-none"},null,8,QKn)):(N(),H("p",vKn,"Please install this app to view its code."))])])):Z("",!0),r.message?(N(),H("div",{key:3,class:Ee(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":r.successMessage,"bg-red-100 text-red-800":!r.successMessage}])},J(r.message),3)):Z("",!0)])}const bKn=ze(WWn,[["render",yKn]]),EKn={components:{PersonalityEntry:Rk},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})},favoritePersonalities(){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);be(()=>{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),be(()=>{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: @@ -384,4 +384,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),fe.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 fe.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)}},EKn={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"},SKn={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},xKn={class:"flex flex-wrap items-center justify-between gap-4"},LKn={key:0},CKn={key:1,class:"error"},AKn={class:"relative flex-grow max-w-md"},wKn={class:"flex items-center space-x-4"},OKn=["value"],MKn={class:"flex items-center space-x-4"},RKn={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},NKn={key:1},DKn={class:"container mx-auto px-4 flex flex-col pb-20"},IKn={key:0},kKn={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},HKn={class:"container mx-auto px-4 flex flex-col pb-20"},PKn={class:"text-2xl font-bold my-8"},$Kn={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},VKn={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 overflow-y-auto"},BKn={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},FKn={class:"flex justify-between items-center mb-4"},UKn={class:"text-2xl font-bold"},qKn=["srcdoc"],GKn={key:1,class:"text-center text-red-500"};function jKn(t,e,n,o,r,i){const s=We("personality-entry");return N(),H("div",EKn,[S("nav",SKn,[S("div",xKn,[r.message?(N(),H("p",LKn,J(r.message),1)):Z("",!0),r.error?(N(),H("p",CKn,J(r.error),1)):Z("",!0),S("div",AKn,[Ce(S("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>r.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),[[Je,r.searchQuery]]),e[5]||(e[5]=S("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"},[S("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))]),S("div",wKn,[e[7]||(e[7]=S("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Ce(S("select",{id:"category-select","onUpdate:modelValue":e[1]||(e[1]=a=>r.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[6]||(e[6]=S("option",{value:"all"},"All Categories",-1)),(N(!0),H(Ae,null,Ue(i.categories,a=>(N(),H("option",{key:a,value:a},J(a),9,OKn))),128))],512),[[Ir,r.selectedCategory]])]),S("div",MKn,[e[9]||(e[9]=S("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Ce(S("select",{id:"sort-select","onUpdate:modelValue":e[2]||(e[2]=a=>r.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[8]||(e[8]=[S("option",{value:"name"},"Name",-1),S("option",{value:"author"},"Author",-1),S("option",{value:"date"},"Creation Date",-1),S("option",{value:"update"},"Last Update",-1)]),512),[[Ir,r.sortBy]]),S("button",{onClick:e[3]||(e[3]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},J(r.sortOrder==="asc"?"↑":"↓"),1)])])]),r.loading?(N(),H("div",RKn,e[10]||(e[10]=[S("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),S("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),H("div",NKn,[S("div",DKn,[i.favoritePersonalities.length>0&&!r.searchQuery?(N(),H("div",IKn,[e[11]||(e[11]=S("h2",{class:"text-2xl font-bold my-8"},"Favorite Personalities",-1)),S("div",kKn,[(N(!0),H(Ae,null,Ue(i.favoritePersonalities,a=>(N(),it(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))])])):Z("",!0)]),S("div",HKn,[S("h2",PKn,J(i.currentCategoryName)+" ("+J(i.sortedAndFilteredPersonalities.length)+")",1),S("div",$Kn,[(N(!0),H(Ae,null,Ue(i.sortedAndFilteredPersonalities,a=>(N(),it(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))])])])),r.selectedApp?(N(),H("div",VKn,[S("div",BKn,[S("div",FKn,[S("h2",UKn,J(r.selectedApp.name),1),S("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")]),r.appCode?(N(),H("iframe",{key:0,srcdoc:r.appCode,class:"flex-grow border-none"},null,8,qKn)):(N(),H("p",GKn,"Please install this app to view its code."))])])):Z("",!0),r.message?(N(),H("div",{key:3,class:Ee(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":r.successMessage,"bg-red-100 text-red-800":!r.successMessage}])},J(r.message),3)):Z("",!0),e[12]||(e[12]=S("div",{class:"h-20"},null,-1))])}const zKn=ze(bKn,[["render",jKn],["__scopeId","data-v-a7f0fe49"]]),YKn=RU({history:uU("/"),routes:[{path:"/apps_view/",name:"AppsZoo",component:yKn},{path:"/personalities_view/",name:"PersonalitiesZoo",component:zKn},{path:"/auto_sd_view/",name:"AutoSD",component:xWn},{path:"/comfyui_view/",name:"ComfyUI",component:vWn},{path:"/playground/",name:"playground",component:PLn},{path:"/extensions/",name:"extensions",component:zLn},{path:"/help_view/",name:"help_view",component:oCn},{path:"/settings/",name:"settings",component:IPn},{path:"/training/",name:"training",component:YPn},{path:"/quantizing/",name:"quantizing",component:e$n},{path:"/",name:"discussions",component:EGn},{path:"/nodes/",name:"nodes",component:hWn}]}),x5=AV(QEn);function WKn(t){const e={};for(const n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}const m1=eB({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(o=>o.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)},setInstalledModels(t,e){t.installedModels=e},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 fe.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 yH("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 Zo("list_databases");console.log("databases:",e),t("setDatabases",e)},async fetchisRTOn({commit:t}){const n=(await fe.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 fe.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 fe.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 fe.post("/set_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await fe.post("/get_personality_languages_list",{client_id:this.state.client_id}),console.log("response",n);const o=n.data;console.log("languages",o),t("setLanguages",o),n=await fe.post("/get_personality_language",{client_id:this.state.client_id}),console.log("response",n);const r=n.data;console.log("language",r),t("setLanguage",r),await this.dispatch("refreshMountedPersonalities"),console.log("Language changed successfully:",r)},async deleteLanguage({commit:t},e){console.log("Deleting ",e);let n=await fe.post("/del_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await fe.post("/get_personality_languages_list",{client_id:this.state.client_id});const o=n.data;t("setLanguages",o),n=await fe.post("/get_personality_language",{client_id:this.state.client_id});const r=n.data;t("setLanguage",r)},async refreshPersonalitiesZoo({commit:t}){let e=[];const n=await Zo("get_all_personalities"),o=Object.keys(n);for(let r=0;r{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((r,i)=>r.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 r=0;ra.full_path==i);if(s>=0){let a=WKn(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(r),console.log("Couldn't load personality : ",i)}for(let r=n.length-1;r>=0;r--)this.state.config.personalities.splice(n[r],1),this.state.config.active_personality_id>n[r]&&(this.state.config.active_personality_id-=1);t("setMountedPersArr",e);const o=this.state.personalities[this.state.personalities.findIndex(r=>r.full_path==this.state.config.personalities[this.state.config.active_personality_id])];console.log("Setting current mounted personality: ",o),this.state.mountedPers=o},async refreshBindings({commit:t}){let e=await Zo("list_bindings");console.log("Loaded bindings zoo :",e),this.state.installedBindings=e.filter(o=>o.installed),console.log("Loaded bindings zoo ",this.state.installedBindings),t("setbindingsZoo",e);const n=e.findIndex(o=>o.name==this.state.config.binding_name);n!=-1&&t("setCurrentBinding",e[n])},async refreshModelsZoo({commit:t}){const n=(await fe.get("/get_available_models")).data;t("setModelsZoo",n)},async refreshModelStatus({commit:t}){let e=await Zo("get_model_status");t("setIsModelOk",e.status)},async refreshModels({commit:t}){let e=await Zo("list_models"),n=await Zo("get_active_model");n!=null&&t("setselectedModel",n.model),t("setModelsArr",e),this.state.modelsZoo.map(s=>{s.isInstalled=e.includes(s.name)}),this.state.installedModels=this.state.modelsZoo.filter(s=>s.isInstalled);const r=e.filter(s=>!this.state.modelsZoo.some(a=>a.name===s)).map(s=>({name:s,icon:this.imgBinding,isCustomModel:!0,isInstalled:!0}));this.state.installedModels=[...this.state.installedModels,...r],t("setInstalledModels",this.state.installedModels);const i=this.state.modelsZoo.findIndex(s=>s.name==this.state.config.model_name);i!=-1&&t("setCurrentModel",this.state.modelsZoo[i])},async refreshDiskUsage({commit:t}){this.state.diskUsage=await Zo("disk_usage")},async refreshRamUsage({commit:t}){this.state.ramUsage=await Zo("ram_usage")},async refreshVramUsage({commit:t}){const e=await Zo("vram_usage"),n=[];if(e.nb_gpus>0){for(let r=0;r{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)}},SKn={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"},xKn={class:"panels-color shadow-lg rounded-lg p-4 max-w-4xl mx-auto mb-8"},LKn={class:"flex flex-wrap items-center justify-between gap-4"},CKn={key:0},AKn={key:1,class:"error"},wKn={class:"relative flex-grow max-w-md"},OKn={class:"flex items-center space-x-4"},MKn=["value"],RKn={class:"flex items-center space-x-4"},NKn={key:0,class:"flex justify-center items-center space-x-2 my-8","aria-live":"polite"},DKn={key:1},IKn={class:"container mx-auto px-4 flex flex-col pb-20"},kKn={key:0},HKn={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},PKn={class:"container mx-auto px-4 flex flex-col pb-20"},$Kn={class:"text-2xl font-bold my-8"},VKn={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"},BKn={key:2,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 overflow-y-auto"},FKn={class:"bg-white rounded-lg p-6 w-11/12 h-5/6 flex flex-col"},UKn={class:"flex justify-between items-center mb-4"},qKn={class:"text-2xl font-bold"},GKn=["srcdoc"],jKn={key:1,class:"text-center text-red-500"};function zKn(t,e,n,o,r,i){const s=We("personality-entry");return N(),H("div",SKn,[S("nav",xKn,[S("div",LKn,[r.message?(N(),H("p",CKn,J(r.message),1)):Z("",!0),r.error?(N(),H("p",AKn,J(r.error),1)):Z("",!0),S("div",wKn,[Ce(S("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>r.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),[[Je,r.searchQuery]]),e[5]||(e[5]=S("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"},[S("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))]),S("div",OKn,[e[7]||(e[7]=S("label",{for:"category-select",class:"font-semibold"},"Category:",-1)),Ce(S("select",{id:"category-select","onUpdate:modelValue":e[1]||(e[1]=a=>r.selectedCategory=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},[e[6]||(e[6]=S("option",{value:"all"},"All Categories",-1)),(N(!0),H(Ae,null,Ue(i.categories,a=>(N(),H("option",{key:a,value:a},J(a),9,MKn))),128))],512),[[Ir,r.selectedCategory]])]),S("div",RKn,[e[9]||(e[9]=S("label",{for:"sort-select",class:"font-semibold"},"Sort by:",-1)),Ce(S("select",{id:"sort-select","onUpdate:modelValue":e[2]||(e[2]=a=>r.sortBy=a),class:"border-2 border-gray-300 rounded-md px-2 py-1"},e[8]||(e[8]=[S("option",{value:"name"},"Name",-1),S("option",{value:"author"},"Author",-1),S("option",{value:"date"},"Creation Date",-1),S("option",{value:"update"},"Last Update",-1)]),512),[[Ir,r.sortBy]]),S("button",{onClick:e[3]||(e[3]=(...a)=>i.toggleSortOrder&&i.toggleSortOrder(...a)),class:"btn btn-secondary"},J(r.sortOrder==="asc"?"↑":"↓"),1)])])]),r.loading?(N(),H("div",NKn,e[10]||(e[10]=[S("div",{class:"animate-spin rounded-full h-10 w-10 border-t-2 border-b-2 border-blue-500"},null,-1),S("span",{class:"text-xl text-gray-700 font-semibold"},"Loading...",-1)]))):(N(),H("div",DKn,[S("div",IKn,[i.favoritePersonalities.length>0&&!r.searchQuery?(N(),H("div",kKn,[e[11]||(e[11]=S("h2",{class:"text-2xl font-bold my-8"},"Favorite Personalities",-1)),S("div",HKn,[(N(!0),H(Ae,null,Ue(i.favoritePersonalities,a=>(N(),it(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))])])):Z("",!0)]),S("div",PKn,[S("h2",$Kn,J(i.currentCategoryName)+" ("+J(i.sortedAndFilteredPersonalities.length)+")",1),S("div",VKn,[(N(!0),H(Ae,null,Ue(i.sortedAndFilteredPersonalities,a=>(N(),it(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))])])])),r.selectedApp?(N(),H("div",BKn,[S("div",FKn,[S("div",UKn,[S("h2",qKn,J(r.selectedApp.name),1),S("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")]),r.appCode?(N(),H("iframe",{key:0,srcdoc:r.appCode,class:"flex-grow border-none"},null,8,GKn)):(N(),H("p",jKn,"Please install this app to view its code."))])])):Z("",!0),r.message?(N(),H("div",{key:3,class:Ee(["fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-md",{"bg-green-100 text-green-800":r.successMessage,"bg-red-100 text-red-800":!r.successMessage}])},J(r.message),3)):Z("",!0),e[12]||(e[12]=S("div",{class:"h-20"},null,-1))])}const YKn=ze(EKn,[["render",zKn],["__scopeId","data-v-a7f0fe49"]]),WKn=RU({history:uU("/"),routes:[{path:"/apps_view/",name:"AppsZoo",component:bKn},{path:"/personalities_view/",name:"PersonalitiesZoo",component:YKn},{path:"/auto_sd_view/",name:"AutoSD",component:LWn},{path:"/comfyui_view/",name:"ComfyUI",component:yWn},{path:"/playground/",name:"playground",component:$Ln},{path:"/extensions/",name:"extensions",component:YLn},{path:"/help_view/",name:"help_view",component:sCn},{path:"/settings/",name:"settings",component:kPn},{path:"/training/",name:"training",component:WPn},{path:"/quantizing/",name:"quantizing",component:t$n},{path:"/",name:"discussions",component:SGn},{path:"/nodes/",name:"nodes",component:mWn}]}),x5=AV(vEn);function KKn(t){const e={};for(const n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}const m1=eB({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(o=>o.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)},setInstalledModels(t,e){t.installedModels=e},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 fe.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 yH("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 Zo("list_databases");console.log("databases:",e),t("setDatabases",e)},async fetchisRTOn({commit:t}){const n=(await fe.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 fe.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 fe.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 fe.post("/set_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await fe.post("/get_personality_languages_list",{client_id:this.state.client_id}),console.log("response",n);const o=n.data;console.log("languages",o),t("setLanguages",o),n=await fe.post("/get_personality_language",{client_id:this.state.client_id}),console.log("response",n);const r=n.data;console.log("language",r),t("setLanguage",r),await this.dispatch("refreshMountedPersonalities"),console.log("Language changed successfully:",r)},async deleteLanguage({commit:t},e){console.log("Deleting ",e);let n=await fe.post("/del_personality_language",{client_id:this.state.client_id,language:e});console.log("get_personality_languages_list",this.state.client_id),n=await fe.post("/get_personality_languages_list",{client_id:this.state.client_id});const o=n.data;t("setLanguages",o),n=await fe.post("/get_personality_language",{client_id:this.state.client_id});const r=n.data;t("setLanguage",r)},async refreshPersonalitiesZoo({commit:t}){let e=[];const n=await Zo("get_all_personalities"),o=Object.keys(n);for(let r=0;r{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((r,i)=>r.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 r=0;ra.full_path==i);if(s>=0){let a=KKn(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(r),console.log("Couldn't load personality : ",i)}for(let r=n.length-1;r>=0;r--)this.state.config.personalities.splice(n[r],1),this.state.config.active_personality_id>n[r]&&(this.state.config.active_personality_id-=1);t("setMountedPersArr",e);const o=this.state.personalities[this.state.personalities.findIndex(r=>r.full_path==this.state.config.personalities[this.state.config.active_personality_id])];console.log("Setting current mounted personality: ",o),this.state.mountedPers=o},async refreshBindings({commit:t}){let e=await Zo("list_bindings");console.log("Loaded bindings zoo :",e),this.state.installedBindings=e.filter(o=>o.installed),console.log("Loaded bindings zoo ",this.state.installedBindings),t("setbindingsZoo",e);const n=e.findIndex(o=>o.name==this.state.config.binding_name);n!=-1&&t("setCurrentBinding",e[n])},async refreshModelsZoo({commit:t}){const n=(await fe.get("/get_available_models")).data;t("setModelsZoo",n)},async refreshModelStatus({commit:t}){let e=await Zo("get_model_status");t("setIsModelOk",e.status)},async refreshModels({commit:t}){let e=await Zo("list_models"),n=await Zo("get_active_model");n!=null&&t("setselectedModel",n.model),t("setModelsArr",e),this.state.modelsZoo.map(s=>{s.isInstalled=e.includes(s.name)}),this.state.installedModels=this.state.modelsZoo.filter(s=>s.isInstalled);const r=e.filter(s=>!this.state.modelsZoo.some(a=>a.name===s)).map(s=>({name:s,icon:this.imgBinding,isCustomModel:!0,isInstalled:!0}));this.state.installedModels=[...this.state.installedModels,...r],t("setInstalledModels",this.state.installedModels);const i=this.state.modelsZoo.findIndex(s=>s.name==this.state.config.model_name);i!=-1&&t("setCurrentModel",this.state.modelsZoo[i])},async refreshDiskUsage({commit:t}){this.state.diskUsage=await Zo("disk_usage")},async refreshRamUsage({commit:t}){this.state.ramUsage=await Zo("ram_usage")},async refreshVramUsage({commit:t}){const e=await Zo("vram_usage"),n=[];if(e.nb_gpus>0){for(let r=0;r LoLLMS WebUI - - + +
diff --git a/web/src/App.vue b/web/src/App.vue index 7942168f..ea66b1fa 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -1,35 +1,25 @@