import { $el } from "/scripts/ui.js"; $el("style", { textContent: ` .JNodes-image-drawer { position: absolute; background: var(--comfy-menu-bg); color: var(--fg-color); z-index: 99; font-family: sans-serif; font-size: 12px; display: flex; flex-direction: column; min-width: min-content; width: calc(var(--drawer-width, 20) * 1vw); height: calc(var(--drawer-height, 20) * 1vh); } .JNodes-image-drawer--bottom-left, .JNodes-image-drawer--bottom-right { bottom: 0; flex-direction: column-reverse; padding-top: 1px; } .JNodes-image-drawer--top-left, .JNodes-image-drawer--top-right { top: 0; } .JNodes-image-drawer--top-left, .JNodes-image-drawer--bottom-left { left: 0; } .JNodes-image-drawer--top-right, .JNodes-image-drawer--bottom-right { right: 0; } .JNodes-image-drawer-basic-controls-group { display: flex; gap: .5rem; flex: 0 1 fit-content; } .JNodes-image-drawer--top-left .JNodes-image-drawer-basic-controls-group, .JNodes-image-drawer--bottom-left .JNodes-image-drawer-basic-controls-group { align-items: left; justify-content: flex-start; flex-direction: row; } .JNodes-image-drawer--top-right .JNodes-image-drawer-basic-controls-group, .JNodes-image-drawer--bottom-right .JNodes-image-drawer-basic-controls-group { align-items: right; justify-content: flex-end; flex-direction: row-reverse; } .JNodes-image-drawer--top-left .JNodes-image-drawer-left-affined-basic-controls-group, .JNodes-image-drawer--bottom-left .JNodes-image-drawer-left-affined-basic-controls-group { flex-direction: row; } .JNodes-image-drawer--top-right .JNodes-image-drawer-left-affined-basic-controls-group, .JNodes-image-drawer--bottom-right .JNodes-image-drawer-left-affined-basic-controls-group { flex-direction: row-reverse; } .JNodes-image-drawer--top-left .JNodes-image-drawer-right-affined-basic-controls-group, .JNodes-image-drawer--bottom-left .JNodes-image-drawer-right-affined-basic-controls-group { flex-direction: row; } .JNodes-image-drawer--top-right .JNodes-image-drawer-right-affined-basic-controls-group, .JNodes-image-drawer--bottom-right .JNodes-image-drawer-right-affined-basic-controls-group { flex-direction: row-reverse; } .JNodes-image-drawer--top-right .JNodes-image-drawer-menu, .JNodes-image-drawer--top-left .JNodes-image-drawer-menu { flex-direction: column; } .JNodes-image-drawer--bottom-right .JNodes-image-drawer-menu, .JNodes-image-drawer--bottom-left .JNodes-image-drawer-menu { flex-direction: column-reverse; } .JNodes-image-drawer-context-toolbar { display: flex; } .JNodes-image-drawer--top-left .JNodes-image-drawer-context-toolbar, .JNodes-image-drawer--bottom-left .JNodes-image-drawer-context-toolbar { align-items: flex-end; justify-content: flex-end; } .JNodes-image-drawer--top-right .JNodes-image-drawer-context-toolbar, .JNodes-image-drawer--bottom-right .JNodes-image-drawer-context-toolbar { align-items: flex-start; justify-content: flex-start; } .JNodes-image-drawer-btn { background-color:var(--comfy-input-bg); border-radius:5px; border:2px solid var(--border-color); color: var(--fg-color); cursor:pointer; display:inline-block; flex: 0 1 fit-content; text-decoration:none; } .JNodes-image-drawer-btn:hover { filter: brightness(1.2); } .JNodes-image-drawer-btn:active { position:relative; top:1px; } .flyout-handle, .flyout-menu { background: rgba(0,0,0,0.9); display: flex; gap: 5px; border-radius: 4px; } .flyout-handle { align-items: center; padding: 0 5px; position: relative; border: 2px solid var(--border-color); } .flyout-handle .flyout-menu tr { width: 100% } .flyout-handle .flyout-menu td { width: 100% } .flyout-handle tr span, .flyout-handle tr a { white-space: nowrap; } .flyout-handle tr input { flex: 1 1 100%; flex-direction: flex-start; border-radius: 5px; overflow: hidden; z-index: 100; } .flyout-handle .flyout-handle-label { width: max-content; } .flyout-menu { position: absolute; flex-direction: column; align-items: flex-start; z-index: 102; flex: 1 1 100%; padding: 100%; transform: scale(1,0); overflow-x: scroll; overflow-y: scroll; width: fit-content; } .flyout-handle:hover .flyout-menu { transform: scale(1,1); transition: 100ms linear; transition-delay: 0ms; } .flyout-menu.video-menu { align-items: flex-end; } .JNodes-interactive-container:hover { filter: brightness(2) drop-shadow(-1px -1px blue); cursor: 'pointer'; } .JNodes-interactive-container:active { filter: brightness(2) drop-shadow(-1px -1px orange); cursor: 'pointer'; } .JNodes-image-drawer-list { flex: 1 1 auto; overflow-y: scroll; display: grid; align-items: center; justify-content: center; gap: 4px; grid-auto-rows: min-content; grid-template-columns: repeat(var(--column-count, 3), 1fr); transition: 100ms linear; scrollbar-gutter: stable; padding: 5px; background: var(--comfy-input-bg); border-radius: 5px; margin: 5px; margin-top: 0px; } .JNodes-image-drawer-list:empty { display: none; } .JNodes-image-drawer-list::-webkit-scrollbar { background: var(--comfy-input-bg); border-radius: 5px; } .JNodes-image-drawer-list::-webkit-scrollbar-thumb { background:var(--comfy-menu-bg); border: 5px solid transparent; border-radius: 8px; background-clip: content-box; color: rgb(255,255,255); } .JNodes-image-drawer-list::-webkit-scrollbar-thumb:hover { background: var(--border-color); background-clip: content-box; } .JNodes-image-drawer-list div:hover { filter: brightness(1.05); } .JNodes-image-drawer-list .imageElement img, .JNodes-image-drawer-list .imageElement video { width: 100%; }`, parent: document.body, });