From a25cab7c8953244211e11c71823a0464b6b1fbf7 Mon Sep 17 00:00:00 2001 From: anapnoe <124302297+anapnoe@users.noreply.github.com> Date: Mon, 27 Mar 2023 16:18:24 +0300 Subject: [PATCH] zoom pan and full screen features for sketch, inpaint, inpaint sketch --- .../sd_theme_editor/javascript/ui_theme.js | 8 +- html/footer.html | 23 +- javascript/imageMaskFix.js | 235 +++++++++++++++++- javascript/imageviewer.js | 100 ++++---- javascript/spotlight.js | 7 +- javascript/ui.js | 18 +- style.css | 95 ++++--- 7 files changed, 358 insertions(+), 128 deletions(-) diff --git a/extensions-builtin/sd_theme_editor/javascript/ui_theme.js b/extensions-builtin/sd_theme_editor/javascript/ui_theme.js index 07bef7f6..f8098c3f 100644 --- a/extensions-builtin/sd_theme_editor/javascript/ui_theme.js +++ b/extensions-builtin/sd_theme_editor/javascript/ui_theme.js @@ -284,7 +284,7 @@ function initTheme() { gradioApp().querySelectorAll('#ui_theme_settings input').forEach((elem) => { - elem.addEventListener("change", function(e) { + elem.addEventListener("input", function(e) { let celem = e.currentTarget; let val = e.currentTarget.value; @@ -379,7 +379,7 @@ function initTheme() { let hsloffset = [0,0,0]; const hue = gradioApp().querySelectorAll('#theme_hue input').forEach((elem) => { - elem.addEventListener("change", function(e) { + elem.addEventListener("input", function(e) { e.preventDefault(); e.stopPropagation(); hsloffset[0] = e.currentTarget.value; @@ -388,7 +388,7 @@ function initTheme() { }) const sat = gradioApp().querySelectorAll('#theme_sat input').forEach((elem) => { - elem.addEventListener("change", function(e) { + elem.addEventListener("input", function(e) { e.preventDefault(); e.stopPropagation(); hsloffset[1] = e.currentTarget.value; @@ -397,7 +397,7 @@ function initTheme() { }) const brt = gradioApp().querySelectorAll('#theme_brt input').forEach((elem) => { - elem.addEventListener("change", function(e) { + elem.addEventListener("input", function(e) { e.preventDefault(); e.stopPropagation(); hsloffset[2] = e.currentTarget.value; diff --git a/html/footer.html b/html/footer.html index d4b6f3d0..80d95191 100644 --- a/html/footer.html +++ b/html/footer.html @@ -41,31 +41,16 @@
  • -
    +
    - - - - - - - - - - - - - - - - - + -
    +
    thanks for your support +

    This project needs your support, if you like it consider some small donation enjoy!

  • diff --git a/javascript/imageMaskFix.js b/javascript/imageMaskFix.js index bc04fb54..0439c926 100644 --- a/javascript/imageMaskFix.js +++ b/javascript/imageMaskFix.js @@ -46,16 +46,235 @@ function imageMaskResize() { onUiUpdate(() => imageMaskResize()); */ + + let img2img_tab_index = 0; +let img2img_tab_tool_buttons; + +let isPanning; +let parent_container_img; +let spotlight_sketch; +let spotlight_inpaint; +let spotlight_inpaint_sketch; +let spotlight; + +let curr_src = []; + +let intervalLastUIUpdate; + +let sketch_pan; +let inpaint_pan; +let inpaint_sketch_pan; +let curr_pan; + +function common_undo_handler(e) { + img2img_tab_tool_buttons[0].click(); +} +function common_clear_handler(e){ + img2img_tab_tool_buttons[1].click(); +} + +function common_color_handler(e){ + let cb = parent_container_img.querySelector("input[type='color']"); + if(!cb){ + img2img_tab_tool_buttons[3].click(); + e.target.addEventListener("input", function(ev) { + cb = parent_container_img.querySelector("input[type='color']"); + cb.value = ev.target.value; + updateInput(cb); + pan_toggle(false, curr_pan); + }) + } +} + +function common_brush_handler(e){ + let cb = parent_container_img.querySelector("input[type='range']"); + if(!cb){ + img2img_tab_tool_buttons[2].click(); + e.target.addEventListener("input", function(ev) { + cb = parent_container_img.querySelector("input[type='range']"); + cb.value = ev.target.value; + updateInput(cb); + //pan_toggle(false, curr_pan); + }) + } +} + +function preventDefault(e) { + e = e || window.event + if (e.preventDefault) { + e.preventDefault() + } + e.returnValue = false +} + +function pan_toggle(val, target){ + isPanning = val; + target.classList.toggle("on", isPanning); + spotlight.panzoom(val); + + if(isPanning){ + parent_container_img.classList.add("no-point-events"); + parent_container_img.parentElement.classList.add("move"); + document.addEventListener('wheel', preventDefault, {passive: false}); + }else{ + parent_container_img.classList.remove("no-point-events"); + parent_container_img.parentElement.classList.remove("move"); + document.removeEventListener('wheel', preventDefault, false); + } + +} + +function common_pan_handler(e){ + isPanning = !isPanning; + pan_toggle(isPanning, this); +} + + +onUiLoaded(function(){ + + const color_box = ''; + const brush_size = ''; + + spotlight_sketch = new Spotlight(); + const spotlight_sketch_parent = gradioApp().querySelector("#img2img_sketch"); + spotlight_sketch.init(spotlight_sketch_parent, "-sketch"); + spotlight_sketch.addControl("undo", common_undo_handler); + sketch_pan = spotlight_sketch.addControl("pan", common_pan_handler); + spotlight_sketch.addControl("brush", common_brush_handler, brush_size); + spotlight_sketch.addControl("color", common_color_handler, color_box); + spotlight_sketch.addControl("clear",common_clear_handler); + + spotlight_inpaint = new Spotlight(); + const spotlight_inpaint_parent = gradioApp().querySelector("#img2maskimg"); + spotlight_inpaint.init(spotlight_inpaint_parent, "-inpaint"); + spotlight_inpaint.addControl("undo", common_undo_handler); + inpaint_pan = spotlight_inpaint.addControl("pan", common_pan_handler); + spotlight_inpaint.addControl("brush", common_brush_handler, brush_size); + spotlight_inpaint.addControl("clear",common_clear_handler); + + spotlight_inpaint_sketch = new Spotlight(); + const spotlight_inpaint_sketch_parent = gradioApp().querySelector("#inpaint_sketch"); + spotlight_inpaint_sketch.init(spotlight_inpaint_sketch_parent, "-inpaint-sketch"); + spotlight_inpaint_sketch.addControl("undo", common_undo_handler); + inpaint_sketch_pan = spotlight_inpaint_sketch.addControl("pan", common_pan_handler); + spotlight_inpaint_sketch.addControl("brush", common_brush_handler, brush_size); + spotlight_inpaint_sketch.addControl("color", common_color_handler, color_box); + spotlight_inpaint_sketch.addControl("clear",common_clear_handler); +}) + + onUiUpdate(function() { + //clearInterval(intervalLastUIUpdate); const img2img_tab = gradioApp().querySelector('#img2img_img2img_tab'); - if(img2img_tab){ + if(img2img_tab && selectedTabItemId == "tab_img2img"){ + //console.log("UIMASKUPDATE"); + const img2img_tab_index = get_img2img_tab_index()[0]; + if(img2img_tab_index > 3 || img2img_tab_index == 0) return; + + let tabid; + let copytoId; + + if(img2img_tab_index == 1){ + tabid = "#img2img_img2img_sketch_tab";// #img2img_sketch"; + spotlight = spotlight_sketch; + curr_pan = sketch_pan; + }else if(img2img_tab_index == 2){ + tabid = "#img2img_inpaint_tab";// #img2maskimg"; + spotlight = spotlight_inpaint; + curr_pan = inpaint_pan; + }else if(img2img_tab_index == 3){ + tabid = "#img2img_inpaint_sketch_tab";// #inpaint_sketch"; + spotlight = spotlight_inpaint_sketch; + curr_pan = inpaint_sketch_pan; + } + + + const parent_img2img_tab_img = gradioApp().querySelector(tabid); + //const parent_img2img_tab_copy_to = parent_img2img_tab_img.querySelector(copytoId); + const spotlight_parent = parent_img2img_tab_img.querySelector('div[data-testid="image"]'); + parent_container_img = parent_img2img_tab_img.querySelector('div[data-testid="image"] > div'); + const img2img_tab_img = parent_container_img.querySelector('img'); + img2img_tab_tool_buttons = parent_container_img.querySelectorAll('button'); + + + if(img2img_tab_img){ + pan_toggle(false, curr_pan); + spotlight.panzoom(false); + } + + function getImgSync(image){ + let c_src; + + if(curr_src[img2img_tab_index] != image.src){ + //console.log("NEWIMAGE"); + curr_src[img2img_tab_index] = image.src; + + let w = image.naturalWidth; + let h = image.naturalHeight; + parent_container_img.style.width = `${w}px`; + parent_container_img.style.height = `${h}px`; + + spotlight.show([{ + media: "node", + src: spotlight_parent, + autohide: true, + control: ["pan","clear","undo","fullscreen","autofit","zoom-in","zoom-out","close"], + class: "relative", + }], + ); + + parent_container_img.style.flexGrow = "0"; + } + } + + const getImage = async (image) => { + if(!image){ + if(spotlight.panel){ + spotlight.close(false, true); + parent_container_img.style.flexGrow = "1"; + curr_src[img2img_tab_index] = ""; + spotlight_parent.style = ""; + + } + }else if (image.complete) { + return getImgSync(image); + }else{ + return new Promise(resolve => { + image.onload = () => { + resolve(getImgSync(image)); + }; + }); + } + }; + + getImage(img2img_tab_img); + + } + +}) + +/* +function onLastUIUpdate(){ + clearInterval(intervalLastUIUpdate); + const img2img_tab = gradioApp().querySelector('#img2img_img2img_tab'); + if(img2img_tab && selectedTabItemId=="tab_img2img"){ const current_img2img_tab_index = get_img2img_tab_index()[0]; //if(img2img_tab_index != current_img2img_tab_index){ - //console.log(current_img2img_tab_index); - if(current_img2img_tab_index > 3) return; + console.log(current_img2img_tab_index); + if(current_img2img_tab_index > 3 || current_img2img_tab_index == 0) return; img2img_tab_index = current_img2img_tab_index; - const parent_img2img_tab_img = gradioApp().querySelector('#mode_img2img > div:nth-child('+(img2img_tab_index+2)+') div[data-testid="image"] > div'); + let tabid; + + if(img2img_tab_index == 1){ + tabid = "#img2img_img2img_sketch_tab";// #img2img_sketch"; + }else if(img2img_tab_index == 2){ + tabid = "#img2img_inpaint_tab";// #img2maskimg"; + }else if(img2img_tab_index == 3){ + tabid = "#img2img_inpaint_sketch_tab";// #inpaint_sketch"; + } + //const parent_img2img_tab_img = gradioApp().querySelector('#mode_img2img > div:nth-child('+(img2img_tab_index+2)+') div[data-testid="image"] > div'); + const parent_img2img_tab_img = gradioApp().querySelector('#mode_img2img '+tabid+' div[data-testid="image"] > div'); const img2img_tab_img = parent_img2img_tab_img.querySelector('img'); if(img2img_tab_img){ parent_img2img_tab_img.style.flexGrow = "0"; @@ -70,4 +289,10 @@ onUiUpdate(function() { } //} } -}) +} +*/ +/* onUiUpdate(function() { + if(intervalLastUIUpdate != null) clearInterval(intervalLastUIUpdate); + intervalLastUIUpdate = setInterval(onLastUIUpdate, 1000); +}) */ + diff --git a/javascript/imageviewer.js b/javascript/imageviewer.js index 0d4c7bd6..1f391cbf 100644 --- a/javascript/imageviewer.js +++ b/javascript/imageviewer.js @@ -291,18 +291,14 @@ function showGalleryImage() { //need to clean up the old code } -let isDomLoaded; - let like; let tile; -let undo; -let clear; -let pan; let slide = 0; let gallery = []; let fullImg_src; -let control = ["pan","undo","clear","like","tile","page","fullscreen","autofit","zoom-in","zoom-out","close","download","prev","next"]; +//let control = ["pan","undo","like","tile","page","fullscreen","autofit","zoom-in","zoom-out","clear","close","download","prev","next"]; +let control = ["like","tile","page","fullscreen","autofit","zoom-in","zoom-out","clear","close","download","prev","next"]; let img_browser; let img_file_name; @@ -310,6 +306,8 @@ let img_file_name; let spl_pane; let spl_zoom_out; let spl_zoom_in; +let spotlight_gallery; + function tile_zoom_update(val){ let current_tile_state_size = gallery[slide].tile_size; @@ -332,15 +330,13 @@ function tile_zoom_out(event){ } function removeTile(){ - spl_pane.removeEventListener("wheel", tile_wheel); spl_zoom_out.removeEventListener("click", tile_zoom_out); spl_zoom_in.removeEventListener("click", tile_zoom_in); spl_pane.classList.remove("hide"); spl_pane.style.setProperty('background-image', 'none'); - Spotlight.zoom(0.0); - + spotlight_gallery.zoom(0.0); } function addTile(spl_img){ @@ -355,7 +351,6 @@ function addTile(spl_img){ if(spl_img){ spl_pane.style.setProperty('background-image', `url(${spl_img.src})`); } - } function tile_handler(event) { @@ -366,7 +361,7 @@ function tile_handler(event) { this.classList.toggle("on"); if(current_tile_state){ - const spl_img = gradioApp().querySelector("#spotlight .spl-pane img"); + const spl_img = gradioApp().querySelector("#spotlight-gal .spl-pane img"); addTile(spl_img); } else { removeTile(); @@ -389,17 +384,19 @@ function like_handler(event){ } -function createGallerySpotlight(src) { - +function createGallerySpotlight() { + + //console.log("clicked"); slide = 0; gallery = []; - gradioApp().querySelectorAll("#"+selectedTabItemId+' .grid img.w-full.object-contain').forEach(function (elem, i){ elem.setAttribute("gal-id", i); - if(src == elem.src) slide = (i+1); + if(fullImg_src == elem.src) slide = (i+1); gallery[i] = { src: elem.src, + title: "Seed:" + elem.src, + //description: "This is a description.", like: false, tile:false, tile_size: 50, @@ -413,9 +410,9 @@ function createGallerySpotlight(src) { //control: ["like","page","theme","fullscreen","autofit","zoom-in","zoom-out","close","download","play","prev","next"], control: control, //animation: animation, - //onshow: function(index){ - //like = Spotlight.addControl("like", handler); - //}, + onshow: function(index){ + + }, onchange: function(index, options){ slide = index - 1; tile.classList.toggle("on", gallery[slide].tile); @@ -424,11 +421,11 @@ function createGallerySpotlight(src) { //} - const current_tile_state = gallery[slide].tile; - spl_pane = gradioApp().querySelector("#spotlight .spl-pane:nth-child("+index+")"); - spl_zoom_out = gradioApp().querySelector("#spotlight .spl-zoom-out"); - spl_zoom_in = gradioApp().querySelector("#spotlight .spl-zoom-in"); + spl_pane = gradioApp().querySelector("#spotlight-gal .spl-pane:nth-child("+index+")"); + spl_zoom_out = gradioApp().querySelector("#spotlight-gal .spl-zoom-out"); + spl_zoom_in = gradioApp().querySelector("#spotlight-gal .spl-zoom-in"); + const current_tile_state = gallery[slide].tile; if(current_tile_state){ addTile(); }else{ @@ -437,47 +434,44 @@ function createGallerySpotlight(src) { }, onclose: function(index){ - //Spotlight.removeControl("like"); - gradioApp().querySelector('.grid .gallery-item:nth-child('+(slide+1)+')').click(); + gradioApp().querySelector("#"+selectedTabItemId+' .grid .gallery-item:nth-child('+(slide+1)+')').click(); } }; - + //assign(options, modifier); - Spotlight.show(gallery, options); - - Spotlight.removeControl("undo"); - Spotlight.removeControl("clear"); - Spotlight.removeControl("pan"); - - const spl_track = gradioApp().querySelector("#spotlight .spl-track"); - Spotlight.panzoom(spl_track, true); + spotlight_gallery.show(gallery, options); + spotlight_gallery.panzoom(true); } function fullImg_click_handler(e){ e.stopPropagation(); e.preventDefault(); - createGallerySpotlight(fullImg_src); + createGallerySpotlight(); } + let intervalUiUpdateIViewer; +function onUiHeaderTabUpdate(){ + if(intervalUiUpdateIViewer != null) clearInterval(intervalUiUpdateIViewer); + intervalUiUpdateIViewer = setInterval(onUiUpdateIViewer, 500); +} + +let fullImg_preview; function onUiUpdateIViewer(){ clearInterval(intervalUiUpdateIViewer); //update_performant_inputs(selectedTabItemId); - const fullImg_preview = gradioApp().querySelector("#"+selectedTabItemId+' .modify-upload + img.w-full.object-contain'); + + //fullImg_preview = gradioApp().querySelector('#'+selectedTabItemId+' [id$="2img_results"] .modify-upload + img.w-full.object-contain'); + fullImg_preview = gradioApp().querySelector('#'+selectedTabItemId+' .modify-upload + img.w-full.object-contain'); if(opts.js_modal_lightbox && fullImg_preview ) { - //console.log("GALLERY UPDATED"); + fullImg_src = fullImg_preview.src; fullImg_preview.removeEventListener('click', fullImg_click_handler ); fullImg_preview.addEventListener('click', fullImg_click_handler, true );//bubbling phase - if(!isDomLoaded){ - isDomLoaded = true; - tile = Spotlight.addControl("tile", tile_handler); - like = Spotlight.addControl("like", like_handler); - - } + /* // this is an idea to integrate image browser extension seamlesly, // without the need to change to the image browser tab extension users will be able to review images after generation @@ -506,21 +500,13 @@ onUiUpdate(function() { intervalUiUpdateIViewer = setInterval(onUiUpdateIViewer, 500); }) -document.addEventListener("DOMContentLoaded", function() { - //const head = gradioApp(); +onUiLoaded(function(){ + spotlight_gallery = new Spotlight(); + spotlight_gallery.init(gradioApp().querySelector('.gradio-container'), "-gal"); + tile = spotlight_gallery.addControl("tile", tile_handler); + like = spotlight_gallery.addControl("like", like_handler); +}) - /* - const head = document.head; - const link = document.createElement("link"); - link.type = "text/css"; - link.rel = "stylesheet"; - link.href = "file=html/spotlight.css"; - head.appendChild(link); - */ - Spotlight.init(); - - - - +document.addEventListener("DOMContentLoaded", function() { }); \ No newline at end of file diff --git a/javascript/spotlight.js b/javascript/spotlight.js index 510cfb57..9750d1b5 100644 --- a/javascript/spotlight.js +++ b/javascript/spotlight.js @@ -6,8 +6,7 @@ * https://github.com/nextapps-de/spotlight */ /* - this library was modified by anapnoe to work with stable-diffusion-ui-ux - the changes made were to root selector and an extra function was added to toggle - the pan zoom functionallity + this library was rewriten by anapnoe to work with https://github.com/anapnoe/stable-diffusion-webui-ux + it supports multi-instancing, enable-disable panzoom functionallity and input type tools */ -(function(){"use strict";function e(e,n,t){e.classList[t?"add":"remove"](n)}function n(e,n,t){t=""+t,e["_s_"+n]!==t&&(e.style.setProperty(n,t),e["_s_"+n]=t)}Object.assign||(Object.assign=function(e,n){for(var t,i=Object.keys(n),o=0;o
    ";var p={},v=document.createElement("video");function $(e,n,t,i){if("node"!==i){for(var o,s=Object.keys(t),r=0;r.5*(0>(e=e.deltaY)?1:e?-1:0)?eJ():eG())}function eW(n,t){("boolean"==typeof n?n:!ey)===!ey&&(e(e$,"on",ey=ey?clearTimeout(ey):1),t||eY(ey))}function eY(e){V&&(i(em,function(){n(em,"transition-duration",""),n(em,"transform","")}),e&&(n(em,"transition-duration",J+"s"),n(em,"transform","translateX(0)"))),e&&(ey=setTimeout(ne,1e3*J))}function eB(){O&&(ek=Date.now()+2950,eb||(e(d,"menu",!0),function n(t){eb=setTimeout(function(){var t=Date.now();t>=ek?(e(d,"menu"),eb=0):n(ek-t)},3e3)}(3e3)))}function eO(n){"boolean"==typeof n&&(eb=n?eb:0),eb?(eb=clearTimeout(eb),e(d,"menu")):eB()}function e2(e){r(e,!0),E=!0,z=!1;var n=e.touches;n&&(n=n[0])&&(e=n),x=k*w<=y,_=e.pageX,g=e.pageY,c(et)}function eD(e){if(r(e),E){if(z){if(x&&z){var n=(e=m<-(y/7)&&(Ny/7&&(1n?m=n:m<-n&&(m=-n),C*w>b&&(n=(C*w-b)/2,(h-=g-(g=e.pageY))>n?h=n:h<-n&&(h=-n))),z=!0,eP(m,h)}else eB()}function eM(e){var n=eF();("boolean"!=typeof e||!!n!==e)&&(n?document[ew]():d[eC]())}function ej(n){"string"!=typeof n&&(n=H?"":I||"white"),H!==n&&(H&&e(d,H),n&&e(d,n,!0),H=n)}function eA(t){"boolean"==typeof t&&(q=!t),e(eo,"autofit",q=1===w&&!q),n(eo,"transform",""),w=1,h=m=0,eL(),c(et),eP()}function eG(){var e=w/.65;50>=e&&(q&&eA(),eP(m/=.65,h/=.65),eK(e))}function eJ(){var e=.65*w;q&&eA(),1<=e&&(1===e?m=h=0:(m*=.65,h*=.65),eP(m,h),eK(e))}function eK(e){w=e||1,e6()}function eQ(){var e=ee,n=document.createElement("a"),t=eo.src;n.href=t,n.download=t.substring(t.lastIndexOf("/")+1),e.appendChild(n),n.click(),e.removeChild(n)}function eU(n){setTimeout(function(){ee.removeChild(d),et=eo=e_=S=P=R=X=W=Y=A=null},200),e(ee,"hide-scrollbars"),e(d,"show"),eM(!1),eV(),history.go(!0===n?-1:-2),eg&&(e1.src=""),ey&&eW(),eo&&eZ(eo),eb&&(eb=clearTimeout(eb)),H&&ej(),G&&e(d,G),Y&&Y()}function eZ(e){if(e.g)e.g.appendChild(e),e.g=null;else{var n=e.parentNode;n&&n.removeChild(e),e.src=e.onerror=""}}function e9(e){if(e&&eB(),1N;return N=e,nt(n),!0}}function nt(t){if(h=m=0,w=1,eo){if(eo.onerror)eZ(eo);else{var o=eo;setTimeout(function(){o&&eo!==o&&(eZ(o),o=null)},650),e4(),eP()}}!function n(t){var o,s=R[N-1],r=s;if(S={},P&&Object.assign(S,P),Object.assign(S,r.dataset||r),L=S.media,A=S.onclick,I=S.theme,G=S.class,O=eN("autohide",!0),T=eN("infinite"),V=eN("progress",!0),D=eN("autoslide"),M=eN("preload",!0),j=S.buttonHref,J=D&&parseFloat(D)||7,H||I&&ej(I),G&&e(d,G,!0),G&&i(d),r=S.control){r="string"==typeof r?r.split(","):r;for(var l=0;l{s.toggleClass(e,t,!0)},this.removeClass=(e,t)=>{s.toggleClass(e,t)},this.toggleClass=(e,t,i)=>{e.classList[i?"add":"remove"](t)},this.hasClass=(e,t)=>e.classList.contains(t),this.setStyle=(e,t,i)=>{i=""+i,e["_s_"+t]!==i&&(e.style.setProperty(t,i),e["_s_"+t]=i)};let o=0;this.prepareStyle=(e,t)=>{t&&(s.setStyle(e,"transition","none"),t()),o||(o=e.clientTop&&0),t&&s.setStyle(e,"transition","")},this.setText=(e,t)=>{e.firstChild.nodeValue=t},this.getByClass=(e,t)=>(t||document).getElementsByClassName(e),this.getByTag=(e,t)=>(t||document).getElementsByTagName(e),this.addListener=(e,t,i,o)=>{s.toggleListener(!0,e,t,i,o)},this.removeListener=(e,t,i,o)=>{s.toggleListener(!1,e,t,i,o)},this.toggleListener=(e,t,i,s,o)=>{t[(e?"add":"remove")+"EventListener"](i,s,!o&&!1!==o||o)},this.cancelEvent=(e,t)=>{e.stopPropagation(),t&&e.preventDefault()},this.downloadImage=(e,t)=>{let i=s.createElement("a"),o=t.src;i.href=o,i.download=o.substring(o.lastIndexOf("/")+1),s.body.appendChild(i),i.click(),s.body.removeChild(i)},this.createElement=e=>document.createElement(e),this.toggleDisplay=(e,t)=>{s.setStyle(e,"display",t?"":"none")},this.toggleVisibility=(e,t)=>{s.setStyle(e,"visibility",t?"":"hidden")},this.toggleAnimation=(e,t)=>{s.setStyle(e,"transition",t?"":"none")},this.widget=this.createElement("div"),this.widget.innerHTML="
    ",this.video_support={},this.tpl_video=this.createElement("video"),this.parse_src=(e,t,i,o)=>{let n,l;if("node"!==o){let a=Object.keys(i);for(let r=0,d;r3&&0===d.indexOf("src")){if("video"===o){let p=s.video_support[d];if(p){if(p>0){n=i[d];break}}else if(s.tpl_video.canPlayType("video/"+d.substring(3).replace("-","").toLowerCase())){s.video_support[d]=1,n=i[d];break}else s.video_support[d]=-1}else{let c=parseInt(d.substring(4),10);if(c){let h=Math.abs(t-c);(!l||h{!s.body&&(s.id="spotlight"+t,s.widget.id="spotlight"+t,s.doc=document.body,s.body=e,s.slider=s.getOneByClass("scene"),s.header=s.getOneByClass("header"),s.footer=s.getOneByClass("footer"),s.title=s.getOneByClass("title"),s.description=s.getOneByClass("description"),s.button=s.getOneByClass("button"),s.page_prev=s.getOneByClass("prev"),s.page_next=s.getOneByClass("next"),s.page=s.getOneByClass("page"),s.progress=s.getOneByClass("progress"),s.spinner=s.getOneByClass("spinner"),s.panes=[s.getOneByClass("pane")],s.addControl("close",s.close),s.doc[s.prefix_request="requestFullscreen"]||s.doc[s.prefix_request="msRequestFullscreen"]||s.doc[s.prefix_request="webkitRequestFullscreen"]||s.doc[s.prefix_request="mozRequestFullscreen"]||(s.prefix_request=""),s.prefix_request?(s.prefix_exit=s.prefix_request.replace("request","exit").replace("mozRequest","mozCancel").replace("Request","Exit"),s.maximize=s.addControl("fullscreen",s.fullscreen)):s.controls.pop(),s.addControl("info",s.info),s.addControl("autofit",s.autofit),s.addControl("zoom-in",s.zoom_in),s.addControl("zoom-out",s.zoom_out),s.addControl("theme",s.theme),s.player=s.addControl("play",s.play),s.addControl("download",s.download),s.addListener(s.page_prev,"click",s.prev),s.addListener(s.page_next,"click",s.next),s.track=s.getOneByClass("track"),s.addListener(s.track,"mousedown",s.start),s.addListener(s.track,"mousemove",s.move),s.addListener(s.track,"mouseleave",s.end),s.addListener(s.track,"mouseup",s.end),s.addListener(s.track,"touchstart",s.start,{passive:!1}),s.addListener(s.track,"touchmove",s.move,{passive:!0}),s.addListener(s.track,"touchend",s.end),s.addListener(s.button,"click",function(){s.options_click?s.options_click(s.current_slide,s.options):s.options_href&&(location.href=s.options_href)}))},this.getOneByClass=e=>this.controls_dom[e]=this.getByClass("spl-"+e,this.widget)[0],this.addControl=(e,t,i="")=>{let o=s.createElement("div");return o.className="spl-"+e,o.innerHTML=i,s.addListener(o,"click",t),s.header.appendChild(o),s.controls_dom[e]=o},this.removeControl=e=>{let t=s.controls_dom[e];t&&(s.header.removeChild(t),s.controls_dom[e]=null)},this.dispatch=e=>{let t=e.target.closest(".spotlight");if(t){s.cancelEvent(e,!0);let i=t.closest(".spotlight-group");s.anchors=s.getByClass("spotlight",i);for(let o=0;o{s.anchors=e,t&&(s.options_group=t,s.options_onshow=t.onshow,s.options_onchange=t.onchange,s.options_onclose=t.onclose,i=i||t.index),s.init_gallery(i)},this.panzoom=e=>{s.toggleListener(e,s.track,"wheel",s.wheel_listener,{passive:!1}),s.toggleListener(e,s.track,"mousedown",s.start),s.toggleListener(e,s.track,"mousemove",s.move),s.toggleListener(e,s.track,"mouseleave",s.end),s.toggleListener(e,s.track,"mouseup",s.end),s.toggleListener(e,s.track,"touchstart",s.start,{passive:!1}),s.toggleListener(e,s.track,"touchmove",s.move,{passive:!0}),s.toggleListener(e,s.track,"touchend",s.end)},this.init_gallery=e=>{if(s.slide_count=s.anchors.length,s.slide_count){s.body||s.init(),s.options_onshow&&s.options_onshow(e);let t=s.panes[0],i=t.parentElement;for(let o=s.panes.length;o{let s=i[e];return void 0!==s?"false"!=(s=""+s)&&(s||t):t},this.apply_options=e=>{s.options={},s.options_group&&Object.assign(s.options,s.options_group),Object.assign(s.options,e.dataset||e),s.options_media=s.options.media,s.options_click=s.options.onclick,s.options_theme=s.options.theme,s.options_class=s.options.class,s.options_autohide=s.parse_option("autohide",!1),s.options_infinite=s.parse_option("infinite"),s.options_progress=s.parse_option("progress",!0),s.options_autoslide=s.parse_option("autoslide"),s.options_preload=s.parse_option("preload",!0),s.options_href=s.options.buttonHref,s.delay=s.options_autoslide&&parseFloat(s.options_autoslide)||7,s.toggle_theme||s.options_theme&&s.theme(s.options_theme),s.options_class&&s.addClass(s.widget,s.options_class),s.options_class&&s.prepareStyle(s.widget);let t=s.options.control;if(t){let i="string"==typeof t?t.split(","):t;for(let o=0;o{e?s.prepareStyle(s.media,s.prepare_animation):(s.toggleAnimation(s.slider,s.animation_slide),s.setStyle(s.media,"opacity",s.animation_fade?0:1),s.update_scroll(s.animation_scale&&.8),s.animation_custom&&s.addClass(s.media,s.animation_custom))},this.init_slide=e=>{if(s.panel=s.panes[e-1],s.media=s.panel.firstChild,s.current_slide=e,s.media)s.disable_autoresizer(),s.options_fit&&s.addClass(s.media,s.options_fit),s.prepare_animation(!0),s.animation_custom&&s.removeClass(s.media,s.animation_custom),s.animation_fade&&s.setStyle(s.media,"opacity",1),s.animation_scale&&s.setStyle(s.media,"transform",""),s.setStyle(s.media,"visibility","visible"),s.gallery_next&&(s.media_next.src=s.gallery_next),s.options_autoslide&&s.animate_bar(s.playing);else{let t=s.gallery.media;if(s.parse_option("spinner",!0),"node"===t){s.media=s.gallery.src,"string"==typeof s.media&&(s.media=gradioApp().querySelector(s.media)),s.media&&(s.media._root||(s.media._root=s.media.parentElement),s.update_media_viewport(),s.panel.appendChild(s.media),s.init_slide(e));return}s.toggle_spinner(s.options_spinner,!0),s.media=s.createElement("img"),s.media.onload=function(){s.media===s&&(s.media.onerror=null,s.toggle_spinner(s.options_spinner),s.init_slide(e),s.update_media_viewport())},s.media.src=s.gallery.src,s.panel.appendChild(s.media),s.media&&(s.options_spinner||s.setStyle(s.media,"visibility","visible"),s.media.onerror=function(){s.media===s&&(s.checkout(s.media),s.addClass(s.spinner,"error"),s.toggle_spinner(s.options_spinner))})}},this.toggle_spinner=(e,t)=>{e&&s.toggleClass(s.spinner,"spin",t)},this.has_fullscreen=()=>document.fullscreen||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement,this.resize_listener=()=>{if(s.update_widget_viewport(),s.media&&s.update_media_viewport(),s.prefix_request){let e=s.has_fullscreen();s.toggleClass(s.maximize,"on",e),e||s.detect_fullscreen()}},this.detect_fullscreen=()=>{s.toggleDisplay(s.maximize,screen.availHeight-e.innerHeight>0)},this.update_widget_viewport=()=>{s.viewport_w=s.widget.clientWidth,s.viewport_h=s.widget.clientHeight},this.update_media_viewport=()=>{s.media_w=s.media.clientWidth,s.media_h=s.media.clientHeight},this.update_scroll=e=>{s.setStyle(s.media,"transform","translate(-50%, -50%) scale("+(e||s.scale)+")")},this.update_panel=(e,t)=>{s.setStyle(s.panel,"transform",e||t?"translate("+e+"px, "+t+"px)":"")},this.update_slider=(e,t,i)=>{t?s.prepareStyle(s.slider,function(){s.update_slider(e,!1,i)}):s.setStyle(s.slider,"transform","translateX("+(-(100*e)+(i||0))+"%)")},this.toggle_listener=t=>{s.toggleListener(t,e,"keydown",s.key_listener),s.toggleListener(t,e,"resize",s.resize_listener)},this.history_listener=e=>{s.panel&&e.state.spl&&s.close(!0)},this.key_listener=e=>{if(s.panel){let t=!1!==s.options["zoom-in"];switch(e.keyCode){case s.keycodes.BACKSPACE:t&&s.autofit();break;case s.keycodes.ESCAPE:s.close();break;case s.keycodes.SPACEBAR:s.options_autoslide&&s.play();break;case s.keycodes.LEFT:s.prev();break;case s.keycodes.RIGHT:s.next();break;case s.keycodes.UP:case s.keycodes.NUMBLOCK_PLUS:case s.keycodes.PLUS:t&&s.zoom_in();break;case s.keycodes.DOWN:case s.keycodes.NUMBLOCK_MINUS:case s.keycodes.MINUS:t&&s.zoom_out();break;case s.keycodes.INFO:s.info()}}},this.wheel_listener=e=>{if(s.panel&&!1!==s.options["zoom-in"]){let t=e.deltaY;(t=(t<0?1:t?-1:0)*.5)<0?s.zoom_out():s.zoom_in()}},this.play=(e,t)=>{let i="boolean"==typeof e?e:!this.playing;!s.playing===i&&(s.playing=s.playing?clearTimeout(s.playing):1,s.toggleClass(s.player,"on",s.playing),t||s.animate_bar(s.playing))},this.animate_bar=e=>{s.options_progress&&(s.prepareStyle(s.progress,function(){s.setStyle(s.progress,"transition-duration",""),s.setStyle(s.progress,"transform","")}),e&&(s.setStyle(s.progress,"transition-duration",s.delay+"s"),s.setStyle(s.progress,"transform","translateX(0)"))),e&&(s.playing=setTimeout(s.next,1e3*s.delay))},this.autohide=()=>{s.options_autohide&&(s.hide_cooldown=Date.now()+2950,s.hide||(s.addClass(s.widget,"menu"),s.schedule(3e3)))},this.schedule=e=>{s.hide=setTimeout(function(){let e=Date.now();e>=s.hide_cooldown?(s.removeClass(s.widget,"menu"),s.hide=0):s.schedule(s.hide_cooldown-e)},e)},this.menu=e=>{"boolean"==typeof e&&(s.hide=e?s.hide:0),s.hide?(s.hide=clearTimeout(s.hide),s.removeClass(s.widget,"menu")):s.autohide()},this.start=e=>{s.cancelEvent(e,!0),s.is_down=!0,s.dragged=!1;let t=e.touches;t&&(t=t[0])&&(e=t),s.slidable=s.media_w*s.scale<=s.viewport_w,s.startX=e.pageX,s.startY=e.pageY,s.toggleAnimation(s.panel)},this.end=e=>{if(s.cancelEvent(e),s.is_down){if(s.dragged){if(s.slidable&&s.dragged){let t=s.x<-(s.viewport_w/7)&&(s.current_slides.viewport_w/7&&(s.current_slide>1||s.options_infinite);(t||i)&&(s.update_slider(s.current_slide-1,!0,s.x/s.viewport_w*100),t&&s.next()||i&&s.prev()),s.x=0,s.update_panel()}s.toggleAnimation(s.panel,!0)}else s.menu();s.is_down=!1}},this.move=e=>{if(s.cancelEvent(e),s.is_down){let t=e.touches;t&&(t=t[0])&&(e=t);let i=(s.media_w*s.scale-s.viewport_w)/2;s.x-=s.startX-(s.startX=e.pageX),!s.slidable&&(s.x>i?s.x=i:s.x<-i&&(s.x=-i),s.media_h*s.scale>s.viewport_h&&(i=(s.media_h*s.scale-s.viewport_h)/2,s.y-=s.startY-(s.startY=e.pageY),s.y>i?s.y=i:s.y<-i&&(s.y=-i))),s.dragged=!0,s.update_panel(s.x,s.y)}else s.autohide()},this.fullscreen=e=>{let t=s.has_fullscreen();("boolean"!=typeof e||!!t!==e)&&(t?document[s.prefix_exit]():s.widget[s.prefix_request]())},this.theme=e=>{"string"!=typeof e&&(e=s.toggle_theme?"":s.options_theme||"white"),s.toggle_theme!==e&&(s.toggle_theme&&s.removeClass(s.widget,s.toggle_theme),e&&s.addClass(s.widget,e),s.toggle_theme=e)},this.autofit=e=>{"boolean"==typeof e&&(s.toggle_autofit=!e),s.toggle_autofit=1===s.scale&&!s.toggle_autofit,s.toggleClass(s.media,"autofit",s.toggle_autofit),s.setStyle(s.media,"transform",""),s.scale=1,s.x=0,s.y=0,s.update_media_viewport(),s.toggleAnimation(s.panel),s.update_panel()},this.zoom_in=e=>{let t=s.scale/.65;t<=50&&(s.disable_autoresizer(),s.x/=.65,s.y/=.65,s.update_panel(s.x,s.y),s.zoom(t))},this.zoom_out=e=>{let t=.65*s.scale;s.disable_autoresizer(),t>=1&&(1===t?s.x=s.y=0:(s.x*=.65,s.y*=.65),s.update_panel(s.x,s.y),s.zoom(t))},this.zoom=e=>{s.scale=e||1,s.update_scroll()},this.info=()=>{s.footer_visible=!s.footer_visible,s.toggleVisibility(s.footer,s.footer_visible)},this.disable_autoresizer=()=>{s.toggle_autofit&&s.autofit()},this.show_gallery=()=>{s.toggleAnimation(s.widget,!0),s.addClass(s.body,"hide-scrollbars"),s.addClass(s.widget,"show"),s.toggle_listener(!0),s.update_widget_viewport(),s.resize_listener(),s.autohide(),s.options_autoslide&&s.play(!0,!0)},this.download=()=>{s.downloadImage(s.body,s.media)},this.close=(e,t)=>{t||setTimeout(function(){s.body.removeChild(s.widget),s.panel=s.media=s.gallery=s.options=s.options_group=s.anchors=s.options_onshow=s.options_onchange=s.options_onclose=s.options_click=null},200),s.removeClass(s.body,"hide-scrollbars"),s.removeClass(s.widget,"show"),s.fullscreen(!1),s.toggle_listener(),s.gallery_next&&(s.media_next.src=""),s.playing&&s.play(),s.media&&s.checkout(s.media),s.hide&&(s.hide=clearTimeout(s.hide)),s.toggle_theme&&s.theme(),s.options_class&&s.removeClass(s.widget,s.options_class),s.options_onclose&&s.options_onclose(),t&&(s.body.removeChild(s.widget),s.panel=s.media=s.gallery=s.options=s.options_group=s.anchors=s.options_onshow=s.options_onchange=s.options_onclose=s.options_click=null)},this.checkout=e=>{if(e._root)e._root.appendChild(e),e._root=null;else{let t=e.parentNode;t&&t.removeChild(e),e=e.src=e.onerror=""}},this.prev=e=>{if(e&&s.autohide(),s.slide_count>1){if(s.current_slide>1)return s.goto(s.current_slide-1);if(s.options_infinite)return s.update_slider(s.slide_count,!0),s.goto(s.slide_count)}},this.next=e=>{if(e&&s.autohide(),s.slide_count>1){if(s.current_slide{if(e!==s.current_slide){s.playing?(clearTimeout(s.playing),s.animate_bar()):s.autohide();let t=e>s.current_slide;return s.current_slide=e,s.setup_page(t),!0}},this.prepare=e=>{let t=s.anchors[s.current_slide-1];s.apply_options(t);let i=n&&n.downlink,o=Math.max(s.viewport_h,s.viewport_w)*l;i&&1200*i{if(s.x=0,s.y=0,s.scale=1,s.media){if(s.media.onerror)s.checkout(s.media);else{let t=s.media;setTimeout(function(){t&&s.media!==t&&(s.checkout(t),t=null)},650),s.prepare_animation(),s.update_panel()}}s.footer&&s.toggleVisibility(s.footer,0),s.prepare(e),s.update_slider(s.current_slide-1),s.removeClass(s.spinner,"error"),s.init_slide(s.current_slide),s.toggleAnimation(s.panel),s.update_panel();let i=s.gallery.title,o=s.parse_option("description"),n=s.parse_option("button"),l=i||o||n;l&&(i&&s.setText(s.title,i),o&&s.setText(s.description,o),n&&s.setText(s.button,n),s.toggleDisplay(s.title,i),s.toggleDisplay(s.description,o),s.toggleDisplay(s.button,n),s.setStyle(s.footer,"transform","all"===s.options_autohide?"":"none")),s.options_autohide||s.addClass(s.widget,"menu"),s.toggleVisibility(s.footer,s.footer_visible&&l),s.toggleVisibility(s.page_prev,s.options_infinite||s.current_slide>1),s.toggleVisibility(s.page_next,s.options_infinite||s.current_slide1?s.current_slide+" / "+s.slide_count:""),s.options_onchange&&s.options_onchange(s.current_slide,s.options)}};"undefined"!=typeof module&&void 0!==module.exports?module.exports=t:e.Spotlight=t}(window); \ No newline at end of file diff --git a/javascript/ui.js b/javascript/ui.js index 826c7f42..93dde7aa 100644 --- a/javascript/ui.js +++ b/javascript/ui.js @@ -69,13 +69,13 @@ function switch_to_inpaint_sketch(){ return args_to_array(arguments); } -function switch_to_inpaint(){ +/* function switch_to_inpaint(){ gradioApp().querySelector('#tabs').querySelectorAll('button')[1].click(); gradioApp().getElementById('mode_img2img').querySelectorAll('button')[2].click(); return args_to_array(arguments); } - + */ function switch_to_extras(){ gradioApp().querySelector('#tabs').querySelectorAll('button')[2].click(); @@ -977,7 +977,9 @@ onUiUpdate(function(){ ui_input_release_component(elem); }else if(elem.type == "range"){ elem = e.target.parentElement.querySelector("input[type='number']"); - ui_input_release_component(elem); + if(elem){ + ui_input_release_component(elem); + } } } } @@ -1158,8 +1160,12 @@ onUiUpdate(function(){ const pnginfo = gradioApp().querySelector("#tab_pnginfo"); function forwardFromPngInfo(){ + if(selectedTabItemId == "tab_txt2img"){ pnginfo.querySelector('#txt2img_tab').click(); + //close generation info + gradioApp().querySelector('#txt2img_results > div:last-child > div:last-child > div:last-child').classList.add("!hidden"); + const img_src = pnginfo.querySelector('img'); const gallery_parent = gradioApp().querySelector('#txt2img_gallery_container'); const live_preview = gallery_parent.querySelector('.livePreview'); @@ -1171,8 +1177,10 @@ onUiUpdate(function(){ div.innerHTML = ''; gallery_parent.prepend(div); } - }else if(selectedTabItemId == "tab_img2img"){ - pnginfo.querySelector('#img2img_tab').click(); + }else if(selectedTabItemId == "tab_img2img"){ + pnginfo.querySelector('#img2img_tab').click(); + //close generation info + gradioApp().querySelector('#img2img_results > div:last-child > div:last-child > div:last-child').classList.add("!hidden"); } } diff --git a/style.css b/style.css index bbd0fc17..4edd6250 100644 --- a/style.css +++ b/style.css @@ -3862,11 +3862,20 @@ a[data-tooltip][data-position=bottom]:after { } li.coffee-circle { - background: #FFDD00; + /*background: #FFDD00;*/ margin-left: 5px; margin-right: 5px; } +li.coffee-circle p{ + font-size: 12px; + line-height: 18px; + text-align: center; + padding-top: 8px; +} +.coffee svg path{ + fill: var(--primary-color) !important; +} .tooltip-html .coffee { fill: var(--main-bg-color); @@ -4131,26 +4140,26 @@ input[type=range]::-ms-fill-upper { /* Spotlight */ -#spotlight .no-point-events{ +[id^="spotlight"] .no-point-events{ pointer-events:none; } -#spotlight .move{ +[id^="spotlight"] .move{ cursor: move; } -/*#spotlight .z-50,*/ -#spotlight .block-hidden{ +[id^="spotlight"] .z-50, +[id^="spotlight"] .block-hidden{ display:none; } -#spotlight div{ +[id^="spotlight"] div{ border:0; } -#spotlight { +[id^="spotlight"] { position: fixed; - top: -1px; - bottom: -1px; + top: 0px; + bottom: 0px; width: 100%; z-index: 99999; color: #fff; @@ -4166,58 +4175,63 @@ input[type=range]::-ms-fill-upper { touch-action: none; pointer-events: none; } -#spotlight.show { +[id^="spotlight"].show { opacity: 1; transition: none; pointer-events: auto; } -#spotlight.relative { +[id^="spotlight"].relative { position: relative !important; width:auto; height:50vh; z-index:99; + margin-bottom: 1px; } -#spotlight.relative .spl-pane > * { +[id^="spotlight"].relative .spl-pane > * { position: relative; } -#spotlight.relative .spl-close { +[id^="spotlight"].relative .spl-close { display: none; } -#spotlight.white { +[id^="spotlight"].relative .spl-page{ + display: none; +} + +[id^="spotlight"].white { color: #212529; background-color: #fff; } -#spotlight.white .spl-spinner, -#spotlight.white .spl-prev, -#spotlight.white .spl-next, -#spotlight.white .spl-page ~ * { +[id^="spotlight"].white .spl-spinner, +[id^="spotlight"].white .spl-prev, +[id^="spotlight"].white .spl-next, +[id^="spotlight"].white .spl-page ~ * { filter: invert(1); } -#spotlight.white .spl-progress { +[id^="spotlight"].white .spl-progress { background-color: rgba(0, 0, 0, 0.35); } -#spotlight.white .spl-header, -#spotlight.white .spl-footer { +[id^="spotlight"].white .spl-header, +[id^="spotlight"].white .spl-footer { background-color: rgba(255, 255, 255, 0.65); } -#spotlight.white .spl-button { +[id^="spotlight"].white .spl-button { background: #212529; color: #fff; } -#spotlight .cover { +[id^="spotlight"] .cover { object-fit: cover; height: 100%; width: 100%; } -#spotlight .contain { +[id^="spotlight"] .contain { object-fit: contain; height: 100%; width: 100%; } -#spotlight .autofit { +[id^="spotlight"] .autofit { object-fit: none; width: auto; height: auto; @@ -4299,15 +4313,15 @@ input[type=range]::-ms-fill-upper { position: absolute; top: 0; width: 100%; - height: 50px; + height: 40px; text-align: right; - background-color: rgba(0, 0, 0, 0.45); + background-color: rgba(0, 0, 0, 0.85); transform: translateY(-100px); transition: transform 0.35s ease; overflow: hidden; will-change: transform; } -#spotlight.menu .spl-header, +[id^="spotlight"].menu .spl-header, .spl-header:hover { transform: translateY(0); } @@ -4315,8 +4329,8 @@ input[type=range]::-ms-fill-upper { display: inline-block; vertical-align: middle; white-space: nowrap; - width: 50px; - height: 50px; + width: 40px; + height: 40px; opacity: 0.5; } .spl-progress { @@ -4344,7 +4358,7 @@ input[type=range]::-ms-fill-upper { transition: transform 0.35s ease; will-change: transform; } -#spotlight.menu .spl-footer, +[id^="spotlight"].menu .spl-footer, .spl-footer:hover { transform: translateY(0); } @@ -4367,7 +4381,7 @@ input[type=range]::-ms-fill-upper { .spl-page { float: left; width: auto; - line-height: 50px; + line-height: 40px; } .spl-page ~ * { background-position: center; @@ -4457,6 +4471,8 @@ input[type=range]::-ms-fill-upper { -webkit-mask: url("./file=html/svg/delete-bin-2-line.svg") no-repeat 50% 50%; mask: url("./file=html/svg/delete-bin-2-line.svg") no-repeat 50% 50%; background-size: 22px; + position:absolute; + left:0; } .spl-pan{ @@ -4475,6 +4491,17 @@ input[type=range]::-ms-fill-upper { mask: url("./file=html/svg/ball-pen-line.svg") no-repeat 50% 50%; background-size: 22px; } +.spl-color input{ + width: 42px; + height: 42px; + padding: 5px 6px; + background: transparent; + margin-top: -1px; +} +.spl-brush{ + width: 100px !important; + margin-top: 1px; +} .spl-prev, .spl-next { @@ -4501,10 +4528,10 @@ input[type=range]::-ms-fill-upper { right: 20px; transform: translateX(100px) scaleX(-1); } -#spotlight.menu .spl-prev { +[id^="spotlight"].menu .spl-prev { transform: translateX(0); } -#spotlight.menu .spl-next { +[id^="spotlight"].menu .spl-next { transform: translateX(0) scaleX(-1); } @media (hover: hover) {