diff --git a/packages/server/assets/homepage.js b/packages/server/assets/homepage.js index 12affc3b..a9e8896d 100644 --- a/packages/server/assets/homepage.js +++ b/packages/server/assets/homepage.js @@ -1512,4 +1512,36 @@ document.addEventListener('keydown', (event) => { closeModal(null); return; }; -}); \ No newline at end of file +}); + + +window.onload = async () => { + try { + const requst = await fetch('https://osuck.net/tosu/api.json'); + const json = await requst.json(); + + const installed = document.querySelectorAll('.calu'); + for (let i = 0; i < installed.length; i++) { + const counter = installed[i]; + + const find = json.find(r => r.name == counter.attributes.getNamedItem('n')?.value); + if (!find) continue; + + + const updatable = counter.attributes.getNamedItem('v')?.value != find.version; + if (!updatable) continue; + + const button = document.createElement('button'); + button.classList.add('button', 'update-button', 'flexer'); + + button.setAttribute('l', find.downloadLink); + button.setAttribute('n', find.name); + button.setAttribute('a', find.author); + + button.innerHTML = `Update`; + counter.prepend(button); + }; + } catch (error) { + console.log(error); + }; +}; \ No newline at end of file diff --git a/packages/server/assets/homepage.min.css b/packages/server/assets/homepage.min.css index 0ee552d1..4cefc069 100644 --- a/packages/server/assets/homepage.min.css +++ b/packages/server/assets/homepage.min.css @@ -1 +1 @@ -:root{--text-1: #647a91;--text-2: #8ca0b5;--text-links: #6593c5;--background-1: #191e25;--block-1: #242d37;--block-2: #333f4c;--block-on-block: 211.25deg, 75.28%, 68.43%;--block-color-1: #97a7b9;--button-update: #76c757;--button-download: #568cc7;--button-delete: #d57397;--button-open: #73a6d5;--button-open-folder: #b7a375;--button-save: #73a6d5;--button-cancel: #d57381;--button-builder: #d5b873;--button-add-option: #9cd573;--button-update-settings: #73a6d5;--submit-delete: #56c763;--notification-block-green: #56c763;--notification-color-green: #191e25;--notification-block-yellow: #d5ce73;--notification-color-yellow: #252419;--notification-block-red: #d57397;--notification-color-red: #191e25;--search-color-2: #707f8d;--search-color-1: #cbd8e5;--search-block: #3f4e5d;--header-color: #939393;--header-background: #14171c}*{position:relative;padding:0;margin:0;box-sizing:border-box;min-width:0}::-moz-selection{color:var(--background-1);background-color:var(--text-links)}::selection{color:var(--background-1);background-color:var(--text-links)}::-webkit-scrollbar{width:16px}::-webkit-scrollbar-thumb{background-color:var(--text-links);border-radius:.2em}button{font-size:1em;font-family:inherit;font-weight:inherit;font-style:inherit;border:0;outline:0}img{display:flex}body{font-size:20px;font-family:"Roboto",sans-serif;font-weight:400;font-style:normal;color:var(--text-1)}body:not(.ingame){justify-content:center;flex-direction:column;display:flex;max-width:min(1280px,100vw - 2em);min-height:100vh !important;margin:0 auto;background-color:var(--background-1);overflow-x:hidden}iframe{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}select{font-size:1em;color:var(--search-color-1);padding:.3em .4em;background:var(--search-block);border-radius:.2em;outline:0;border:0}header{position:sticky;font-size:.9em;color:var(--header-color);top:0;gap:1.2em;margin:0 1em;height:2em;z-index:3}header::before{content:"";position:absolute;top:0;left:-1000px;right:-1000px;bottom:0;background:var(--header-background)}header a:not(.button){-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;color:var(--header-color) !important;gap:.7em;transition:filter .2s ease}header a:not(.button) img{width:1.2em;height:1.2em}header a:not(.button):hover{filter:brightness(1.2)}.imglink{font-size:.9em}body:not(.ingame) main{display:grid;min-height:0;margin-top:2em;margin-bottom:3em}footer{font-weight:600;text-align:center;font-size:.8em;position:sticky;bottom:0;padding:.6em 0;margin-top:auto}footer::before{content:"";pointer-events:none;-webkit-mask-image:linear-gradient(0deg, black 0%, transparent 100%);mask-image:linear-gradient(0deg, black 0%, transparent 100%);position:absolute;height:7em;left:0;right:0;bottom:0;background:var(--background-1);z-index:0}footer>*{z-index:1}a{color:var(--text-links)}.flexer{justify-content:flex-start;align-items:center;display:flex;flex-wrap:wrap}.links{gap:1em;padding:0 1em;margin-bottom:2em;z-index:2}.links .button{gap:.5em}.links .button.active{color:var(--button-open);background:var(--background-1)}.tabs{justify-content:center;position:sticky;top:2em;width:calc(100% - 1em);margin:0 auto;gap:1em;z-index:1}.tabs .tab-item{justify-content:center;align-items:center;display:flex;gap:.5em;line-height:1em;cursor:pointer;color:var(--text-1);padding:.6em;text-decoration:none;transition:.1s ease;transition-property:color,text-decoration-color}.tabs .tab-item.active{color:var(--text-links);text-decoration-color:var(--text-links)}.tabs .tab-item.active::before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--text-links);border-radius:10em}.tabs::before{content:"";position:absolute;top:-2em;left:-3em;right:-3em;bottom:0;background:var(--background-1)}.indent-left{margin-left:auto}.indent-right{margin-right:auto}.results{display:grid;gap:.5em}.no-results{text-align:center;width:100%;margin:2em 0}.result-item{display:grid;gap:.8em;color:var(--block-color-1);padding:1em;background:var(--block-1);border-radius:.3em}.result-item hr{border-color:var(--background-1)}.result-item .ri-gallery{gap:.4em}.result-item .ri-gallery img{height:7.5em;border-radius:.4em}.result-item .ri-links{font-size:.9em;gap:.4em;margin-top:.4em}.result-item .ri-links img{height:1.2em;border-radius:.2em}.result-item .ri-footer{font-size:.9em;gap:1em}.result-item.downloaded::before,.result-item.updatable::before{position:absolute;pointer-events:none;top:0;left:0;right:0;bottom:0;opacity:1;z-index:1;display:flex;justify-content:flex-end;align-items:flex-end;font-size:1.4em;padding:.5em;color:#fff;text-shadow:0 0 .2em #000,0 .1em .1em #000,0 .1em .7em #000,0 .1em .2em #000}.result-item.downloaded{outline:2px solid}.result-item.downloaded::before{content:"already downloaded";background:rgba(151,167,185,.2)}.result-item.updatable{outline:2px solid #a7d395}.result-item.updatable::before{content:"update available";color:#a7d395;background:rgba(161,185,151,.2)}.copyable{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;padding:.1em .2em;background:hsl(var(--block-on-block), 0.2);transition:.5s ease;transition-property:background,filter;border-radius:.2em}.copyable:active{filter:brightness(2);background:hsl(var(--block-on-block), 0.4);transition:.1s ease}.notification{font-size:.8em;font-weight:bold;position:absolute;left:50%;bottom:2em;padding:.5em 1.6em;translate:0 0;box-shadow:0 .7em 1.2em rgba(0,0,0,.7);transition:.3s ease;transition-property:translate,opacity;border-radius:.3em;z-index:15}.notification.hidden{opacity:0;translate:0 1em}.notification.red{color:var(--notification-color-red);background:var(--notification-block-red)}.notification.yellow{color:var(--notification-color-yellow);background:var(--notification-block-yellow)}.notification.green{color:var(--notification-color-green);background:var(--notification-block-green)}@keyframes spin{0%{rotate:0}100%{rotate:360deg}}.button{white-space:nowrap;text-decoration:none;font-size:.9em;font-weight:700;cursor:pointer;padding:.4em 1em;border-radius:.4em;transition:.1s ease;transition-property:translate,filter}.button>*{pointer-events:none}.button span{display:block;pointer-events:none;transition:.3s ease;transition-property:opacity,width}.button img{width:1em;height:1em;-o-object-fit:cover;object-fit:cover;transition:.3s ease;transition-property:opacity,width,height;animation:spin 1s infinite forwards linear}.button:hover{filter:brightness(1.1);translate:0 -0.05em}.button:active{filter:brightness(0.9);translate:0 .1em}.button.disable{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1)}.button.small{padding:.1em .5em}.buttons-group{font-size:.9em;gap:10px;height:1.8em}.buttons-group>*{height:100%}.dl-button{color:var(--background-1);background:var(--button-download)}.update-button{color:var(--background-1);background:var(--button-update)}.delete-button{color:var(--background-1);background:var(--button-delete)}.open-button{color:var(--background-1);background:var(--button-open)}.open-folder-button{color:var(--background-1);background:var(--button-open-folder)}.settings-builder-button{display:none;color:var(--background-1);background:var(--button-builder)}.settings-builder-button.active{display:unset}.add-option-button{color:var(--background-1);background:var(--button-add-option)}.save-button{color:var(--background-1);background:var(--button-save)}.submit-button{display:block;color:var(--background-1);padding:.2em 1em;background:var(--submit-delete)}.remove-option-button,.cancel-button{color:var(--background-1);background:var(--button-cancel)}.open-link-button,.update-settings-button,.update-x2-settings-button{color:var(--background-1);background:var(--button-update-settings)}.open-link-button{gap:.5em}.search-bar{font-size:.9em;font-family:inherit;color:var(--search-color-1);background:var(--search-block);padding:.2em .6em;border-radius:.2em;outline:0;border:0;transition:.2s ease;transition-property:filter,opacity}.search-bar::-moz-placeholder{color:var(--search-color-2)}.search-bar::placeholder{color:var(--search-color-2)}.search-bar.disable{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);opacity:.5}.settings{display:grid;gap:.8em;color:var(--block-color-1);padding:1em;background:var(--block-1);border-radius:.3em}.settings .si-btn{margin-top:1em}.si:not(.-s):not(.block) div:nth-child(1){width:20em}.si h4,.si .settings-note{color:#7a91a9}.si p,.si .settings-note{color:#7a91a9}.si p,.si .settings-note{filter:brightness(0.8);font-size:.8em;max-width:20em}.si .settings-note{margin-top:.5em;font-style:italic}.si input[type=text],.si input[type=number],.si input[type=password],.si textarea{font-size:.9em;font-family:inherit;color:var(--search-color-1);width:20em;padding:.2em .6em;background:var(--search-block);outline:0;border-radius:.2em;border:0;transition:.2s ease;transition-property:filter,opacity,outline,background;outline:2px solid rgba(0,0,0,0)}.si input[type=text]::-moz-placeholder, .si input[type=number]::-moz-placeholder, .si input[type=password]::-moz-placeholder, .si textarea::-moz-placeholder{color:var(--search-color-2)}.si input[type=text]::placeholder,.si input[type=number]::placeholder,.si input[type=password]::placeholder,.si textarea::placeholder{color:var(--search-color-2)}.si input[type=text]:hover,.si input[type=number]:hover,.si input[type=password]:hover,.si textarea:hover{background:#4e5e6f}.si input[type=text]:focus,.si input[type=number]:focus,.si input[type=password]:focus,.si textarea:focus{background:#2b353f;outline:2px solid var(--search-block)}.si input[type=color]{padding:0;background:rgba(0,0,0,0);border:0;outline:0;width:7em;block-size:2.3em;flex-grow:unset;border-radius:20em}.si.block{flex-direction:column;align-items:flex-start;gap:.5em}.si-checkbox{justify-content:center;align-items:center;cursor:pointer;display:flex;gap:.4em;height:1em}.si-checkbox input{display:none}.si-checkbox input:checked~.checkmark::before{scale:.7;background:var(--search-color-1)}.si-checkbox input:checked~.status::before{content:"Enabled"}.si-checkbox .checkmark{background:#637a91;width:1em;height:1em;border-radius:.2em;overflow:hidden;display:block}.si-checkbox .checkmark::before{content:"";display:block;width:1em;height:1em;scale:1;background:#637a91;transition:background .1s ease,scale .3s ease;border-radius:.2em}.si-checkbox .status::before{content:"Disabled"}.si-checkbox.sic-start{justify-content:flex-start}.si-btn{gap:1em}.modal{position:fixed;top:0;left:0;right:0;bottom:0;transition:background .5s ease,transform .15s ease,-webkit-backdrop-filter .6s ease;transition:background .5s ease,backdrop-filter .6s ease,transform .15s ease;transition:background .5s ease,backdrop-filter .6s ease,transform .15s ease,-webkit-backdrop-filter .6s ease;z-index:10}.modal:not(.hidden){background:rgba(0,0,0,.5);-webkit-backdrop-filter:opacity(0.5) blur(50px);backdrop-filter:opacity(0.5) blur(50px)}.modal:not(.hidden) .m-content{opacity:1;transform:translate(-50%, -50%) translateY(0em)}.modal#settingsBuilder .m-content{width:min(1280px,100vw - 2em)}.modal#settingsBuilder .m-scroll{gap:1em}.modal .m-content{width:min(1100px,100vw - 2em);top:50%;left:50%;padding:1em;opacity:0;background:var(--block-1);border-radius:.4em;box-shadow:0 1em 2em rgba(0,0,0,.5),0 1em 4em rgba(0,0,0,.5);transform:translate(-50%, -50%) translateY(2em);transition:opacity .3s ease,transform .3s ease;z-index:1}.modal .ms-title{justify-content:space-between;align-items:center;flex-wrap:wrap;display:flex;padding-bottom:.1em;margin-bottom:.8em;border-bottom:1px solid}.modal .ms-title span:nth-child(2){font-size:.7em}.modal .ms-btns{font-size:.9em;margin-top:1.5em}.modal .m-scroll{display:grid;gap:.8em;max-height:min(35em,100vh - 11em);overflow:auto}.modal .m-scroll::-webkit-scrollbar{width:10px}.modal.-expand{transform:scale(1.02)}.update-available{font-weight:700;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;color:var(--background-1);height:3em;padding:.4em 0;transition:padding .4s ease,height .4s ease}.update-available::before{content:"";position:absolute;top:0;left:-30vw;right:-30vw;bottom:0;background:#56c763}.update-available ::-moz-selection{color:#56c763;background-color:var(--background-1)}.update-available ::selection{color:#56c763;background-color:var(--background-1)}.update-available div:nth-child(2){font-size:.8em}.update-available.hidden{display:none}.update-available>*{pointer-events:none}.update-available.loadong{animation:update 2s infinite forwards ease}.update-available.fold{padding:0 0;height:0}@keyframes update{0%{opacity:1}70%{opacity:.6}100%{opacity:1}}.settings-container{padding-left:.5em;padding-right:.5em}.new-item,.settings-item{display:grid;gap:.5em;border-radius:.6em}.new-item input,.new-item textarea,.settings-item input,.settings-item textarea{font-size:1em !important;padding:.3em .6em !important}.new-item .ni-unique input,.settings-item .ni-unique input{width:12em}.new-item .ni-row-1,.settings-item .ni-row-1{justify-content:flex-start;align-items:center;display:flex;gap:.5em}.new-item .ni-options,.settings-item .ni-options{display:grid;gap:.5em}.new-item .nid-value,.settings-item .nid-value{white-space:nowrap;flex-wrap:nowrap !important;gap:.5em}.new-item .nid-value select,.settings-item .nid-value select{flex-grow:1}.new-item .ni-p,.settings-item .ni-p{margin-bottom:.5em}.new-item .ni-commands,.settings-item .ni-commands{display:grid;gap:.5em;margin-bottom:1em}.new-item .nic-container,.settings-item .nic-container{display:grid;gap:.5em}.new-item .nic-content,.settings-item .nic-content{gap:.5em;flex-wrap:nowrap !important}.new-item .nic-content input[placeholder=name],.settings-item .nic-content input[placeholder=name]{width:10em}.new-item .nic-content input[placeholder=description],.settings-item .nic-content input[placeholder=description]{flex-grow:1;width:unset}.new-item .nic-content input[placeholder="default value"],.settings-item .nic-content input[placeholder="default value"]{width:10em}.new-item .nic-options,.new-item .ni-options,.settings-item .nic-options,.settings-item .ni-options{grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-rows:minmax(min-content, max-content);display:grid;gap:.5em;margin-top:.5em;margin-bottom:.5em}.new-item .nic-options .ni-option input,.new-item .ni-options .ni-option input,.settings-item .nic-options .ni-option input,.settings-item .ni-options .ni-option input{width:unset;field-sizing:content}.new-item .ni-option input,.settings-item .ni-option input{flex-grow:1;outline:2px solid rgba(0,0,0,0);transition:outline .1s ease,background .1s}.new-item .ni-option i,.new-item .nic-button,.settings-item .ni-option i,.settings-item .nic-button{cursor:pointer;padding:.4em .6em}.new-item .ni-option i:hover,.new-item .nic-button:hover,.settings-item .ni-option i:hover,.settings-item .nic-button:hover{filter:brightness(1.4)}.new-item .ni-option i:active,.new-item .nic-button:active,.settings-item .ni-option i:active,.settings-item .nic-button:active{filter:brightness(1)}.new-item .ni-value input,.settings-item .ni-value input{width:100%}.new-item .ni-value input[type=color],.settings-item .ni-value input[type=color]{padding:0em .1em !important;background:var(--search-block);border:none;outline:none}.new-item .ni-title,.settings-item .ni-title{flex-grow:2}.new-item .ni-title input,.settings-item .ni-title input{width:100%}.new-item .ni-description,.settings-item .ni-description{width:100%}.new-item .ni-description textarea,.settings-item .ni-description textarea{width:100%}.new-item .si-checkbox,.settings-item .si-checkbox{width:-moz-fit-content;width:fit-content}.new-item .highlight,.settings-item .highlight{background:rgba(212,135,145,.4) !important}.settings-item{padding:.4em}.new-item{color:var(--text-1);padding:1em;background:var(--background-1)}.si-btns{font-size:.9em}hr.modal-space{margin:1em 0;border:1px solid}.sbi{display:grid;gap:.5em}.m-scroll>.sbi:not(:nth-child(2)){padding-top:1em;border-top:2px solid;margin-top:.5em}.oab{font-size:.8em}.devmode{justify-content:flex-end;font-size:.9em;width:10.5em}.devmode>*{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.external-exists{-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:.7em;color:var(--background-1);gap:.5em;padding:.2em .6em;margin-left:1.4em;background:var(--button-builder);border-radius:.2em}.submit-counter{text-decoration:none;font-weight:700;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;color:var(--text-2);gap:1em;padding:.4em .8em;background:var(--block-2);border-radius:.3em;transition:padding .4s ease,height .4s ease}.submit-counter i{color:var(--color-1)}.submit-counter>*{pointer-events:none}.txt-area{align-items:flex-start;flex-direction:column}.txt-area textarea{field-sizing:content;font-size:1em;width:100%}.fgrow{flex-grow:1}.sc-commands{counter-reset:command-counter;display:grid;gap:.5em;width:100%}.scc-item{align-items:flex-end;counter-increment:command-counter;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));grid-auto-rows:minmax(min-content, max-content);gap:.5em 1em;width:100%;color:var(--text-1);padding:1em;background:var(--background-1);border-radius:.4em}.scc-item input,.scc-item label,.scc-item select{width:100% !important;height:1.5em}.scc-item select{padding:0 .4em}.scc-item p{margin-bottom:.5em}.scc-item.empty{color:inherit;padding:unset;background:rgba(0,0,0,0)}.ni-dcommands{display:grid;margin:.5em 0}.mtb-1{margin:1em 0}.g05{gap:.5em} \ No newline at end of file +:root{--text-1: #647a91;--text-2: #8ca0b5;--text-links: #6593c5;--background-1: #191e25;--block-1: #242d37;--block-2: #333f4c;--block-on-block: 211.25deg, 75.28%, 68.43%;--block-color-1: #97a7b9;--button-update: #76c757;--button-download: #568cc7;--button-delete: #d57397;--button-open: #73a6d5;--button-open-folder: #b7a375;--button-save: #73a6d5;--button-cancel: #d57381;--button-builder: #d5b873;--button-add-option: #9cd573;--button-update-settings: #73a6d5;--submit-delete: #56c763;--notification-block-green: #56c763;--notification-color-green: #191e25;--notification-block-yellow: #d5ce73;--notification-color-yellow: #252419;--notification-block-red: #d57397;--notification-color-red: #191e25;--search-color-2: #707f8d;--search-color-1: #cbd8e5;--search-block: #3f4e5d;--header-color: #939393;--header-background: #14171c}*{position:relative;padding:0;margin:0;box-sizing:border-box;min-width:0}::-moz-selection{color:var(--background-1);background-color:var(--text-links)}::selection{color:var(--background-1);background-color:var(--text-links)}::-webkit-scrollbar{width:16px}::-webkit-scrollbar-thumb{background-color:var(--text-links);border-radius:.2em}button{font-size:1em;font-family:inherit;font-weight:inherit;font-style:inherit;border:0;outline:0}img{display:flex}body{font-size:20px;font-family:"Roboto",sans-serif;font-weight:400;font-style:normal;color:var(--text-1)}body:not(.ingame){justify-content:center;flex-direction:column;display:flex;max-width:min(1280px,100vw - 2em);min-height:100vh !important;margin:0 auto;background-color:var(--background-1);overflow-x:hidden}iframe{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}select{font-size:1em;color:var(--search-color-1);padding:.3em .4em;background:var(--search-block);border-radius:.2em;outline:0;border:0}header{position:sticky;font-size:.9em;color:var(--header-color);top:0;gap:1.2em;margin:0 1em;height:2em;z-index:3}header::before{content:"";position:absolute;top:0;left:-1000px;right:-1000px;bottom:0;background:var(--header-background)}header a:not(.button){-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;color:var(--header-color) !important;gap:.7em;transition:filter .2s ease}header a:not(.button) img{width:1.2em;height:1.2em}header a:not(.button):hover{filter:brightness(1.2)}.imglink{font-size:.9em}body:not(.ingame) main{display:grid;min-height:0;margin-top:2em;margin-bottom:3em}footer{font-weight:600;text-align:center;font-size:.8em;position:sticky;bottom:0;padding:.6em 0;margin-top:auto}footer::before{content:"";pointer-events:none;-webkit-mask-image:linear-gradient(0deg, black 0%, transparent 100%);mask-image:linear-gradient(0deg, black 0%, transparent 100%);position:absolute;height:7em;left:0;right:0;bottom:0;background:var(--background-1);z-index:0}footer>*{z-index:1}a{color:var(--text-links)}.flexer{justify-content:flex-start;align-items:center;display:flex;flex-wrap:wrap}.links{gap:1em;padding:0 1em;margin-bottom:2em;z-index:2}.links .button{gap:.5em}.links .button.active{color:var(--button-open);background:var(--background-1)}.tabs{justify-content:center;position:sticky;top:2em;width:calc(100% - 1em);margin:0 auto;gap:1em;z-index:1}.tabs .tab-item{justify-content:center;align-items:center;display:flex;gap:.5em;line-height:1em;cursor:pointer;color:var(--text-1);padding:.6em;text-decoration:none;transition:.1s ease;transition-property:color,text-decoration-color}.tabs .tab-item.active{color:var(--text-links);text-decoration-color:var(--text-links)}.tabs .tab-item.active::before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--text-links);border-radius:10em}.tabs::before{content:"";position:absolute;top:-2em;left:-3em;right:-3em;bottom:0;background:var(--background-1)}.indent-left{margin-left:auto}.indent-right{margin-right:auto}.results{display:grid;gap:.5em}.no-results{text-align:center;width:100%;margin:2em 0}.result-item{display:grid;gap:.8em;color:var(--block-color-1);padding:1em;background:var(--block-1);border-radius:.3em}.result-item hr{border-color:var(--background-1)}.result-item .ri-gallery{gap:.4em}.result-item .ri-gallery img{height:7.5em;border-radius:.4em}.result-item .ri-links{font-size:.9em;gap:.4em;margin-top:.4em}.result-item .ri-links img{height:1.2em;border-radius:.2em}.result-item .ri-footer{font-size:.9em;gap:1em}.result-item.downloaded::before,.result-item.updatable::before{position:absolute;pointer-events:none;top:0;left:0;right:0;bottom:0;opacity:1;z-index:1;display:flex;justify-content:flex-end;align-items:flex-end;font-size:1.4em;padding:.5em;color:#fff;text-shadow:0 0 .2em #000,0 .1em .1em #000,0 .1em .7em #000,0 .1em .2em #000}.result-item.downloaded{outline:2px solid}.result-item.downloaded::before{content:"already downloaded";background:rgba(151,167,185,.2)}.result-item.updatable{outline:2px solid #a7d395}.result-item.updatable::before{content:"update available";color:#a7d395;background:rgba(161,185,151,.2)}.copyable{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;padding:.1em .2em;background:hsl(var(--block-on-block), 0.2);transition:.5s ease;transition-property:background,filter;border-radius:.2em}.copyable:active{filter:brightness(2);background:hsl(var(--block-on-block), 0.4);transition:.1s ease}.notification{font-size:.8em;font-weight:bold;position:absolute;left:50%;bottom:2em;padding:.5em 1.6em;translate:0 0;box-shadow:0 .7em 1.2em rgba(0,0,0,.7);transition:.3s ease;transition-property:translate,opacity;border-radius:.3em;z-index:15}.notification.hidden{opacity:0;translate:0 1em}.notification.red{color:var(--notification-color-red);background:var(--notification-block-red)}.notification.yellow{color:var(--notification-color-yellow);background:var(--notification-block-yellow)}.notification.green{color:var(--notification-color-green);background:var(--notification-block-green)}@keyframes spin{0%{rotate:0}100%{rotate:360deg}}.button{white-space:nowrap;text-decoration:none;font-size:.9em;font-weight:700;cursor:pointer;padding:.4em 1em;border-radius:.4em;transition:.1s ease;transition-property:translate,filter}.button>*{pointer-events:none}.button span{display:block;pointer-events:none;transition:.3s ease;transition-property:opacity,width}.button img{width:1em;height:1em;-o-object-fit:cover;object-fit:cover;transition:.3s ease;transition-property:opacity,width,height;animation:spin 1s infinite forwards linear}.button:hover{filter:brightness(1.1);translate:0 -0.05em}.button:active{filter:brightness(0.9);translate:0 .1em}.button.disable{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1)}.button.small{padding:.1em .5em}.buttons-group{font-size:.9em;gap:10px;height:1.8em}.buttons-group>*{height:100%}.dl-button{color:var(--background-1);background:var(--button-download)}.update-button{color:var(--background-1);background:var(--button-update);box-shadow:0em .4em 3em hsl(from var(--button-update) h s l/50%)}.delete-button{color:var(--background-1);background:var(--button-delete)}.open-button{color:var(--background-1);background:var(--button-open)}.open-folder-button{color:var(--background-1);background:var(--button-open-folder)}.settings-builder-button{display:none;color:var(--background-1);background:var(--button-builder)}.settings-builder-button.active{display:unset}.add-option-button{color:var(--background-1);background:var(--button-add-option)}.save-button{color:var(--background-1);background:var(--button-save)}.submit-button{display:block;color:var(--background-1);padding:.2em 1em;background:var(--submit-delete)}.remove-option-button,.cancel-button{color:var(--background-1);background:var(--button-cancel)}.open-link-button,.update-settings-button,.update-x2-settings-button{color:var(--background-1);background:var(--button-update-settings)}.open-link-button{gap:.5em}.search-bar{font-size:.9em;font-family:inherit;color:var(--search-color-1);background:var(--search-block);padding:.2em .6em;border-radius:.2em;outline:0;border:0;transition:.2s ease;transition-property:filter,opacity}.search-bar::-moz-placeholder{color:var(--search-color-2)}.search-bar::placeholder{color:var(--search-color-2)}.search-bar.disable{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);opacity:.5}.settings{display:grid;gap:.8em;color:var(--block-color-1);padding:1em;background:var(--block-1);border-radius:.3em}.settings .si-btn{margin-top:1em}.si:not(.-s):not(.block) div:nth-child(1){width:20em}.si h4,.si .settings-note{color:#7a91a9}.si p,.si .settings-note{color:#7a91a9}.si p,.si .settings-note{filter:brightness(0.8);font-size:.8em;max-width:20em}.si .settings-note{margin-top:.5em;font-style:italic}.si input[type=text],.si input[type=number],.si input[type=password],.si textarea{font-size:.9em;font-family:inherit;color:var(--search-color-1);width:20em;padding:.2em .6em;background:var(--search-block);outline:0;border-radius:.2em;border:0;transition:.2s ease;transition-property:filter,opacity,outline,background;outline:2px solid rgba(0,0,0,0)}.si input[type=text]::-moz-placeholder, .si input[type=number]::-moz-placeholder, .si input[type=password]::-moz-placeholder, .si textarea::-moz-placeholder{color:var(--search-color-2)}.si input[type=text]::placeholder,.si input[type=number]::placeholder,.si input[type=password]::placeholder,.si textarea::placeholder{color:var(--search-color-2)}.si input[type=text]:hover,.si input[type=number]:hover,.si input[type=password]:hover,.si textarea:hover{background:#4e5e6f}.si input[type=text]:focus,.si input[type=number]:focus,.si input[type=password]:focus,.si textarea:focus{background:#2b353f;outline:2px solid var(--search-block)}.si input[type=color]{padding:0;background:rgba(0,0,0,0);border:0;outline:0;width:7em;block-size:2.3em;flex-grow:unset;border-radius:20em}.si.block{flex-direction:column;align-items:flex-start;gap:.5em}.si-checkbox{justify-content:center;align-items:center;cursor:pointer;display:flex;gap:.4em;height:1em}.si-checkbox input{display:none}.si-checkbox input:checked~.checkmark::before{scale:.7;background:var(--search-color-1)}.si-checkbox input:checked~.status::before{content:"Enabled"}.si-checkbox .checkmark{background:#637a91;width:1em;height:1em;border-radius:.2em;overflow:hidden;display:block}.si-checkbox .checkmark::before{content:"";display:block;width:1em;height:1em;scale:1;background:#637a91;transition:background .1s ease,scale .3s ease;border-radius:.2em}.si-checkbox .status::before{content:"Disabled"}.si-checkbox.sic-start{justify-content:flex-start}.si-btn{gap:1em}.modal{position:fixed;top:0;left:0;right:0;bottom:0;transition:background .5s ease,transform .15s ease,-webkit-backdrop-filter .6s ease;transition:background .5s ease,backdrop-filter .6s ease,transform .15s ease;transition:background .5s ease,backdrop-filter .6s ease,transform .15s ease,-webkit-backdrop-filter .6s ease;z-index:10}.modal:not(.hidden){background:rgba(0,0,0,.5);-webkit-backdrop-filter:opacity(0.5) blur(50px);backdrop-filter:opacity(0.5) blur(50px)}.modal:not(.hidden) .m-content{opacity:1;transform:translate(-50%, -50%) translateY(0em)}.modal#settingsBuilder .m-content{width:min(1280px,100vw - 2em)}.modal#settingsBuilder .m-scroll{gap:1em}.modal .m-content{width:min(1100px,100vw - 2em);top:50%;left:50%;padding:1em;opacity:0;background:var(--block-1);border-radius:.4em;box-shadow:0 1em 2em rgba(0,0,0,.5),0 1em 4em rgba(0,0,0,.5);transform:translate(-50%, -50%) translateY(2em);transition:opacity .3s ease,transform .3s ease;z-index:1}.modal .ms-title{justify-content:space-between;align-items:center;flex-wrap:wrap;display:flex;padding-bottom:.1em;margin-bottom:.8em;border-bottom:1px solid}.modal .ms-title span:nth-child(2){font-size:.7em}.modal .ms-btns{font-size:.9em;margin-top:1.5em}.modal .m-scroll{display:grid;gap:.8em;max-height:min(35em,100vh - 11em);overflow:auto}.modal .m-scroll::-webkit-scrollbar{width:10px}.modal.-expand{transform:scale(1.02)}.update-available{font-weight:700;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;color:var(--background-1);height:3em;padding:.4em 0;transition:padding .4s ease,height .4s ease}.update-available::before{content:"";position:absolute;top:0;left:-30vw;right:-30vw;bottom:0;background:#56c763}.update-available ::-moz-selection{color:#56c763;background-color:var(--background-1)}.update-available ::selection{color:#56c763;background-color:var(--background-1)}.update-available div:nth-child(2){font-size:.8em}.update-available.hidden{display:none}.update-available>*{pointer-events:none}.update-available.loadong{animation:update 2s infinite forwards ease}.update-available.fold{padding:0 0;height:0}@keyframes update{0%{opacity:1}70%{opacity:.6}100%{opacity:1}}.settings-container{padding-left:.5em;padding-right:.5em}.new-item,.settings-item{display:grid;gap:.5em;border-radius:.6em}.new-item input,.new-item textarea,.settings-item input,.settings-item textarea{font-size:1em !important;padding:.3em .6em !important}.new-item .ni-unique input,.settings-item .ni-unique input{width:12em}.new-item .ni-row-1,.settings-item .ni-row-1{justify-content:flex-start;align-items:center;display:flex;gap:.5em}.new-item .ni-options,.settings-item .ni-options{display:grid;gap:.5em}.new-item .nid-value,.settings-item .nid-value{white-space:nowrap;flex-wrap:nowrap !important;gap:.5em}.new-item .nid-value select,.settings-item .nid-value select{flex-grow:1}.new-item .ni-p,.settings-item .ni-p{margin-bottom:.5em}.new-item .ni-commands,.settings-item .ni-commands{display:grid;gap:.5em;margin-bottom:1em}.new-item .nic-container,.settings-item .nic-container{display:grid;gap:.5em}.new-item .nic-content,.settings-item .nic-content{gap:.5em;flex-wrap:nowrap !important}.new-item .nic-content input[placeholder=name],.settings-item .nic-content input[placeholder=name]{width:10em}.new-item .nic-content input[placeholder=description],.settings-item .nic-content input[placeholder=description]{flex-grow:1;width:unset}.new-item .nic-content input[placeholder="default value"],.settings-item .nic-content input[placeholder="default value"]{width:10em}.new-item .nic-options,.new-item .ni-options,.settings-item .nic-options,.settings-item .ni-options{grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-rows:minmax(min-content, max-content);display:grid;gap:.5em;margin-top:.5em;margin-bottom:.5em}.new-item .nic-options .ni-option input,.new-item .ni-options .ni-option input,.settings-item .nic-options .ni-option input,.settings-item .ni-options .ni-option input{width:unset;field-sizing:content}.new-item .ni-option input,.settings-item .ni-option input{flex-grow:1;outline:2px solid rgba(0,0,0,0);transition:outline .1s ease,background .1s}.new-item .ni-option i,.new-item .nic-button,.settings-item .ni-option i,.settings-item .nic-button{cursor:pointer;padding:.4em .6em}.new-item .ni-option i:hover,.new-item .nic-button:hover,.settings-item .ni-option i:hover,.settings-item .nic-button:hover{filter:brightness(1.4)}.new-item .ni-option i:active,.new-item .nic-button:active,.settings-item .ni-option i:active,.settings-item .nic-button:active{filter:brightness(1)}.new-item .ni-value input,.settings-item .ni-value input{width:100%}.new-item .ni-value input[type=color],.settings-item .ni-value input[type=color]{padding:0em .1em !important;background:var(--search-block);border:none;outline:none}.new-item .ni-title,.settings-item .ni-title{flex-grow:2}.new-item .ni-title input,.settings-item .ni-title input{width:100%}.new-item .ni-description,.settings-item .ni-description{width:100%}.new-item .ni-description textarea,.settings-item .ni-description textarea{width:100%}.new-item .si-checkbox,.settings-item .si-checkbox{width:-moz-fit-content;width:fit-content}.new-item .highlight,.settings-item .highlight{background:rgba(212,135,145,.4) !important}.settings-item{padding:.4em}.new-item{color:var(--text-1);padding:1em;background:var(--background-1)}.si-btns{font-size:.9em}hr.modal-space{margin:1em 0;border:1px solid}.sbi{display:grid;gap:.5em}.m-scroll>.sbi:not(:nth-child(2)){padding-top:1em;border-top:2px solid;margin-top:.5em}.oab{font-size:.8em}.devmode{justify-content:flex-end;font-size:.9em;width:10.5em}.devmode>*{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.external-exists{-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:.7em;color:var(--background-1);gap:.5em;padding:.2em .6em;margin-left:1.4em;background:var(--button-builder);border-radius:.2em}.submit-counter{text-decoration:none;font-weight:700;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;color:var(--text-2);gap:1em;padding:.4em .8em;background:var(--block-2);border-radius:.3em;transition:padding .4s ease,height .4s ease}.submit-counter i{color:var(--color-1)}.submit-counter>*{pointer-events:none}.txt-area{align-items:flex-start;flex-direction:column}.txt-area textarea{field-sizing:content;font-size:1em;width:100%}.fgrow{flex-grow:1}.sc-commands{counter-reset:command-counter;display:grid;gap:.5em;width:100%}.scc-item{align-items:flex-end;counter-increment:command-counter;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));grid-auto-rows:minmax(min-content, max-content);gap:.5em 1em;width:100%;color:var(--text-1);padding:1em;background:var(--background-1);border-radius:.4em}.scc-item input,.scc-item label,.scc-item select{width:100% !important;height:1.5em}.scc-item select{padding:0 .4em}.scc-item p{margin-bottom:.5em}.scc-item.empty{color:inherit;padding:unset;background:rgba(0,0,0,0)}.ni-dcommands{display:grid;margin:.5em 0}.mtb-1{margin:1em 0}.g05{gap:.5em} \ No newline at end of file diff --git a/packages/server/utils/counters.ts b/packages/server/utils/counters.ts index d637c4d2..e8c0aba3 100644 --- a/packages/server/utils/counters.ts +++ b/packages/server/utils/counters.ts @@ -273,7 +273,7 @@ function rebuildJSON({ ${downloadBtn} `; - const localButtons = `