gmaterni commited on
Commit
b031b0b
·
verified ·
1 Parent(s): 0206701

Upload folder using huggingface_hub

Browse files
static/css/ragrqs.min.css CHANGED
@@ -1 +1 @@
1
- a,body,button,div,html,input,label,li,p,span,table,td,ul{padding:0;margin:0;font-family:arial,verdana,Helvetica,sans-serif}.bb0{background:#daee59!important}.bb1{background:#5487fc!important}html{background:#1a1a1a;scrollbar-width:8px;scrollbar-color:#00d3a2 #676767}body{background:#1a1a1a;box-sizing:border-box;min-height:100vh;height:100vh;position:relative;padding:0;margin:0;overflow:hidden;font-family:arial,verdana,Helvetica,sans-serif;font-weight:400}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#686868}::-webkit-scrollbar-thumb{background:#575758;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#06eab5}.spinner{z-index:1000;position:absolute;top:70vh;left:50vw;transform:translate(-50%,-50%);cursor:pointer;display:none;align-items:center}.spinner .pulse-icon{width:20px;height:20px;background-color:#ff8c00;border-radius:50%;animation:1.5s ease-in-out infinite pulse}.spinner .stop-message{margin-left:15px;background-color:inherit;color:#8f8a8a;padding:8px 15px;border-radius:10px;font-size:22px;font-weight:700;opacity:1;transition:opacity .3s}.spinner:hover .stop-message{color:#fff;background:#595959;opacity:1}@keyframes pulse{0%{transform:scale(.6);box-shadow:0 0 0 0 rgba(255,140,0,.7)}70%{transform:scale(1.4);box-shadow:0 0 0 20px rgba(255,140,0,0)}100%{transform:scale(.6);box-shadow:0 0 0 0 rgba(255,140,0,0)}}.show-spinner{display:flex}.theme-dark .btn-light,.theme-light .btn-dark{display:inline-block!important}.invert,.invert iframe,.invert img,.invert video{filter:invert(100%)}.btn-theme{position:fixed;top:0;right:4vw;height:4vh;background:inherit;font-weight:700;margin-left:5vw;margin-top:.5vh;z-index:2000}.btn-theme button{color:#fff;border:none;background:0 0;cursor:pointer;padding:5px;display:none}.btn-theme button svg{width:24px;height:24px;stroke:currentColor}.upload{background-color:#1e1e1e;padding:0 2em 2em;margin:0;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.5);text-align:center}.upload h4{color:#fff;margin-bottom:1em}.upload form{display:flex;flex-direction:column;align-items:center}.upload form .file{background-color:#121212;border:1px solid #515151;color:#fff;padding:.5em;margin-bottom:1em;border-radius:4px;width:100%;box-sizing:border-box}.upload form .file::file-selector-button{background-color:#0a5f4e;color:#fff;border:none;padding:.5em 1em;border-radius:4px;cursor:pointer}.upload form .file::file-selector-button:hover{background-color:#053128}.upload form button{background-color:#0a5f4e;color:#fff;border:none;padding:.5em 1em;border-radius:4px;cursor:pointer;width:100%;box-sizing:border-box}.upload form button:hover{background-color:#053128}.upload .result{width:100%;background:#000;color:#fff;font-size:15px;font-weight:400;text-align:left}div.container{background:#1a1a1a;box-sizing:border-box;position:relative;top:5vh;left:0;height:95vh;margin:0;padding:0;transition:margin-left .5s;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;overflow-y:auto;overflow-x:auto}div.container div.item{box-sizing:border-box;min-height:50px;margin:0;padding:0}div.container div.item1{flex:5;padding:.5vh .5vw 10vh}div.container div.item1 .output-wrapper{background-color:#1a1a1a;border-radius:20px;position:relative;bottom:0;right:0;left:0;width:100%;height:100%;display:flex;flex-direction:row;align-items:flex-start}div.container div.item1 .output-wrapper .text-out{flex:1;box-sizing:border-box;background:#000;color:#fff;border:none;padding:2px;margin:0;min-width:50vw;height:100%;border-radius:10px;overflow-y:auto;outline:0;box-shadow:0 0 0 2px #4d4d4d}div.container div.item1 .output-wrapper .text-out:hover{box-shadow:0 0 0 2px #17d2ad}div.container div.item1 .output-wrapper .text-out .pre-text{white-space:pre-wrap;word-wrap:break-word;font-family:arial,verdana,Helvetica,sans-serif;font-size:20px;line-height:1.5;padding:2px;margin:0;height:100%;box-sizing:border-box;overflow-y:auto;scroll-behavior:smooth}div.container div.item1 .output-wrapper .text-out .pre-text.copied{background-color:#0d0d0d;color:#61eed2}div.container div.item1 .output-wrapper .text-out .div-text{white-space:pre-wrap;word-wrap:break-word;font-family:arial,verdana,Helvetica,sans-serif;font-size:20px;line-height:1.5;padding:2px;margin:0;height:100%;box-sizing:border-box;overflow-y:scroll}div.container div.item1 .output-wrapper .text-out.copied{background-color:#0d0d0d;color:#61eed2}div.container div.item1 .output-actions{display:flex;flex-direction:column;align-items:flex-end;margin-left:.5vw;margin-right:.5vw}div.container div.item1 .output-actions .clear-output,div.container div.item1 .output-actions .copy-output,div.container div.item1 .output-actions .wnd-output{box-sizing:border-box;background-color:#333;color:#fff;border:none;padding:10px;cursor:pointer;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;margin-bottom:5px}div.container div.item1 .output-actions .clear-output:hover,div.container div.item1 .output-actions .copy-output:hover,div.container div.item1 .output-actions .wnd-output:hover{background-color:#595959}div.container div.item1 .output-actions .copy-output{transition:background-color .3s,transform .3s}div.container div.item1 .output-actions .copy-output.copied{background:#33e9c5;transform:scale(1.2)}div.container div.item1 .output-actions .copy-output .copy-icon{fill:#ffffff;width:24px;height:24px}div.container div.item1 .output-actions .copy-output .copy-icon:hover{fill:#33e9c5}div.container div.item1 .output-actions .clear-output,div.container div.item1 .output-actions .wnd-output{transition:background-color .3s,transform .3s}div.container div.item1 .output-actions .clear-output .icon,div.container div.item1 .output-actions .wnd-output .icon{fill:#ffffff;width:24px;height:24px}div.container div.item1 .output-actions .clear-output .icon:hover,div.container div.item1 .output-actions .wnd-output .icon:hover{fill:#33e9c5}:hover{outline:0;caret-color:transparent}textarea:focus{caret-color:auto}div.item2{flex:2;padding:0 .5vw}div.item2 .input-wrapper{background-color:#1a1a1a;border-radius:20px;position:relative;bottom:2vh;right:0;left:0;width:100%;height:100%;display:flex;flex-direction:row;align-items:flex-start}div.item2 .input-wrapper:focus-within .clear-button{display:block}div.item2 .input-wrapper .text-input{flex:1;font-size:20px;font-family:arial,verdana,Helvetica,sans-serif;resize:none;box-sizing:border-box;background:#000;color:#fff;border:none;padding:2px 40px 2px 2px;height:100%;margin-left:5px;border-radius:10px;overflow-y:auto;outline:0;box-shadow:0 0 0 2px #4d4d4d}div.item2 .input-wrapper .text-input:hover{box-shadow:0 0 0 2px #17d2ad}div.item2 .input-wrapper .text-input:focus{box-shadow:0 0 0 2px #ff4500}div.item2 .input-wrapper .clear-button{position:absolute;right:60px;top:19vh;padding:5px;border-radius:50%;background:#333;border:none;font-size:20px;cursor:pointer;color:#ccc;display:none}div.item2 .input-wrapper .clear-button:hover{font-weight:700;background:#595959;color:#fff}div.item2 .input-wrapper .input-actions{display:flex;flex-direction:column;margin-left:.5vw;margin-right:.5vw}div.item2 .input-wrapper .input-actions .clear-input,div.item2 .input-wrapper .input-actions .send-input,div.item2 .input-wrapper .input-actions .send2-input{box-sizing:border-box;background-color:#333;color:#fff;border:none;padding:10px;cursor:pointer;border-radius:50%;width:40px;height:40px;margin-bottom:5px;transition:background-color .3s}div.item2 .input-wrapper .input-actions .send-input{background:#992900}div.item2 .input-wrapper .input-actions .send-input:hover{background:#ff4500}div.item2 .input-wrapper .input-actions .send2-input{background:#0d7661}div.item2 .input-wrapper .input-actions .send2-input:hover{background:#14bb9a}div.item2 .input-wrapper .input-actions .clear-input{background:#333;color:#e6e6e6}div.item2 .input-wrapper .input-actions .clear-input:hover{background:#595959;color:#33e9c5}.menu-open .container{margin-left:16vw}.menu-open .menu-box{left:0!important}div.menu-h{background-color:#1a1a1a;position:fixed;top:0;left:0;width:100vw;height:4.5vh;padding:0;margin:0;outline:0;box-shadow:0 0 0 2px #4d4d4d;z-index:100}div.menu-h .release{background:inherit;color:#ff6a33;font-weight:700;margin-left:40vw;margin-top:.5vh}div.menu-h .menu-btn{appearance:none}div.menu-h .menu-btn:checked+.menu-icon{border:1px solid #333}div.menu-h .menu-btn:checked+.menu-icon .nav-icon{transform:rotate(45deg)}div.menu-h .menu-btn:checked+.menu-icon .nav-icon::before{top:0}div.menu-h .menu-btn:checked+.menu-icon .nav-icon::after{top:0;transform:rotate(90deg)}div.menu-h .menu-icon{box-sizing:border-box;background-color:inherit;display:block;position:absolute;margin-left:2vw;top:0;left:0;width:25px;height:100%;cursor:pointer;padding:2px;z-index:1}div.menu-h .menu-icon:hover .nav-icon,div.menu-h .menu-icon:hover .nav-icon::after,div.menu-h .menu-icon:hover .nav-icon::before{background-color:#33e9c5}div.menu-h .menu-icon .nav-icon{background-color:#aea7a7;display:block;position:absolute;top:14px;left:0;width:25px;height:2px;transition-duration:.25s}div.menu-h .menu-icon .nav-icon::after,div.menu-h .menu-icon .nav-icon::before{content:"";position:absolute;left:0;background-color:inherit;width:inherit;height:inherit}div.menu-h .menu-icon .nav-icon::before{top:-8px}div.menu-h .menu-icon .nav-icon::after{top:8px}div.menu-h .head-wrapper{position:absolute;top:0;left:5vw;height:4vh;padding:0;margin:0;display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start}div.menu-h .head-wrapper .help,div.menu-h .head-wrapper .log,div.menu-h .head-wrapper .upload,div.menu-h .head-wrapper .upload-dir{margin-top:2px;margin-left:30px;margin-right:0;padding:5px 5px 0;border:none;cursor:pointer;border-radius:20%;font-size:20px;color:#fff;background:#333;max-height:4vh}div.menu-h .head-wrapper .help:hover,div.menu-h .head-wrapper .log:hover,div.menu-h .head-wrapper .upload-dir:hover,div.menu-h .head-wrapper .upload:hover{background:#595959}div.menu-h .upload,div.menu-h .upload-dir{transition:background-color .3s,transform .3s}div.menu-h .upload .icon,div.menu-h .upload-dir .icon{fill:#ffffff;width:24px;height:24px}div.menu-h .upload .icon:hover,div.menu-h .upload-dir .icon:hover{fill:#33e9c5}div.menu-h .log{font-size:14px!important;font-weight:400!important;background:#992900!important}div.menu-h .log:hover{background:#cc3700!important}div.menu-h .log.active{background:#0d7661!important}div.menu-h .log.active:hover{background:#12a487!important}div.menu-h div.menu-box{position:fixed;top:5vh;left:-2000px;height:95vh;width:16vw;transition:left .3s ease-out;padding:1vh 0 0 .5vw;z-index:101;background:#0d0d0d;box-sizing:border-box;outline:0;box-shadow:0 0 0 2px #4d4d4d;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow-y:auto;overflow-x:auto}div.menu-h div.menu-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid #333}div.menu-h div.menu-box ul li{border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333}div.menu-h div.menu-box ul li a{color:#fff;font-size:14px;font-family:arial,verdana,Helvetica,sans-serif;font-weight:400;display:block;margin:0;padding:2px 2px 2px 0;text-align:left;text-decoration:none}div.menu-h div.menu-box ul li:hover{text-decoration:underline;background-color:#333;color:#33e9c5}div.menu-h div.menu-box ul a.delete{text-align:center;font-weight:700;font-style:italic;color:#000;background:#b3a80b}div.menu-h div.menu-box ul a.help{text-align:center;font-weight:700;font-style:italic;color:#000;background:#cc3700}div.menu-h div.menu-box ul li.show{background:#000;color:#fff;width:100%;text-align:center;box-sizing:border-box}div.menu-h div.menu-box ul li.show:hover{text-decoration:none}.window-text{position:relative;top:0;left:0;background:#1a1a1a;color:#fff;border:none;padding:0 2px 2px;width:78vw;height:80vh;border-radius:10px;box-sizing:border-box;outline:0;box-shadow:0 0 0 2px #b3a80b;overflow-y:auto;overflow-x:auto}.window-text pre.pre-text{color:#f8f292;white-space:pre-wrap;word-wrap:break-word;font-family:Georigia,"Ties New Roman",serif;font-size:18px;line-height:1.6;padding:2px;margin:0;text-align:left}.window-text div.div-text{color:#f8f292;word-wrap:break-word;font-family:Georigia,"Ties New Roman",serif;font-size:18px;padding:0 2px;margin:0}.window-text div.div-text ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid #333}.window-text div.div-text ul li{border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333}.window-text div.div-text ul li a{color:#fff;font-size:14px;font-family:arial,verdana,Helvetica,sans-serif;font-weight:400;display:block;margin:0;padding:5px 2px 2px 0;text-align:left;text-decoration:none}.window-text div.div-text ul li:hover{text-decoration:underline;background-color:#333;color:#33e9c5}.window-text div.text{font-size:18px;font-weight:400;padding-left:10px;padding-right:10px;margin:0}.window-text div.text pre{white-space:pre-wrap;word-wrap:break-word;font-family:arial,verdana,Helvetica,sans-serif;font-size:18px;line-height:1.3;padding:0 5px;margin:0;text-align:left}.window-text div.text .center{text-align:center;font-size:18px;font-weight:700;text-decoration:underline;font-style:italic;color:#e3d50e}.window-text div.text .label{margin:5px 0 5px 10px;font-size:18px;font-weight:700;font-style:italic;color:#e3d50e}.window-text div.text div{font-family:arial,verdana,Helvetica,sans-serif;font-size:18px;font-weight:700;padding-top:0;padding-bottom:0}.window-text div.text div a{background:#000;color:#fff;font-weight:400}.window-text div.text div a:hover{background:#333;color:#fff}.window-text div.text p{font-size:18px;font-weight:400;font-family:arial,verdana,Helvetica,sans-serif;text-align:justify;padding-bottom:9px;padding-right:0;padding-left:10px}.btn-wrapper{width:100%;height:2vw;position:sticky;top:0;padding:0;background:#262626}.btn-wrapper .btn-copy{position:absolute;top:1px;right:5vw;box-sizing:border-box;background:inherit;color:#fff;border:none;cursor:pointer;width:30px;margin:0;padding:0;transition:background-color .3s}.btn-wrapper .btn-copy:hover{background-color:#595959}.btn-wrapper .btn-copy .copy-icon{fill:#e6e6e6;width:20px;height:20px}.btn-wrapper .btn-copy .copy-icon:hover{fill:#33e9c5;background:#404040}.btn-wrapper .btn-close{position:absolute;top:0;right:2vw;margin:0;background-color:transparent;border:none;color:#e6e6e6;font-size:22px;font-weight:700;cursor:pointer;outline:0}.btn-wrapper .btn-close:hover{color:#33e9c5;background:#404040}.msg{box-sizing:border-box;position:fixed;width:300px;height:100px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#222;color:#ffeb3b;border:2px solid #ffeb3b;border-radius:15px;display:flex;align-items:center;justify-content:center;font-family:Arial,sans-serif;font-size:24px;font-weight:700;text-align:center;z-index:1000;box-shadow:0 4px 8px rgba(0,0,0,.2)}.alert,.confirm{background-color:#303030!important;color:#fff;padding:20px;border-radius:4px;box-shadow:0 2px 4px #00000033!important}.alert .button,.confirm .button{background-color:#37474f!important;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;margin-top:20px}.alert .button:hover,.confirm .button:hover{background-color:#222c31}#ualog_{box-sizing:border-box;width:auto;height:auto;text-align:center;padding:2px;margin:2px 0 0;background:#333;color:#fff;font-size:16px;font-weight:400;border-radius:9px;border:1px solid #999}#ualog_ button{padding:5px;margin:0 5px;font-size:18px;font-weight:700;border:2px solid #888;border-radius:10px;color:#000}#ualog_ button:hover{cursor:pointer;text-decoration:underline}#ualog_ button.close{background:#cc3700}#ualog_ button.close:hover{background:#ff8f66;border-color:#992900}#ualog_ button.clear{background:#b3a80b}#ualog_ button.clear:hover{background:#f5ec62;border-color:#837b08}#ualog_ pre{box-sizing:border-box;width:auto;min-width:400px;max-width:400px;max-height:500px;text-align:left;font-size:16px;font-family:monospace;padding:2px;margin:2px;color:#fff;background:#111;overflow:auto;scrollbar-color:#23eb04 #454444;scrollbar-width:auto;word-wrap:break-word}
 
1
+ a,body,button,div,html,input,label,li,p,span,table,td,ul{padding:0;margin:0;font-family:arial,verdana,Helvetica,sans-serif}.bb0{background:#daee59!important}.bb1{background:#5487fc!important}html{background:#1a1a1a;scrollbar-color:#00d3a2 #676767}body{background:#1a1a1a;box-sizing:border-box;min-height:100vh;height:100vh;position:relative;padding:0;margin:0;overflow:hidden;font-family:arial,verdana,Helvetica,sans-serif;font-weight:400}.spinner{z-index:1000;position:absolute;top:70vh;left:50vw;transform:translate(-50%,-50%);cursor:pointer;display:none;align-items:center}.spinner .pulse-icon{width:20px;height:20px;background-color:#ff8c00;border-radius:50%;animation:1.5s ease-in-out infinite pulse}.spinner .stop-message{margin-left:15px;background-color:inherit;color:#8f8a8a;padding:8px 15px;border-radius:10px;font-size:22px;font-weight:700;opacity:1;transition:opacity .3s}.spinner:hover .stop-message{color:#fff;background:#595959;opacity:1}@keyframes pulse{0%{transform:scale(.6);box-shadow:0 0 0 0 rgba(255,140,0,.7)}70%{transform:scale(1.4);box-shadow:0 0 0 20px rgba(255,140,0,0)}100%{transform:scale(.6);box-shadow:0 0 0 0 rgba(255,140,0,0)}}.show-spinner{display:flex}.theme-dark .btn-light,.theme-light .btn-dark{display:inline-block!important}.invert,.invert iframe,.invert img,.invert video{filter:invert(100%)}.btn-theme{position:fixed;top:0;right:4vw;height:4vh;background:inherit;font-weight:700;margin-left:5vw;margin-top:.5vh;z-index:2000}.btn-theme button{color:#fff;border:none;background:0 0;cursor:pointer;padding:5px;display:none}.btn-theme button svg{width:24px;height:24px;stroke:currentColor}.upload{background-color:#1e1e1e;padding:0 2em 2em;margin:0;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.5);text-align:center}.upload h4{color:#fff;margin-bottom:1em}.upload form{display:flex;flex-direction:column;align-items:center}.upload form .file{background-color:#121212;border:1px solid #515151;color:#fff;padding:.5em;margin-bottom:1em;border-radius:4px;width:100%;box-sizing:border-box}.upload form .file::file-selector-button{background-color:#0a5f4e;color:#fff;border:none;padding:.5em 1em;border-radius:4px;cursor:pointer}.upload form .file::file-selector-button:hover{background-color:#053128}.upload form button{background-color:#0a5f4e;color:#fff;border:none;padding:.5em 1em;border-radius:4px;cursor:pointer;width:100%;box-sizing:border-box}.upload form button:hover{background-color:#053128}.upload .result{width:100%;background:#000;color:#fff;font-size:15px;font-weight:400;text-align:left}div.container{background:#1a1a1a;box-sizing:border-box;position:relative;top:5vh;left:0;height:95vh;margin:0;padding:0;transition:margin-left .5s;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;overflow-y:auto;overflow-x:auto}div.container div.item{box-sizing:border-box;min-height:50px;margin:0;padding:0}div.container div.item1{flex:5;padding:.5vh .5vw 10vh}div.container div.item1 .output-wrapper{background-color:#1a1a1a;border-radius:20px;position:relative;bottom:0;right:0;left:0;width:100%;height:100%;display:flex;flex-direction:row;align-items:flex-start}div.container div.item1 .output-wrapper .text-out{flex:1;box-sizing:border-box;background:#000;color:#fff;border:none;padding:2px;margin:0;min-width:50vw;height:100%;border-radius:10px;overflow-y:auto;outline:0;box-shadow:0 0 0 2px #4d4d4d}div.container div.item1 .output-wrapper .text-out:hover{box-shadow:0 0 0 2px #17d2ad}div.container div.item1 .output-wrapper .text-out .pre-text{white-space:pre-wrap;word-wrap:break-word;font-family:arial,verdana,Helvetica,sans-serif;font-size:20px;line-height:1.5;padding:2px;margin:0;height:100%;box-sizing:border-box;overflow-y:auto;scroll-behavior:smooth}div.container div.item1 .output-wrapper .text-out .pre-text.copied{background-color:#0d0d0d;color:#61eed2}div.container div.item1 .output-wrapper .text-out .div-text{white-space:pre-wrap;word-wrap:break-word;font-family:arial,verdana,Helvetica,sans-serif;font-size:20px;line-height:1.5;padding:2px;margin:0;height:100%;box-sizing:border-box;overflow-y:scroll}div.container div.item1 .output-wrapper .text-out.copied{background-color:#0d0d0d;color:#61eed2}div.container div.item1 .output-actions{display:flex;flex-direction:column;align-items:flex-end;margin-left:.5vw;margin-right:.5vw}div.container div.item1 .output-actions .clear-output,div.container div.item1 .output-actions .copy-output,div.container div.item1 .output-actions .wnd-output{box-sizing:border-box;background-color:#333;color:#fff;border:none;padding:10px;cursor:pointer;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;margin-bottom:5px}div.container div.item1 .output-actions .clear-output:hover,div.container div.item1 .output-actions .copy-output:hover,div.container div.item1 .output-actions .wnd-output:hover{background-color:#595959}div.container div.item1 .output-actions .copy-output{transition:background-color .3s,transform .3s}div.container div.item1 .output-actions .copy-output.copied{background:#33e9c5;transform:scale(1.2)}div.container div.item1 .output-actions .copy-output .copy-icon{fill:#ffffff;width:24px;height:24px}div.container div.item1 .output-actions .copy-output .copy-icon:hover{fill:#33e9c5}div.container div.item1 .output-actions .clear-output,div.container div.item1 .output-actions .wnd-output{transition:background-color .3s,transform .3s}div.container div.item1 .output-actions .clear-output .icon,div.container div.item1 .output-actions .wnd-output .icon{fill:#ffffff;width:24px;height:24px}div.container div.item1 .output-actions .clear-output .icon:hover,div.container div.item1 .output-actions .wnd-output .icon:hover{fill:#33e9c5}:hover{outline:0;caret-color:transparent}textarea:focus{caret-color:auto}div.item2{flex:2;padding:0 .5vw}div.item2 .input-wrapper{background-color:#1a1a1a;border-radius:20px;position:relative;bottom:2vh;right:0;left:0;width:100%;height:100%;display:flex;flex-direction:row;align-items:flex-start}div.item2 .input-wrapper:focus-within .clear-button{display:block}div.item2 .input-wrapper .text-input{flex:1;font-size:20px;font-family:arial,verdana,Helvetica,sans-serif;resize:none;box-sizing:border-box;background:#000;color:#fff;border:none;padding:2px 40px 2px 2px;height:100%;margin-left:5px;border-radius:10px;overflow-y:auto;outline:0;box-shadow:0 0 0 2px #4d4d4d}div.item2 .input-wrapper .text-input:hover{box-shadow:0 0 0 2px #17d2ad}div.item2 .input-wrapper .text-input:focus{box-shadow:0 0 0 2px #ff4500}div.item2 .input-wrapper .clear-button{position:absolute;right:60px;top:19vh;padding:5px;border-radius:50%;background:#333;border:none;font-size:20px;cursor:pointer;color:#ccc;display:none}div.item2 .input-wrapper .clear-button:hover{font-weight:700;background:#595959;color:#fff}div.item2 .input-wrapper .input-actions{display:flex;flex-direction:column;margin-left:.5vw;margin-right:.5vw}div.item2 .input-wrapper .input-actions .clear-input,div.item2 .input-wrapper .input-actions .send-input,div.item2 .input-wrapper .input-actions .send2-input{box-sizing:border-box;background-color:#333;color:#fff;border:none;padding:10px;cursor:pointer;border-radius:50%;width:40px;height:40px;margin-bottom:5px;transition:background-color .3s}div.item2 .input-wrapper .input-actions .send-input{background:#992900}div.item2 .input-wrapper .input-actions .send-input:hover{background:#ff4500}div.item2 .input-wrapper .input-actions .send2-input{background:#0d7661}div.item2 .input-wrapper .input-actions .send2-input:hover{background:#14bb9a}div.item2 .input-wrapper .input-actions .clear-input{background:#333;color:#e6e6e6}div.item2 .input-wrapper .input-actions .clear-input:hover{background:#595959;color:#33e9c5}.menu-open .container{margin-left:16vw}.menu-open .menu-box{left:0!important}div.menu-h{background-color:#1a1a1a;position:fixed;top:0;left:0;width:100vw;height:4.5vh;padding:0;margin:0;outline:0;box-shadow:0 0 0 2px #4d4d4d;z-index:100}div.menu-h .release{background:inherit;color:#ff6a33;font-weight:700;margin-left:40vw;margin-top:.5vh}div.menu-h .menu-btn{appearance:none}div.menu-h .menu-btn:checked+.menu-icon{border:1px solid #333}div.menu-h .menu-btn:checked+.menu-icon .nav-icon{transform:rotate(45deg)}div.menu-h .menu-btn:checked+.menu-icon .nav-icon::before{top:0}div.menu-h .menu-btn:checked+.menu-icon .nav-icon::after{top:0;transform:rotate(90deg)}div.menu-h .menu-icon{box-sizing:border-box;background-color:inherit;display:block;position:absolute;margin-left:2vw;top:0;left:0;width:25px;height:100%;cursor:pointer;padding:2px;z-index:1}div.menu-h .menu-icon:hover .nav-icon,div.menu-h .menu-icon:hover .nav-icon::after,div.menu-h .menu-icon:hover .nav-icon::before{background-color:#33e9c5}div.menu-h .menu-icon .nav-icon{background-color:#aea7a7;display:block;position:absolute;top:14px;left:0;width:25px;height:2px;transition-duration:.25s}div.menu-h .menu-icon .nav-icon::after,div.menu-h .menu-icon .nav-icon::before{content:"";position:absolute;left:0;background-color:inherit;width:inherit;height:inherit}div.menu-h .menu-icon .nav-icon::before{top:-8px}div.menu-h .menu-icon .nav-icon::after{top:8px}div.menu-h .head-wrapper{position:absolute;top:0;left:5vw;height:4vh;padding:0;margin:0;display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start}div.menu-h .head-wrapper .help,div.menu-h .head-wrapper .log,div.menu-h .head-wrapper .upload,div.menu-h .head-wrapper .upload-dir{margin-top:2px;margin-left:30px;margin-right:0;padding:5px 5px 0;border:none;cursor:pointer;border-radius:20%;font-size:20px;color:#fff;background:#333;max-height:4vh}div.menu-h .head-wrapper .help:hover,div.menu-h .head-wrapper .log:hover,div.menu-h .head-wrapper .upload-dir:hover,div.menu-h .head-wrapper .upload:hover{background:#595959}div.menu-h .upload,div.menu-h .upload-dir{transition:background-color .3s,transform .3s}div.menu-h .upload .icon,div.menu-h .upload-dir .icon{fill:#ffffff;width:24px;height:24px}div.menu-h .upload .icon:hover,div.menu-h .upload-dir .icon:hover{fill:#33e9c5}div.menu-h .log{font-size:14px!important;font-weight:400!important;background:#992900!important}div.menu-h .log:hover{background:#cc3700!important}div.menu-h .log.active{background:#0d7661!important}div.menu-h .log.active:hover{background:#12a487!important}div.menu-h div.menu-box{position:fixed;top:5vh;left:-2000px;height:95vh;width:16vw;transition:left .3s ease-out;padding:1vh 0 0 .5vw;z-index:101;background:#0d0d0d;box-sizing:border-box;outline:0;box-shadow:0 0 0 2px #4d4d4d;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow-y:auto;overflow-x:auto}div.menu-h div.menu-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid #333}div.menu-h div.menu-box ul li{border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333}div.menu-h div.menu-box ul li a{color:#fff;font-size:14px;font-family:arial,verdana,Helvetica,sans-serif;font-weight:400;display:block;margin:0;padding:2px 2px 2px 0;text-align:left;text-decoration:none}div.menu-h div.menu-box ul li:hover{text-decoration:underline;background-color:#333;color:#33e9c5}div.menu-h div.menu-box ul a.delete{text-align:center;font-weight:700;font-style:italic;color:#000;background:#b3a80b}div.menu-h div.menu-box ul a.help{text-align:center;font-weight:700;font-style:italic;color:#000;background:#cc3700}div.menu-h div.menu-box ul li.show{background:#000;color:#fff;width:100%;text-align:center;box-sizing:border-box}div.menu-h div.menu-box ul li.show:hover{text-decoration:none}.window-text{position:relative;top:0;left:0;background:#1a1a1a;color:#fff;border:none;padding:0 2px 2px;width:78vw;height:80vh;border-radius:10px;box-sizing:border-box;outline:0;box-shadow:0 0 0 2px #b3a80b;overflow-y:auto;overflow-x:auto}.window-text pre.pre-text{color:#f8f292;white-space:pre-wrap;word-wrap:break-word;font-family:Georigia,"Ties New Roman",serif;font-size:18px;line-height:1.6;padding:2px;margin:0;text-align:left}.window-text div.div-text{color:#f8f292;word-wrap:break-word;font-family:Georigia,"Ties New Roman",serif;font-size:18px;padding:0 2px;margin:0}.window-text div.div-text ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid #333}.window-text div.div-text ul li{border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333}.window-text div.div-text ul li a{color:#fff;font-size:14px;font-family:arial,verdana,Helvetica,sans-serif;font-weight:400;display:block;margin:0;padding:5px 2px 2px 0;text-align:left;text-decoration:none}.window-text div.div-text ul li:hover{text-decoration:underline;background-color:#333;color:#33e9c5}.window-text div.text{font-size:18px;font-weight:400;padding-left:10px;padding-right:10px;margin:0}.window-text div.text pre{white-space:pre-wrap;word-wrap:break-word;font-family:arial,verdana,Helvetica,sans-serif;font-size:18px;line-height:1.3;padding:0 5px;margin:0;text-align:left}.window-text div.text .center{text-align:center;font-size:18px;font-weight:700;text-decoration:underline;font-style:italic;color:#e3d50e}.window-text div.text .label{margin:5px 0 5px 10px;font-size:18px;font-weight:700;font-style:italic;color:#e3d50e}.window-text div.text div{font-family:arial,verdana,Helvetica,sans-serif;font-size:18px;font-weight:700;padding-top:0;padding-bottom:0}.window-text div.text div a{background:#000;color:#fff;font-weight:400}.window-text div.text div a:hover{background:#333;color:#fff}.window-text div.text p{font-size:18px;font-weight:400;font-family:arial,verdana,Helvetica,sans-serif;text-align:justify;padding-bottom:9px;padding-right:0;padding-left:10px}.btn-wrapper{width:100%;height:2vw;position:sticky;top:0;padding:0;background:#262626}.btn-wrapper .btn-copy{position:absolute;top:1px;right:5vw;box-sizing:border-box;background:inherit;color:#fff;border:none;cursor:pointer;width:30px;margin:0;padding:0;transition:background-color .3s}.btn-wrapper .btn-copy:hover{background-color:#595959}.btn-wrapper .btn-copy .copy-icon{fill:#e6e6e6;width:20px;height:20px}.btn-wrapper .btn-copy .copy-icon:hover{fill:#33e9c5;background:#404040}.btn-wrapper .btn-close{position:absolute;top:0;right:2vw;margin:0;background-color:transparent;border:none;color:#e6e6e6;font-size:22px;font-weight:700;cursor:pointer;outline:0}.btn-wrapper .btn-close:hover{color:#33e9c5;background:#404040}.msg{box-sizing:border-box;position:fixed;width:300px;height:100px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#222;color:#ffeb3b;border:2px solid #ffeb3b;border-radius:15px;display:flex;align-items:center;justify-content:center;font-family:Arial,sans-serif;font-size:24px;font-weight:700;text-align:center;z-index:1000;box-shadow:0 4px 8px rgba(0,0,0,.2)}.alert,.confirm{background-color:#303030!important;color:#fff;padding:20px;border-radius:4px;box-shadow:0 2px 4px #00000033!important}.alert .button,.confirm .button{background-color:#37474f!important;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;margin-top:20px}.alert .button:hover,.confirm .button:hover{background-color:#222c31}.tt-bottom,.tt-left,.tt-right,.tt-top{position:relative;transition:transform .2s}.tt-bottom::after,.tt-bottom::before,.tt-left::after,.tt-left::before,.tt-right::after,.tt-right::before,.tt-top::after,.tt-top::before{position:absolute;opacity:0;pointer-events:none;z-index:9999;transition:opacity .3s}.tt-bottom::before,.tt-left::before,.tt-right::before,.tt-top::before{content:attr(data-tt);background:#b03407;color:#fff;font:400 20px Arial,sans-serif;padding:4px 10px;border-radius:4px;box-shadow:0 3px 6px #e2ca0e29;white-space:nowrap}.tt-bottom::after,.tt-left::after,.tt-right::after,.tt-top::after{content:"";border:6px solid transparent}.tt-bottom:hover::after,.tt-bottom:hover::before,.tt-left:hover::after,.tt-left:hover::before,.tt-right:hover::after,.tt-right:hover::before,.tt-top:hover::after,.tt-top:hover::before{opacity:1}.tt-top::before{bottom:calc(100% + 12px);left:50%;transform:translateX(-50%)}.tt-top::after{border-top-color:#b03407;bottom:calc(100% + 0px);left:50%;transform:translateX(-50%)}.tt-bottom::before{top:calc(100% + 12px);left:50%;transform:translateX(-50%)}.tt-left::before{right:calc(30% + 0px);top:calc(100% + 22px);transform:translateY(-50%)}.tt-right::before{left:calc(100% + 12px);top:50%;transform:translateY(10%)}#ualog_id{box-sizing:border-box;width:auto;height:auto;text-align:center;padding:2px;margin:2px 0 0;background:#333;color:#fff;font-size:16px;font-weight:400;border-radius:9px;border:1px solid #999}#ualog_id button{padding:5px;margin:0 5px;font-size:18px;font-weight:700;border:2px solid #888;border-radius:10px;color:#000}#ualog_id button:hover{cursor:pointer;text-decoration:underline}#ualog_id button.close{background:#cc3700}#ualog_id button.close:hover{background:#ff8f66;border-color:#992900}#ualog_id button.clear{background:#b3a80b}#ualog_id button.clear:hover{background:#f5ec62;border-color:#837b08}#ualog_id pre{box-sizing:border-box;width:auto;min-width:400px;max-width:400px;max-height:500px;text-align:left;font-size:16px;font-family:monospace;padding:2px;margin:2px;color:#fff;background:#111;overflow:auto;scrollbar-color:#23eb04 #454444;scrollbar-width:auto;word-wrap:break-word}
static/javascript/app.js CHANGED
@@ -19,7 +19,7 @@
19
  */
20
 
21
  "use strict";
22
- const VERS = "0.1.62 (10-12-2024)";
23
 
24
  var xlog = console.log;
25
  var xerror = console.error;
 
19
  */
20
 
21
  "use strict";
22
+ const VERS = "0.1.63";
23
 
24
  var xlog = console.log;
25
  var xerror = console.error;
static/javascript/rag_http.js CHANGED
@@ -1,8 +1,8 @@
1
  /** @format */
2
  "use strict";
3
 
4
- const model_name = "mistralai/Mistral-7B-Instruct-v0.3";
5
- // const model_name = "mistralai/Mixtral-8x7B-Instruct-v0.1";
6
  // const model_name = "mistralai/Mixtral-8x22B-Instruct-v0.1"
7
 
8
  async function requestGet(url) {
@@ -165,4 +165,3 @@ function errorToText(err) {
165
  return s;
166
  }
167
  }
168
-
 
1
  /** @format */
2
  "use strict";
3
 
4
+ // const model_name = "mistralai/Mistral-7B-Instruct-v0.3";
5
+ const model_name = "mistralai/Mixtral-8x7B-Instruct-v0.1";
6
  // const model_name = "mistralai/Mixtral-8x22B-Instruct-v0.1"
7
 
8
  async function requestGet(url) {
 
165
  return s;
166
  }
167
  }
 
static/javascript/rag_mgr.js CHANGED
@@ -18,7 +18,7 @@
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
  */
20
  "use strict";
21
- const MAX_PROMPT_LENGTH = 1024 * 75;
22
  // decremento dopo errore per tokens eccessivi
23
  const PROMPT_DECR = 1024 * 2;
24
 
@@ -182,7 +182,7 @@ const Rag = {
182
  continue;
183
  } else {
184
  UaLog.log(`Error ${err}`);
185
- answer=`ERROR \n${err}\n`
186
  // throw err;
187
  }
188
  } //end catch
@@ -199,7 +199,7 @@ const Rag = {
199
  } // end while
200
  //TODO implemntare build context
201
  const docAnswersLen = docAnswersLst.length;
202
- let docAnswresTxt = docAnswersLst.join("\n\n");
203
  let docContext = "";
204
 
205
  while (true) {
@@ -289,7 +289,7 @@ const Rag = {
289
  const ok = await confirm("Contesto vuoto. Vuoi continuare?");
290
  if (!ok) return "";
291
  // HACK gestisce il pulsante verde che ha accettao il contetso vuoto
292
- this.ragContext="Sei un assitente AI dispoibile a soddisfare tutte le mi richieste";
293
  }
294
  if (ThreadMgr.isFirst()) {
295
  ThreadMgr.init();
 
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
  */
20
  "use strict";
21
+ const MAX_PROMPT_LENGTH = 1024 * 80;
22
  // decremento dopo errore per tokens eccessivi
23
  const PROMPT_DECR = 1024 * 2;
24
 
 
182
  continue;
183
  } else {
184
  UaLog.log(`Error ${err}`);
185
+ answer = `ERROR \n${err}\n`;
186
  // throw err;
187
  }
188
  } //end catch
 
199
  } // end while
200
  //TODO implemntare build context
201
  const docAnswersLen = docAnswersLst.length;
202
+ let docAnswresTxt = docAnswersLst.join("\n\n");
203
  let docContext = "";
204
 
205
  while (true) {
 
289
  const ok = await confirm("Contesto vuoto. Vuoi continuare?");
290
  if (!ok) return "";
291
  // HACK gestisce il pulsante verde che ha accettao il contetso vuoto
292
+ this.ragContext = "Sei un assitente AI dispoibile a soddisfare tutte le mi richieste";
293
  }
294
  if (ThreadMgr.isFirst()) {
295
  ThreadMgr.init();
static/javascript/ualog3.js CHANGED
@@ -37,7 +37,7 @@ var UaLog = {
37
  msg_id: "ualogmsg_",
38
  new: function () {
39
  if (this.wind == null) {
40
- this.wind = UaWindowAdm.create("ualog_");
41
  this.wind.drag();
42
  }
43
  const h = `
 
37
  msg_id: "ualogmsg_",
38
  new: function () {
39
  if (this.wind == null) {
40
+ this.wind = UaWindowAdm.create("ualog_id");
41
  this.wind.drag();
42
  }
43
  const h = `
static/js/ragrqs.min.js CHANGED
@@ -16,7 +16,7 @@
16
  You should have received a copy of the GNU General Public License
17
  along with this program. If not, see <https://www.gnu.org/licenses/>.
18
  */
19
- const VERS="0.1.62 (10-12-2024)";var xlog=console.log,xerror=console.error;const cancelRequest=()=>{confirm("Confermi Cancellazione Richeista ?")&&(HfRequest.cancelRequest(),hideSpinner())},showSpinner=()=>{const a=document.getElementById("spinner");a.classList.add("show-spinner");a.addEventListener("click",cancelRequest)},hideSpinner=()=>{const a=document.getElementById("spinner");a.classList.remove("show-spinner");a.removeEventListener("click",cancelRequest)};var tm;
20
  function openApp(){setTimeout(()=>{tm=umgm();wnds.init();Menu.init();TextInput.init();TextOutput.init();Rag.init();document.querySelector(".menu-btn").checked=!1;release();showHistory();getTheme()},10)}function showHistory(){const a=ThreadMgr.getThread();setOutText(a)}function release(){document.querySelector(".release").innerHTML=VERS}const op0=async function(a){a=await requestGet("./help1.html");wnds.wdiv.show(a)};function showQuery(a){wnds.wpre.show(`\n${Rag.ragQuery}`)}
21
  function showRagResponse(a){wnds.wpre.show(`\n${Rag.ragAnswer}`)}function showThread(a){a=ThreadMgr.getThread();wnds.wpre.show(a)}function elencoRisposte(a){a=[...Rag.answers];0==a.length&&(a=UaDb.readArray(ID_RESPONSES));0!=a.length&&(a=a.map((b,c)=>`\n[${c+1}]\n ${b.trim()}`).join("\n"),wnds.wpre.show(a))}function showContesto(a){wnds.wpre.show(`${Rag.ragContext}`)}
22
  function elencoDati(a){var b=UaDb.getAllIds();a=[];for(var c of b)b=UaDb.read(c).length,a.push(`${c} (${b})`);c=a.join("\n ");wnds.wpre.show(c)}const showT=a=>{wnds.wpre.show(DataMgr.docs[a])};function elencoDocs(){DataMgr.readDbDocs();DataMgr.readDbDocNames();var a=DataMgr.doc_names,b=UaJtfh();let c=0;b.append("<ul>");for(const g of a){a=b;var d=a.append,e=g,f=c++;d.call(a,`
@@ -32,7 +32,7 @@ function cleanResponse(a){try{return a=removeTag(a),a=a.replace(/[\u00AD\u200B\u
32
  function cleanOut(a){return a=a.replace(/\n{3,}/g,"\n\n")};const ID_RESPONSES="id_responses",ID_DOC_NAMES="id_doc_names",ID_DOCS="id_docs;",ID_RAG="id_rag",ID_THREAD="id_thread",UaDb={create(a,b){localStorage.getItem(a)?consoe.error(`ID ${a} already exists.`):localStorage.setItem(a,b)},read(a){const b=localStorage.getItem(a);return null===b?(xlog(`UaDb.read ${a} not found.`),""):b},update(a,b){localStorage.getItem(a)?localStorage.setItem(a,b):xlog(`UaDb.update ${a} not found.`)},delete(a){localStorage.getItem(a)?localStorage.removeItem(a):consoe.error(`ID ${a} not found.`)},
33
  save(a,b){localStorage.setItem(a,b)},getAllIds(){const a=[];for(let b=0;b<localStorage.length;b++)a.push(localStorage.key(b));return a},saveArray(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readArray(a){a=UaDb.read(a);return 0==a.trim().length?[]:JSON.parse(a)},saveJson(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readJson(a){return(a=UaDb.read(a))?JSON.parse(a):{}}},DataMgr={docs:[],doc_names:[],linkToName(a){a=a.split("/");return a[a.length-1]},async loadDoc(a){this.readDbDocNames();try{const b=await requestGet(a),
34
  c=cleanDoc(b),d=this.linkToName(a);if(this.doc_names.includes(d))alert(`Il docuento ${d} \u00e8 gi\u00e0 caricato`);else return this.doc_names.push(d),this.docs.push(c),this.saveDbDocs(),c}catch(b){alert("loadDoc()\n"+b+"\n"+a)}},addDoc(a,b){b=cleanDoc(b);this.docs.push(b);this.doc_names.push(a);this.saveDbDocs()},saveDbDocs(){UaDb.saveArray(ID_DOC_NAMES,this.doc_names);UaDb.saveArray(ID_DOCS,this.docs)},readDbDocs(){this.docs=UaDb.readArray(ID_DOCS)},readDbDocNames(){this.doc_names=UaDb.readArray(ID_DOC_NAMES)},
35
- deleteJsonDati(){const a=UaDb.getAllIds();for(const b of a)[ID_DOCS,ID_DOC_NAMES].includes(b)||UaDb.delete(b);Rag.ragQuery="";Rag.ragContext="";Rag.ragAnswer="";Rag.answers=[];Rag.prompts=[];ThreadMgr.rows=[]}};function umgm(){return["bWtkSGxRfVA=","aFN1b2dycm0=","WXBfclhfUGk=","TVhWTV1aW04=","fVJPa00="].map(a=>atob(a).split("").map(b=>String.fromCharCode((b.charCodeAt(0)-5+256)%256)).join("")).join("")};const model_name="mistralai/Mistral-7B-Instruct-v0.3";async function requestGet(a){try{var b=await fetch(a,{method:"GET",headers:{"Content-Type":"text/plain;charset=UTF-8"}});if(!b.ok)throw Error(`HTTP error! status: ${b.status}`);const c=await b.arrayBuffer();return(new TextDecoder("utf-8")).decode(c)}catch(c){throw console.error(c),b="AbortError"===c.name?"Request was aborted":c.message.includes("HTTP error! status")?c.message:"An error occurred",alert(`requestGet()\nurl: ${a}\n${b}`),c;}}
36
  const ERROR_TOKENS="ERROR_TOKENS",TIMEOUT_ERROR="TIMEOUT_ERROR",getErrorType=(a,b)=>500<=a?"SERVER_ERROR":400<=a&&500>a?"object"===typeof b&&"validation"===b.error_type?b.error.includes("tokens")?ERROR_TOKENS:"ERROR_VALIDATION":"CLIENT_ERROR":"UNKNOWN_ERROR",checkResponse=a=>a&&Array.isArray(a)&&0!==a.length?a[0].generated_text?"ok":"MISSING_GENERATED_TEXT":"INVALID_DATA",createErrorInfo=(a,b,c,d)=>JSON.stringify({status:a,statusText:b,errorType:d,message:c||"Errore sconosciuto"}),HfRequest={controller:null,
37
  isCancelled:!1,baseUrl:"https://api-inference.huggingface.co/models",async post(a,b=5E4){this.isCancelled=!1;this.controller=new AbortController;let c;try{const d=setTimeout(()=>{this.controller.abort()},b);c=await fetch(`${this.baseUrl}/${model_name}`,{method:"POST",headers:{Authorization:`Bearer ${tm}`,"Content-Type":"application/json"},body:JSON.stringify(a),signal:this.controller.signal});clearTimeout(d);if(this.isCancelled)return null;const e=await c.json();if(!c.ok){const g=getErrorType(c.status,
38
  e),k=createErrorInfo(c.status,c.statusText,e.error,g);throw Error(k);}const f=checkResponse(e);if("ok"!==f){const g=createErrorInfo(c.status,c.statusText,e.error,f);throw Error(g);}return e[0].generated_text.trim()}catch(d){if(this.isCancelled)return null;if("AbortError"===d.name)throw a=createErrorInfo(0,"Timeout","La richiesta \u00e8 scaduta",TIMEOUT_ERROR),Error(a);throw d;}},cancelRequest(){this.controller&&(this.isCancelled=!0,this.controller.abort())}};
@@ -40,7 +40,7 @@ function getErrorInfo(a){let b={};try{b=JSON.parse(a.message)}catch(c){a=`getErr
40
  Status: ${c.status}
41
  Status Text: ${c.statusText}
42
  Error Type: ${c.errorType}
43
- Message: ${c.message}`}catch(c){console.error(`errorToText\n${c}`),b=`${c}`}finally{return b}};const MAX_PROMPT_LENGTH=76800,PROMPT_DECR=2048,TIMEOUT=6E4;function wait(a){return new Promise(b=>setTimeout(b,1E3*a))}
44
  const truncInput=(a,b)=>a.substring(0,a.length-b),setMaxLen=a=>a.substring(0,MAX_PROMPT_LENGTH-1E3),getPartSize=(a,b,c)=>{c=MAX_PROMPT_LENGTH-c;a.length+b.length<c?c=a.length:(a=a.indexOf(".",c),a=(-1!=a?a:c)+1,a>c+100&&(a=c),c=a);return c},getPartDoc=(a,b)=>{const c=a.substring(0,b);a=a.substring(b).trim();return[c,a]},ragLog=(a,b,c,d)=>{const e=MAX_PROMPT_LENGTH;d=d.reduce((f,g)=>f+g.length,0);xlog(`${a} mx:${e} lft:${b} rgt:${c} arr:${d}`);a=formatRow([a,b,c,d],[8,-7,-7,-7]);UaLog.log(a)},Rag=
45
  {ragContext:"",ragQuery:"",ragAnswer:"",answers:[],docContextLst:[],prompts:[],doc:"",doc_part:"",init(){this.readRespsFromDb();this.readFromDb()},returnOk(){return 10<this.ragContext.length},saveToDb(){UaDb.saveJson(ID_RAG,{context:this.ragContext,ragquery:this.ragQuery,raganswer:this.ragAnswer});UaDb.saveArray(ID_THREAD,ThreadMgr.rows)},readFromDb(){const a=UaDb.readJson(ID_RAG);this.ragContext=a.context||"";this.ragQuery=a.ragquery||"";this.ragAnswer=a.raganswer||"";ThreadMgr.rows=UaDb.readArray(ID_THREAD)},
46
  saveRespToDb(){UaDb.saveArray(ID_RESPONSES,this.answers)},readRespsFromDb(){this.answers=UaDb.readArray(ID_RESPONSES)},async requestDocsRAG(a){DataMgr.deleteJsonDati();DataMgr.readDbDocNames();DataMgr.readDbDocs();this.ragQuery=a;this.saveToDb();var b=0;try{var c=1;for(let e=0;e<DataMgr.docs.length;e++){let f=DataMgr.docs[e];if(""==f.trim())continue;const g=DataMgr.doc_names[e],k=f.length;xlog(`${g} (${k}) `);UaLog.log(`${g} (${k}) `);++b;var d=1;let h=0,l="",t="",u="",m="",v=[];for(;;){let r=getPartSize(f,
@@ -200,7 +200,7 @@ class DocxHandler{constructor(){this.scriptElement=this.mammoth=null}async loadM
200
  (document.body.removeChild(this.scriptElement),this.scriptElement=null);this.mammoth=null;window.gc&&window.gc()}}async function readTextFile(a){if(!a||"text/plain"!==a.type)throw Error("Invalid file type. Please select a text file.");return new Promise((b,c)=>{const d=new FileReader;d.onload=e=>b(e.target.result);d.onerror=e=>c(Error("Error reading file: "+e.message));d.readAsText(a)})};const nodrag_tds=["input","select","a"],nodrag_cls="nodrag";
201
  var UaDrag=function(a){return function(b){let c=0,d=0,e=0,f=0;const g=function(h){h=h||window.event;h.preventDefault();c=e-h.clientX;d=f-h.clientY;e=h.clientX;f=h.clientY;b.style.top=b.offsetTop-d+"px";b.style.left=b.offsetLeft-c+"px"},k=function(){document.onmouseup=null;document.onmousemove=null};b.onmousedown=function(h){h=h||window.event;let l=h.target;!(l=l||null)||nodrag_tds.includes(l.tagName.toLowerCase())||l.classList.contains(nodrag_cls)||(h.preventDefault(),e=h.clientX,f=h.clientY,document.onmouseup=
202
  k,document.onmousemove=g)}}(a)};const UaJtfh=()=>({rows:[],init(){this.rows=[];return this},insert(a){this.rows.unshift(a);return this},append(a){this.rows.push(a);return this},text(a=""){return this.rows.join(a)},html(a=""){return this.rows.join(a).replace(/\s+|\[rn\]/g," ")}});function formatRow(a,b){return a.map((c,d)=>{d=b[d];return 0>d?c.toString().padStart(Math.abs(d)," "):c.toString().padEnd(d," ")}).join(" ")}
203
- var UaLog={callHide:function(){},callShow:function(){},active:!1,wind:null,x:null,y:null,z:null,max_length:2E3,msg_id:"ualogmsg_",new:function(){null==this.wind&&(this.wind=UaWindowAdm.create("ualog_"),this.wind.drag());this.wind.setHtml('\n <button type="button" class="clear" onclick="javascript:UaLog.cls();">Clear</button>\n <button type="button" class="close" onclick="javascript:UaLog.close();">Close</button>\n <pre id="ualogmsg_" ></pre>');this.x?this.wind.vw_vh().setXY(this.x,
204
  this.y,-1):this.wind.setCenter(-1);this.z&&this.wind.setZ(this.z);return this},setXY(a,b){this.x=a;this.y=b;return this},setZ(a){this.z=a;return this},prn_(...a){a=a.join("\n");let b=document.getElementById(this.msg_id);b.textContent=b.textContent+a+"\n"},print(...a){null!=this.wind&&this.active&&this.prn_(...a)},log(...a){null!=this.wind&&this.prn_(...a)},log_show(...a){null!=this.wind&&(this.active||this.toggle(),this.prn_(...a))},cls(){if(null!=this.wind)return document.getElementById(this.msg_id).innerHTML=
205
  "",this},close(){null!=this.wind&&(this.wind.hide(),this.active=!1,this.callHide())},toggle(){null!=this.wind&&(this.active?(this.active=!1,this.wind.hide(),this.callHide()):(this.active=!0,this.wind.show(),this.callShow()))}};var UaWindowAdm={ws:{},create(a,b=null){let c=document.getElementById(a);c||(c=document.createElement("div"),b?document.getElementById(b).appendChild(c):document.body.appendChild(c),c.id=a,c.setAttribute("data-name","ua-window"),b=this.newUaWindow(c),this.ws[a]=b);a=this.ws[a];c.style.display="none";return a},get(a){return this.ws[a]?this.ws[a]:null},show(a){this.ws[a]&&this.ws[a].show()},close(a){this.ws[a]&&this.ws[a].close()},toggle(a){this.ws[a]&&this.ws[a].toggle()},hide(a){this.ws[a]&&this.ws[a].hide()},
206
  closeThis(a){a=a.closest('[data-name="ua-window"]').id;this.ws[a].close()},showAll(){for(let a in this.ws)this.ws[a].show()},hideAll(){for(let a in this.ws)this.ws[a].hide()},closeAll(){for(let a in this.ws)this.ws[a].close()},remove(a){this.ws[a]&&(document.getElementById(a).remove(),this.ws[a]=null,delete this.ws[a])},removeAll(){for(let a in this.ws)this.remove(a);this.ws={}},newUaWindow(a){let b={initialize(c){this.w=c;this.wy=this.wx="0px";this.isVisible=this.isOpen=!1;this.firstShow=!0;this.wz=
 
16
  You should have received a copy of the GNU General Public License
17
  along with this program. If not, see <https://www.gnu.org/licenses/>.
18
  */
19
+ const VERS="0.1.63";var xlog=console.log,xerror=console.error;const cancelRequest=()=>{confirm("Confermi Cancellazione Richeista ?")&&(HfRequest.cancelRequest(),hideSpinner())},showSpinner=()=>{const a=document.getElementById("spinner");a.classList.add("show-spinner");a.addEventListener("click",cancelRequest)},hideSpinner=()=>{const a=document.getElementById("spinner");a.classList.remove("show-spinner");a.removeEventListener("click",cancelRequest)};var tm;
20
  function openApp(){setTimeout(()=>{tm=umgm();wnds.init();Menu.init();TextInput.init();TextOutput.init();Rag.init();document.querySelector(".menu-btn").checked=!1;release();showHistory();getTheme()},10)}function showHistory(){const a=ThreadMgr.getThread();setOutText(a)}function release(){document.querySelector(".release").innerHTML=VERS}const op0=async function(a){a=await requestGet("./help1.html");wnds.wdiv.show(a)};function showQuery(a){wnds.wpre.show(`\n${Rag.ragQuery}`)}
21
  function showRagResponse(a){wnds.wpre.show(`\n${Rag.ragAnswer}`)}function showThread(a){a=ThreadMgr.getThread();wnds.wpre.show(a)}function elencoRisposte(a){a=[...Rag.answers];0==a.length&&(a=UaDb.readArray(ID_RESPONSES));0!=a.length&&(a=a.map((b,c)=>`\n[${c+1}]\n ${b.trim()}`).join("\n"),wnds.wpre.show(a))}function showContesto(a){wnds.wpre.show(`${Rag.ragContext}`)}
22
  function elencoDati(a){var b=UaDb.getAllIds();a=[];for(var c of b)b=UaDb.read(c).length,a.push(`${c} (${b})`);c=a.join("\n ");wnds.wpre.show(c)}const showT=a=>{wnds.wpre.show(DataMgr.docs[a])};function elencoDocs(){DataMgr.readDbDocs();DataMgr.readDbDocNames();var a=DataMgr.doc_names,b=UaJtfh();let c=0;b.append("<ul>");for(const g of a){a=b;var d=a.append,e=g,f=c++;d.call(a,`
 
32
  function cleanOut(a){return a=a.replace(/\n{3,}/g,"\n\n")};const ID_RESPONSES="id_responses",ID_DOC_NAMES="id_doc_names",ID_DOCS="id_docs;",ID_RAG="id_rag",ID_THREAD="id_thread",UaDb={create(a,b){localStorage.getItem(a)?consoe.error(`ID ${a} already exists.`):localStorage.setItem(a,b)},read(a){const b=localStorage.getItem(a);return null===b?(xlog(`UaDb.read ${a} not found.`),""):b},update(a,b){localStorage.getItem(a)?localStorage.setItem(a,b):xlog(`UaDb.update ${a} not found.`)},delete(a){localStorage.getItem(a)?localStorage.removeItem(a):consoe.error(`ID ${a} not found.`)},
33
  save(a,b){localStorage.setItem(a,b)},getAllIds(){const a=[];for(let b=0;b<localStorage.length;b++)a.push(localStorage.key(b));return a},saveArray(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readArray(a){a=UaDb.read(a);return 0==a.trim().length?[]:JSON.parse(a)},saveJson(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readJson(a){return(a=UaDb.read(a))?JSON.parse(a):{}}},DataMgr={docs:[],doc_names:[],linkToName(a){a=a.split("/");return a[a.length-1]},async loadDoc(a){this.readDbDocNames();try{const b=await requestGet(a),
34
  c=cleanDoc(b),d=this.linkToName(a);if(this.doc_names.includes(d))alert(`Il docuento ${d} \u00e8 gi\u00e0 caricato`);else return this.doc_names.push(d),this.docs.push(c),this.saveDbDocs(),c}catch(b){alert("loadDoc()\n"+b+"\n"+a)}},addDoc(a,b){b=cleanDoc(b);this.docs.push(b);this.doc_names.push(a);this.saveDbDocs()},saveDbDocs(){UaDb.saveArray(ID_DOC_NAMES,this.doc_names);UaDb.saveArray(ID_DOCS,this.docs)},readDbDocs(){this.docs=UaDb.readArray(ID_DOCS)},readDbDocNames(){this.doc_names=UaDb.readArray(ID_DOC_NAMES)},
35
+ deleteJsonDati(){const a=UaDb.getAllIds();for(const b of a)[ID_DOCS,ID_DOC_NAMES].includes(b)||UaDb.delete(b);Rag.ragQuery="";Rag.ragContext="";Rag.ragAnswer="";Rag.answers=[];Rag.prompts=[];ThreadMgr.rows=[]}};function umgm(){return["bWtkSGxRfVA=","aFN1b2dycm0=","WXBfclhfUGk=","TVhWTV1aW04=","fVJPa00="].map(a=>atob(a).split("").map(b=>String.fromCharCode((b.charCodeAt(0)-5+256)%256)).join("")).join("")};const model_name="mistralai/Mixtral-8x7B-Instruct-v0.1";async function requestGet(a){try{var b=await fetch(a,{method:"GET",headers:{"Content-Type":"text/plain;charset=UTF-8"}});if(!b.ok)throw Error(`HTTP error! status: ${b.status}`);const c=await b.arrayBuffer();return(new TextDecoder("utf-8")).decode(c)}catch(c){throw console.error(c),b="AbortError"===c.name?"Request was aborted":c.message.includes("HTTP error! status")?c.message:"An error occurred",alert(`requestGet()\nurl: ${a}\n${b}`),c;}}
36
  const ERROR_TOKENS="ERROR_TOKENS",TIMEOUT_ERROR="TIMEOUT_ERROR",getErrorType=(a,b)=>500<=a?"SERVER_ERROR":400<=a&&500>a?"object"===typeof b&&"validation"===b.error_type?b.error.includes("tokens")?ERROR_TOKENS:"ERROR_VALIDATION":"CLIENT_ERROR":"UNKNOWN_ERROR",checkResponse=a=>a&&Array.isArray(a)&&0!==a.length?a[0].generated_text?"ok":"MISSING_GENERATED_TEXT":"INVALID_DATA",createErrorInfo=(a,b,c,d)=>JSON.stringify({status:a,statusText:b,errorType:d,message:c||"Errore sconosciuto"}),HfRequest={controller:null,
37
  isCancelled:!1,baseUrl:"https://api-inference.huggingface.co/models",async post(a,b=5E4){this.isCancelled=!1;this.controller=new AbortController;let c;try{const d=setTimeout(()=>{this.controller.abort()},b);c=await fetch(`${this.baseUrl}/${model_name}`,{method:"POST",headers:{Authorization:`Bearer ${tm}`,"Content-Type":"application/json"},body:JSON.stringify(a),signal:this.controller.signal});clearTimeout(d);if(this.isCancelled)return null;const e=await c.json();if(!c.ok){const g=getErrorType(c.status,
38
  e),k=createErrorInfo(c.status,c.statusText,e.error,g);throw Error(k);}const f=checkResponse(e);if("ok"!==f){const g=createErrorInfo(c.status,c.statusText,e.error,f);throw Error(g);}return e[0].generated_text.trim()}catch(d){if(this.isCancelled)return null;if("AbortError"===d.name)throw a=createErrorInfo(0,"Timeout","La richiesta \u00e8 scaduta",TIMEOUT_ERROR),Error(a);throw d;}},cancelRequest(){this.controller&&(this.isCancelled=!0,this.controller.abort())}};
 
40
  Status: ${c.status}
41
  Status Text: ${c.statusText}
42
  Error Type: ${c.errorType}
43
+ Message: ${c.message}`}catch(c){console.error(`errorToText\n${c}`),b=`${c}`}finally{return b}};const MAX_PROMPT_LENGTH=81920,PROMPT_DECR=2048,TIMEOUT=6E4;function wait(a){return new Promise(b=>setTimeout(b,1E3*a))}
44
  const truncInput=(a,b)=>a.substring(0,a.length-b),setMaxLen=a=>a.substring(0,MAX_PROMPT_LENGTH-1E3),getPartSize=(a,b,c)=>{c=MAX_PROMPT_LENGTH-c;a.length+b.length<c?c=a.length:(a=a.indexOf(".",c),a=(-1!=a?a:c)+1,a>c+100&&(a=c),c=a);return c},getPartDoc=(a,b)=>{const c=a.substring(0,b);a=a.substring(b).trim();return[c,a]},ragLog=(a,b,c,d)=>{const e=MAX_PROMPT_LENGTH;d=d.reduce((f,g)=>f+g.length,0);xlog(`${a} mx:${e} lft:${b} rgt:${c} arr:${d}`);a=formatRow([a,b,c,d],[8,-7,-7,-7]);UaLog.log(a)},Rag=
45
  {ragContext:"",ragQuery:"",ragAnswer:"",answers:[],docContextLst:[],prompts:[],doc:"",doc_part:"",init(){this.readRespsFromDb();this.readFromDb()},returnOk(){return 10<this.ragContext.length},saveToDb(){UaDb.saveJson(ID_RAG,{context:this.ragContext,ragquery:this.ragQuery,raganswer:this.ragAnswer});UaDb.saveArray(ID_THREAD,ThreadMgr.rows)},readFromDb(){const a=UaDb.readJson(ID_RAG);this.ragContext=a.context||"";this.ragQuery=a.ragquery||"";this.ragAnswer=a.raganswer||"";ThreadMgr.rows=UaDb.readArray(ID_THREAD)},
46
  saveRespToDb(){UaDb.saveArray(ID_RESPONSES,this.answers)},readRespsFromDb(){this.answers=UaDb.readArray(ID_RESPONSES)},async requestDocsRAG(a){DataMgr.deleteJsonDati();DataMgr.readDbDocNames();DataMgr.readDbDocs();this.ragQuery=a;this.saveToDb();var b=0;try{var c=1;for(let e=0;e<DataMgr.docs.length;e++){let f=DataMgr.docs[e];if(""==f.trim())continue;const g=DataMgr.doc_names[e],k=f.length;xlog(`${g} (${k}) `);UaLog.log(`${g} (${k}) `);++b;var d=1;let h=0,l="",t="",u="",m="",v=[];for(;;){let r=getPartSize(f,
 
200
  (document.body.removeChild(this.scriptElement),this.scriptElement=null);this.mammoth=null;window.gc&&window.gc()}}async function readTextFile(a){if(!a||"text/plain"!==a.type)throw Error("Invalid file type. Please select a text file.");return new Promise((b,c)=>{const d=new FileReader;d.onload=e=>b(e.target.result);d.onerror=e=>c(Error("Error reading file: "+e.message));d.readAsText(a)})};const nodrag_tds=["input","select","a"],nodrag_cls="nodrag";
201
  var UaDrag=function(a){return function(b){let c=0,d=0,e=0,f=0;const g=function(h){h=h||window.event;h.preventDefault();c=e-h.clientX;d=f-h.clientY;e=h.clientX;f=h.clientY;b.style.top=b.offsetTop-d+"px";b.style.left=b.offsetLeft-c+"px"},k=function(){document.onmouseup=null;document.onmousemove=null};b.onmousedown=function(h){h=h||window.event;let l=h.target;!(l=l||null)||nodrag_tds.includes(l.tagName.toLowerCase())||l.classList.contains(nodrag_cls)||(h.preventDefault(),e=h.clientX,f=h.clientY,document.onmouseup=
202
  k,document.onmousemove=g)}}(a)};const UaJtfh=()=>({rows:[],init(){this.rows=[];return this},insert(a){this.rows.unshift(a);return this},append(a){this.rows.push(a);return this},text(a=""){return this.rows.join(a)},html(a=""){return this.rows.join(a).replace(/\s+|\[rn\]/g," ")}});function formatRow(a,b){return a.map((c,d)=>{d=b[d];return 0>d?c.toString().padStart(Math.abs(d)," "):c.toString().padEnd(d," ")}).join(" ")}
203
+ var UaLog={callHide:function(){},callShow:function(){},active:!1,wind:null,x:null,y:null,z:null,max_length:2E3,msg_id:"ualogmsg_",new:function(){null==this.wind&&(this.wind=UaWindowAdm.create("ualog_id"),this.wind.drag());this.wind.setHtml('\n <button type="button" class="clear" onclick="javascript:UaLog.cls();">Clear</button>\n <button type="button" class="close" onclick="javascript:UaLog.close();">Close</button>\n <pre id="ualogmsg_" ></pre>');this.x?this.wind.vw_vh().setXY(this.x,
204
  this.y,-1):this.wind.setCenter(-1);this.z&&this.wind.setZ(this.z);return this},setXY(a,b){this.x=a;this.y=b;return this},setZ(a){this.z=a;return this},prn_(...a){a=a.join("\n");let b=document.getElementById(this.msg_id);b.textContent=b.textContent+a+"\n"},print(...a){null!=this.wind&&this.active&&this.prn_(...a)},log(...a){null!=this.wind&&this.prn_(...a)},log_show(...a){null!=this.wind&&(this.active||this.toggle(),this.prn_(...a))},cls(){if(null!=this.wind)return document.getElementById(this.msg_id).innerHTML=
205
  "",this},close(){null!=this.wind&&(this.wind.hide(),this.active=!1,this.callHide())},toggle(){null!=this.wind&&(this.active?(this.active=!1,this.wind.hide(),this.callHide()):(this.active=!0,this.wind.show(),this.callShow()))}};var UaWindowAdm={ws:{},create(a,b=null){let c=document.getElementById(a);c||(c=document.createElement("div"),b?document.getElementById(b).appendChild(c):document.body.appendChild(c),c.id=a,c.setAttribute("data-name","ua-window"),b=this.newUaWindow(c),this.ws[a]=b);a=this.ws[a];c.style.display="none";return a},get(a){return this.ws[a]?this.ws[a]:null},show(a){this.ws[a]&&this.ws[a].show()},close(a){this.ws[a]&&this.ws[a].close()},toggle(a){this.ws[a]&&this.ws[a].toggle()},hide(a){this.ws[a]&&this.ws[a].hide()},
206
  closeThis(a){a=a.closest('[data-name="ua-window"]').id;this.ws[a].close()},showAll(){for(let a in this.ws)this.ws[a].show()},hideAll(){for(let a in this.ws)this.ws[a].hide()},closeAll(){for(let a in this.ws)this.ws[a].close()},remove(a){this.ws[a]&&(document.getElementById(a).remove(),this.ws[a]=null,delete this.ws[a])},removeAll(){for(let a in this.ws)this.remove(a);this.ws={}},newUaWindow(a){let b={initialize(c){this.w=c;this.wy=this.wx="0px";this.isVisible=this.isOpen=!1;this.firstShow=!0;this.wz=
static/less/ragrqs.less CHANGED
@@ -27,7 +27,7 @@ button {
27
 
28
  html {
29
  background: @contaniner-bg;
30
- scrollbar-width: 8px; /* Larghezza della barra di scorrimento */
31
  scrollbar-color: #00d3a2 #676767; /* Colore della barra di scorrimento e dello sfondo */
32
  }
33
 
@@ -44,26 +44,25 @@ body {
44
  font-weight: normal;
45
  }
46
  ///////////////
47
- ::-webkit-scrollbar {
48
- width:8px; /* Larghezza della barra di scorrimento */
49
- }
50
 
51
- ::-webkit-scrollbar-track {
52
- background: #686868; /* Colore dello sfondo della traccia */
53
- }
54
 
55
- ::-webkit-scrollbar-thumb {
56
- background: #575758; /* Colore della barra di scorrimento */
57
- border-radius: 6px; /* Arrotondamento degli angoli */
58
- }
59
 
60
- ::-webkit-scrollbar-thumb:hover {
61
- background: #06eab5; /* Colore della barra di scorrimento al passaggio del mouse */
62
- }
63
 
64
  // /////////////
65
 
66
-
67
  // spinner
68
  .spinner {
69
  z-index: 1000;
@@ -372,7 +371,7 @@ div.container {
372
  height: 100%;
373
  box-sizing: border-box;
374
  // FIXME scroll
375
- overflow-y: auto;
376
  scroll-behavior: smooth;
377
  &.copied {
378
  background-color: @text-copied-bg;
@@ -1116,3 +1115,170 @@ div.menu-h {
1116
  }
1117
  }
1118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  html {
29
  background: @contaniner-bg;
30
+ // scrollbar-width: 8px; /* Larghezza della barra di scorrimento */
31
  scrollbar-color: #00d3a2 #676767; /* Colore della barra di scorrimento e dello sfondo */
32
  }
33
 
 
44
  font-weight: normal;
45
  }
46
  ///////////////
47
+ // ::-webkit-scrollbar {
48
+ // width:8px; /* Larghezza della barra di scorrimento */
49
+ // }
50
 
51
+ // ::-webkit-scrollbar-track {
52
+ // background: #686868; /* Colore dello sfondo della traccia */
53
+ // }
54
 
55
+ // ::-webkit-scrollbar-thumb {
56
+ // background: #575758; /* Colore della barra di scorrimento */
57
+ // border-radius: 6px; /* Arrotondamento degli angoli */
58
+ // }
59
 
60
+ // ::-webkit-scrollbar-thumb:hover {
61
+ // background: #06eab5; /* Colore della barra di scorrimento al passaggio del mouse */
62
+ // }
63
 
64
  // /////////////
65
 
 
66
  // spinner
67
  .spinner {
68
  z-index: 1000;
 
371
  height: 100%;
372
  box-sizing: border-box;
373
  // FIXME scroll
374
+ overflow-y: auto;
375
  scroll-behavior: smooth;
376
  &.copied {
377
  background-color: @text-copied-bg;
 
1115
  }
1116
  }
1117
  }
1118
+
1119
+ // TOOLTIP
1120
+ /*
1121
+ Regolare i valori di calc() per distanze diverse
1122
+ Aggiungere white-space: normal per tooltip multi-riga
1123
+ Modificare border-width per frecce più grandi/più piccole
1124
+
1125
+ Nota importante:
1126
+ Il sistema sfrutta l'attributo data-tooltip per il contenuto testuale,
1127
+ mantenendo HTML semantico e accessibile.
1128
+ Per contenuti dinamici, basta modificare l'attributo via JavaScript.
1129
+ Esmpio:
1130
+ <span class="menu-h-box tt-right" data-tt="Open">
1131
+ <span class="menu-h-inner"></span>
1132
+ </span>
1133
+
1134
+
1135
+
1136
+
1137
+ */
1138
+ /* ========= VARIABILI LESS ========= */
1139
+ @tt-bg: #b03407; // Colore di sfondo del tooltip
1140
+ @tt-text: #ffffff; // Colore testo del tooltip
1141
+ @tt-font: 20px "Arial", sans-serif; // Stile font
1142
+ @tt-radius: 4px; // Border-radius
1143
+ @tt-shadow: 0 3px 6px #e2ca0e29; // Ombra
1144
+ @tt-transition: 0.3s opacity; // Transizione
1145
+ @border-width: 6px;
1146
+
1147
+ /* ========= BASE TOOLTIP ========= */
1148
+ .tt-top,
1149
+ .tt-bottom,
1150
+ .tt-left,
1151
+ .tt-right {
1152
+ position: relative;
1153
+ // cursor: help;
1154
+ transition: 0.2s transform;
1155
+
1156
+ // Pseudo-elementi comuni
1157
+ &::before,
1158
+ &::after {
1159
+ position: absolute;
1160
+ opacity: 0;
1161
+ pointer-events: none;
1162
+ z-index: 9999;
1163
+ transition: @tt-transition;
1164
+ }
1165
+
1166
+ // Testo del tooltip
1167
+ &::before {
1168
+ content: attr(data-tt);
1169
+ background: @tt-bg;
1170
+ color: @tt-text;
1171
+ font: @tt-font;
1172
+ font-weight: normal;
1173
+ // padding: 8px 16px;
1174
+ padding: 4px 10px;
1175
+ border-radius: @tt-radius;
1176
+ box-shadow: @tt-shadow;
1177
+ // border: 2px solid yellow;
1178
+ white-space: nowrap;
1179
+ }
1180
+
1181
+ // Freccia
1182
+ &::after {
1183
+ content: "";
1184
+ border: @border-width solid transparent;
1185
+ }
1186
+
1187
+ // Hover states
1188
+ &:hover {
1189
+ &::before,
1190
+ &::after {
1191
+ opacity: 1;
1192
+ }
1193
+ }
1194
+ }
1195
+
1196
+ /* ========= POSIZIONAMENTI ========= */
1197
+ .tt-top {
1198
+ &::before {
1199
+ bottom: ~"calc(100% + 12px)"; // Posizionato sopra l'elemento di 12px
1200
+ left: 50%; // Centrato orizzontalmente
1201
+ transform: translateX(-50%); // Spostato indietro del 50% della sua larghezza
1202
+ }
1203
+
1204
+ &::after {
1205
+ border-top-color: @tt-bg; // Colore del bordo superiore per la freccia
1206
+ bottom: ~"calc(100% + 0px)"; // Posizionato sopra l'elemento
1207
+ left: 50%; // Centrato orizzontalmente
1208
+ transform: translateX(-50%); // Spostato indietro del 50% della sua larghezza
1209
+ }
1210
+ }
1211
+
1212
+ .tt-bottom {
1213
+ &::before {
1214
+ top: ~"calc(100% + 12px)"; // Posizionato sotto l'elemento di 12px
1215
+ left: 50%; // Centrato orizzontalmente
1216
+ transform: translateX(-50%); // Spostato indietro del 50% della sua larghezza
1217
+ }
1218
+
1219
+ // &::after {
1220
+ // border-bottom-color: @tt-bg; // Colore del bordo inferiore per la freccia
1221
+ // top: ~"calc(100% + 0px)"; // Posizionato sotto l'elemento
1222
+ // left: 50%; // Centrato orizzontalmente
1223
+ // transform: translateX(-50%); // Spostato indietro del 50% della sua larghezza
1224
+ // }
1225
+ }
1226
+
1227
+ .tt-left {
1228
+ &::before {
1229
+ right: ~"calc(30% + 0px)";
1230
+ top: ~"calc(100% + 22px)";
1231
+ transform: translateY(-50%);
1232
+ }
1233
+
1234
+ // &::after {
1235
+ // border-left-color: @tt-bg;
1236
+ // right: ~"calc(100% + 0px)";
1237
+ // top: 50%;
1238
+ // transform: translateY(-50%);
1239
+ // }
1240
+ }
1241
+
1242
+ // .tt-left {
1243
+ // &::before {
1244
+ // right: ~"calc(100% + 12px)"; // Posizionato a sinistra dell'elemento di 12px
1245
+ // top: 50%; // Centrato verticalmente
1246
+ // transform: translateY(-50%); // Spostato in alto del 50% della sua altezza
1247
+ // }
1248
+
1249
+ // &::after {
1250
+ // border-left-color: @tt-bg; // Colore del bordo sinistro per la freccia
1251
+ // right: ~"calc(100% + 0px)"; // Posizionato a sinistra dell'elemento
1252
+ // top: 50%; // Centrato verticalmente
1253
+ // transform: translateY(-50%); // Spostato in alto del 50% della sua altezza
1254
+ // }
1255
+ // }
1256
+
1257
+ .tt-right {
1258
+ &::before {
1259
+ left: ~"calc(100% + 12px)"; // Posizionato a destra dell'elemento di 12px
1260
+ top: 50%; // Centrato verticalmente
1261
+ transform: translateY(10%); // Spostato in alto del 50% della sua altezza
1262
+ }
1263
+ // &::after {
1264
+ // border-right-color: @tt-bg; // Colore del bordo destro per la freccia
1265
+ // left: ~"calc(100% + 0px)"; // Posizionato a destra dell'elemento
1266
+ // top: 50%; // Centrato verticalmente
1267
+ // transform: translateY(-50%); // Spostato in alto del 50% della sua altezza
1268
+ // }
1269
+ }
1270
+
1271
+ // .tt-right {
1272
+ // &::before {
1273
+ // left: ~"calc(100% + 12px)"; // Posizionato a destra dell'elemento di 12px
1274
+ // top: 50%; // Centrato verticalmente
1275
+ // transform: translateY(-50%); // Spostato in alto del 50% della sua altezza
1276
+ // }
1277
+
1278
+ // &::after {
1279
+ // border-right-color: @tt-bg; // Colore del bordo destro per la freccia
1280
+ // left: ~"calc(100% + 0px)"; // Posizionato a destra dell'elemento
1281
+ // top: 50%; // Centrato verticalmente
1282
+ // transform: translateY(-50%); // Spostato in alto del 50% della sua altezza
1283
+ // }
1284
+ // }
static/less/ualog3.less CHANGED
@@ -2,7 +2,7 @@
2
  @color1: #ff4500;
3
  @color3: #e3d50e;
4
 
5
- #ualog_ {
6
  box-sizing: border-box;
7
  width: auto;
8
  // min-width: 300px;
 
2
  @color1: #ff4500;
3
  @color3: #e3d50e;
4
 
5
+ #ualog_id {
6
  box-sizing: border-box;
7
  width: auto;
8
  // min-width: 300px;