- web/lib/: the shared rgthree-derived layer (mxd_* utils, dialogs, api, runtime) + its CSS, moved as a unit. - web/nodes/: one extension file per node/feature, _mxd suffix dropped. - web/vendor/zip_loader/: vendored zip import addon. - index.js explicitly imports every module; loraloader_mxd_entry.js folded into it and deleted. Power Lora Loader merge: new web/nodes/power_lora_base.js holds the shared node machinery, header row, and single-strength lora row widget. power_lora_loader.js (dual model/clip strengths) and ltx2_power_lora_loader.js (per-layer strength rows) are now thin subclasses (~450 duplicated lines removed). Serialization formats, widget names, extension names, and node targets unchanged. better_combos.js scoped to MXD latent loaders only: removed the pysssss CheckpointLoader/LoraLoader patching (already disabled behind ENABLE_PYSSSS_NODE_ENHANCEMENTS=false, so provably inert), the dead ' MXD' alias config entries, and the no-op refreshComboInNodes wrapper. scripts/check_web.py clean; node schema unchanged (68 identical). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
125 lines
2.5 KiB
CSS
125 lines
2.5 KiB
CSS
@charset "UTF-8";
|
|
.mxd-dialog {
|
|
outline: 0;
|
|
border: 1px solid var(--border-color, rgba(255, 255, 255, 0.1));
|
|
border-radius: 8px;
|
|
background: var(--comfy-menu-bg, #414141);
|
|
color: var(--input-text, #fff);
|
|
box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);
|
|
max-width: 800px;
|
|
box-sizing: border-box;
|
|
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
|
font-size: 1rem;
|
|
padding: 0;
|
|
max-height: calc(100% - 32px);
|
|
}
|
|
.mxd-dialog *, .mxd-dialog *::before, .mxd-dialog *::after {
|
|
box-sizing: inherit;
|
|
}
|
|
|
|
.mxd-dialog-container > * {
|
|
padding: 8px 16px;
|
|
}
|
|
.mxd-dialog-container > *:first-child {
|
|
padding-top: 16px;
|
|
}
|
|
.mxd-dialog-container > *:last-child {
|
|
padding-bottom: 16px;
|
|
}
|
|
|
|
.mxd-dialog.-iconed::after {
|
|
content: "";
|
|
font-size: 276px;
|
|
position: absolute;
|
|
right: 0px;
|
|
bottom: 0px;
|
|
opacity: 0.15;
|
|
display: block;
|
|
width: 237px;
|
|
overflow: hidden;
|
|
height: 186px;
|
|
line-height: 1;
|
|
pointer-events: none;
|
|
z-index: -1;
|
|
}
|
|
|
|
.mxd-dialog.-iconed.-help::after {
|
|
content: "🛟";
|
|
}
|
|
|
|
.mxd-dialog.-iconed.-settings::after {
|
|
content: "⚙️";
|
|
}
|
|
|
|
@media (max-width: 832px) {
|
|
.mxd-dialog {
|
|
max-width: calc(100% - 32px);
|
|
}
|
|
}
|
|
.mxd-dialog-container-title {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: start;
|
|
}
|
|
|
|
.mxd-dialog-container-title > svg:first-child {
|
|
width: 36px;
|
|
height: 36px;
|
|
margin-right: 16px;
|
|
}
|
|
|
|
.mxd-dialog-container-title h2 {
|
|
font-size: 1.375rem;
|
|
margin: 0;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.mxd-dialog-container-title h2 small {
|
|
font-size: 0.8125rem;
|
|
font-weight: normal;
|
|
opacity: 0.75;
|
|
}
|
|
|
|
.mxd-dialog-container-content {
|
|
overflow: auto;
|
|
max-height: calc(100vh - 200px); /* Arbitrary height to copensate for margin, title, and footer.*/
|
|
}
|
|
|
|
.mxd-dialog-container-content p {
|
|
font-size: 0.8125rem;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.mxd-dialog-container-content ul li p {
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.mxd-dialog-container-content ul li p + p {
|
|
margin-top: 0.5em;
|
|
}
|
|
|
|
.mxd-dialog-container-content ul li ul {
|
|
margin-top: 0.5em;
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
.mxd-dialog-container-content p code {
|
|
display: inline-block;
|
|
padding: 2px 4px;
|
|
margin: 0px 2px;
|
|
border: 1px solid var(--border-color, rgba(255, 255, 255, 0.25));
|
|
border-radius: 4px;
|
|
background: var(--comfy-input-bg, rgba(255, 255, 255, 0.1));
|
|
}
|
|
|
|
.mxd-dialog-container-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
body.mxd-dialog-open > *:not(.mxd-dialog):not(.mxd-top-messages-container) {
|
|
filter: blur(5px);
|
|
}
|