@inpageedit/core 0.14.3 → 0.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PluginStoreApp-qiSVtnBy.js → PluginStoreApp-MbC3G9tu.js} +88 -84
- package/dist/PluginStoreApp-MbC3G9tu.js.map +1 -0
- package/dist/{index-DrIf5j8O.js → index-B3jld2sl.js} +2 -2
- package/dist/{index-DrIf5j8O.js.map → index-B3jld2sl.js.map} +1 -1
- package/dist/{index-MgXERLzL.js → index-BdHmr8jw.js} +3 -3
- package/dist/{index-MgXERLzL.js.map → index-BdHmr8jw.js.map} +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +2 -2
- package/dist/plugins/index.js +1 -1
- package/dist/services/index.js +1 -1
- package/dist/style.css +1 -1
- package/lib/index.umd.js +10 -10
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/dist/PluginStoreApp-qiSVtnBy.js.map +0 -1
package/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";:root{--ipe-modal-z: 1000;--ipe-modal-backdrop-bg: rgba(0, 0, 0, .5);--ipe-modal-bg: #ffffff;--ipe-modal-secondary-bg: #eaecf0;--ipe-modal-text: #111827;--ipe-modal-text--rgb: 17, 24, 39;--ipe-modal-muted: #6b7280;--ipe-modal-accent: #3b82f6;--ipe-modal-accent--rgb: 59, 130, 246;--ipe-modal-success: #10b981;--ipe-modal-info: #3b82f6;--ipe-modal-warning: #f59e0b;--ipe-modal-danger: #ef4444;--ipe-modal-danger--rgb: 239, 68, 68;--ipe-modal-border-color: #eaecf0;--ipe-modal-divider-color: #e5e7eb;--ipe-modal-radius: 8px;--ipe-modal-button-radius: 6px;--ipe-modal-shadow: 0 0 40px rgba(127, 127, 127, .5);--ipe-modal-spacing: 12px;--ipe-modal-viewport-gap-y: 20px;--ipe-modal-window-max-w: 96vw;--ipe-modal-anim: none;--ipe-modal-safe-area-top: env(safe-area-inset-top);--ipe-modal-safe-area-bottom: env(safe-area-inset-bottom);--ipe-modal-vh: 100vh}@supports (height: 100dvh){:root{--ipe-modal-vh: 100dvh}}:root{--ipe-modal-window-max-h: calc( var(--ipe-modal-vh) - var(--ipe-modal-safe-area-top) - var(--ipe-modal-safe-area-bottom) - (var(--ipe-modal-viewport-gap-y) * 2) )}body.ipe-modal-no-scroll{overflow:hidden!important;touch-action:none;-webkit-overflow-scrolling:auto}.ipe-modal-backdrop{position:fixed;inset:0;z-index:var(--ipe-modal-z);background:transparent;transition:background .18s ease;pointer-events:none}.ipe-modal-backdrop.is-open{background:var(--ipe-modal-backdrop-bg);pointer-events:auto}.ipe-modal-modal{position:fixed;inset:0;z-index:calc(var(--ipe-modal-z) + 1);outline:none;display:grid;align-items:start;justify-items:center;overflow:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s ease,transform .22s ease;pointer-events:none}.ipe-modal-modal.is-open{opacity:1;transform:none}.ipe-modal-modal.is-centered{display:grid;align-items:center}.ipe-modal-modal.is-fullscreen .ipe-modal-modal__window{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.ipe-modal-modal.no-backdrop{position:absolute;inset:auto;display:block;padding:0;overflow:visible}.ipe-modal-modal.is-dragging{transition:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__window{animation:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__header{cursor:grabbing!important}.ipe-modal-modal__window{position:relative;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);border-radius:var(--ipe-modal-radius);box-shadow:var(--ipe-modal-shadow);max-width:var(--ipe-modal-window-max-w);width:min(92vw,var(--ipe-modal-window-max-w));overflow:hidden;display:block;animation:var(--ipe-modal-anim, none) .22s ease-in-out both;pointer-events:auto;overscroll-behavior:contain;margin-top:var(--ipe-modal-viewport-gap-y, 20px);margin-bottom:var(--ipe-modal-viewport-gap-y, 20px)}.size--dialog{max-width:420px}.size--small{max-width:520px}.size--smallToMedium{max-width:640px}.size--medium{max-width:max(64%,860px)}.size--mediumToLarge{max-width:max(72%,1080px)}.size--large{max-width:max(80%,1200px)}.size--full{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.size--auto{max-width:var(--ipe-modal-window-max-w)}.ipe-modal-modal__window.is-fixed-height{height:min(var(--ipe-modal-window-max-h),80vh)}.ipe-modal-modal__header{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-bottom:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__title{font-size:1.125rem;font-weight:700;line-height:1;margin:0}.ipe-modal-modal__icons{display:inline-flex;gap:6px}.ipe-modal-modal__icon{width:28px;height:28px;border-radius:8px;border:0;background:transparent}.ipe-modal-modal__close{margin-left:6px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--ipe-modal-button-radius);background:transparent;font-size:22px;line-height:1;color:var(--ipe-modal-muted);cursor:pointer}.ipe-modal-modal__close:hover{background:#0000000f;color:var(--ipe-modal-text)}.ipe-modal-modal__content{padding:var(--ipe-modal-spacing);max-height:85dvh;overflow:auto;-webkit-overflow-scrolling:touch}.ipe-modal-modal__footer{background:var(--ipe-modal-secondary-bg);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-top:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__buttons{display:inline-flex;gap:8px}.ipe-modal-toast-container{position:fixed;z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.ipe-modal-toast-container.top{top:16px}.ipe-modal-toast-container.bottom{bottom:16px;flex-direction:column-reverse}.ipe-modal-toast-container.right{right:16px}.ipe-modal-toast-container.left{left:16px}.ipe-modal-modal__window.plugin--toast{--type-color: var(--ipe-modal-bg);--text-color: var(--ipe-modal-text);width:300px;border-radius:calc(var(--ipe-modal-radius) * .75);margin-top:0;margin-bottom:0;border:0;border-left:calc(var(--ipe-modal-radius) * .75) solid var(--type-color)}.ipe-modal-modal__window.plugin--toast.type-default{--type-color: var(--ipe-modal-secondary-bg)}.ipe-modal-modal__window.plugin--toast.type-info{--type-color: var(--ipe-modal-info);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-success{--type-color: var(--ipe-modal-success);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-warning{--type-color: var(--ipe-modal-warning);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-error{--type-color: var(--ipe-modal-danger);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header{padding:.5em;background-color:var(--type-color);color:var(--text-color);border-bottom:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title{display:flex;align-items:center}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title .ipe-modal-notify-icon{margin-right:.5em;width:20px;height:20px}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__close{width:20px;height:20px;font-size:16px;color:var(--ipe-modal-muted)}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__content{padding:1em .5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__footer{padding:.5em;background-color:transparent;border-top:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-btn{padding:.25em .75em!important}.ipe-modal-btn{--accent-color: #fff;--text-color: var(--ipe-modal-text);--active-color: rgba(0, 0, 0, .1);appearance:none;border:1px solid rgba(0,0,0,.14);background:var(--accent-color);color:var(--text-color);padding:8px 12px;border-radius:var(--ipe-modal-button-radius);cursor:pointer;font:inherit;transition:all .2s;line-height:1}.ipe-modal-btn:hover{background:#0000000a}.ipe-modal-btn:disabled{opacity:.6;cursor:not-allowed}.ipe-modal-btn:active{background:#0000000f;box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn:focus{box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn.is-primary{--accent-color: var(--ipe-modal-accent);--text-color: #fff;--active-color: rgba(var(--ipe-modal-accent--rgb), .5);border-color:var(--accent-color);background:var(--accent-color)}.ipe-modal-btn.is-danger{--accent-color: var(--ipe-modal-danger);--text-color: #fff;--active-color: rgba(var(--ipe-modal-danger--rgb), .2);border-color:var(--accent-color);background:var(--accent-color);color:var(--text-color)}.ipe-modal-btn.is-ghost,.ipe-modal-btn.is-text{background:transparent}.ipe-modal-btn.is-text{border:0;color:var(--ipe-modal-text)}.ipe-modal-btn.is-ghost.is-primary,.ipe-modal-btn.is-text.is-primary{color:var(--ipe-modal-accent)}.ipe-modal-btn.is-ghost.is-danger,.ipe-modal-btn.is-text.is-danger{color:var(--ipe-modal-danger)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer{padding:0;background-color:transparent}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer .ipe-modal-btn,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer .ipe-modal-btn{flex:1;border:0;margin:0;padding:1rem;border-radius:0}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer .ipe-modal-btn:not(:first-child),.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer .ipe-modal-btn:not(:first-child){border-left:1px solid rgba(0,0,0,.06)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--left,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--left{display:none}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--right,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--right{flex:1;width:100%;display:flex;gap:0}@keyframes ipe-modal-fade-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes ipe-modal-fade-out{0%{transform:scale(1);opacity:1}to{transform:scale(.85);opacity:0}}._ipe_progress_so6hn_1{position:relative;display:inline-block;width:100%;overflow:hidden;border:1px solid #c5c5c5;border-radius:100vmax;background-color:#fff;height:1em;--progress: 0%}._ipe_progress_so6hn_1[data-indeterminate=true]:before,._ipe_progress_so6hn_1[data-indeterminate=true]:after{content:"";position:absolute;top:0;bottom:0;left:0;background-color:#36c}._ipe_progress_so6hn_1[data-indeterminate=true]:before{animation:_progress-indeterminate-long_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=true]:after{animation:_progress-indeterminate-short_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=false]:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--progress);background-color:#36c;transition:width .3s ease-in-out}@keyframes _progress-indeterminate-long_so6hn_1{0%{left:0;width:0}50%{left:30%;width:70%}75%{left:100%;width:0}}@keyframes _progress-indeterminate-short_so6hn_1{0%{left:0;width:0}50%{left:0;width:0}75%{left:0;width:25%}to{left:110%;width:0}}.theme-ipe{--color-primary: #36c;--color-primary-hover: #447ff5;--color-primary-active: #2a4b8d;--color-promary--rgb: 51, 102, 204;--color-white: #fff;--color-text-dark: #222;--color-text-medium: #252525;--color-text-hover: #454545;--color-bg-light: #f8f9fa;--color-bg-lighter: #fafafa;--color-bg-lightest: #f8f8f8;--color-bg-gray: #f4f4f4;--color-border-gray: #c8ccd1;--color-border-light: #efefef;--color-border-input: #ccc;--color-border-dark: #72777d;--color-border-disabled: #d6d6d6;--color-danger: #d33;--color-danger-hover: #ff4242;--color-danger-active: #d00;--color-danger--rgb: 211, 51, 51;--color-disabled-bg: #c8ccd1;--color-disabled-dark: #a0a0a0;--font-size-button: 14px;--font-size-label: 1rem;--font-weight-label: 700;--border-width: 1px;--border-width-radio-checked: 6px;--border-radius-button: 6px;--border-radius-input: 4px;--padding-button-y: .5em;--padding-button-x: 1em;--padding-button-dialog: 1em;--padding-input-y: .25em;--padding-input-x: .35em;--size-checkbox: 1.2em;--size-radio: 1.4em;--margin-checkbox-top: .15em;--margin-checkbox-right: .375em;--textarea-height: 50vh;--textarea-min-height: 20em;--textarea-background: var(--color-bg-lighter);--line-height-input: 1.5em;--line-height-checkbox: 1.2em;--transition-fast: .1s;--transition-medium: .12s;--transition-slow: .2s;--ipe-modal-accent: var(--color-primary);--ipe-modal-danger: var(--color-danger);--ipe-modal-button-radius: var(--border-radius-button);font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.theme-ipe textarea{width:100%;background:var(--textarea-background);resize:vertical;border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);padding:var(--padding-input-y) var(--padding-input-x);outline:none}.theme-ipe textarea[name=text]{height:var(--textarea-height);min-height:var(--textarea-min-height)}.theme-ipe textarea:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe textarea:disabled{background-color:var(--color-disabled-bg);color:var(--color-white);cursor:not-allowed}.theme-ipe .ipe-quickEdit__textarea--monospace{font-family:monospace}.theme-ipe .ipe-quickEdit__textarea--sans-serif{font-family:sans-serif}.theme-ipe .ipe-quickEdit__textarea--serif{font-family:serif}.theme-ipe .ipe-input-box label{display:block;font-size:.875rem;margin-bottom:.5em;font-weight:500}.theme-ipe .ipe-input-box input[type=text],.theme-ipe .ipe-input-box input[type=number],.theme-ipe .ipe-input-box input[type=email],.theme-ipe .ipe-input-box input[type=password],.theme-ipe .ipe-input-box input[type=url],.theme-ipe .ipe-input-box input[type=tel],.theme-ipe .ipe-input-box input[type=search]{width:100%}.theme-ipe input{padding:var(--padding-input-y) var(--padding-input-x);border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);outline:none}.theme-ipe input:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe label input[type=checkbox]+span,.theme-ipe label input[type=radio]+span{user-select:none;line-height:var(--line-height-checkbox)}.theme-ipe label input[type=checkbox]+span:before,.theme-ipe label input[type=radio]+span:before{content:" ";display:inline-block;width:var(--size-checkbox);height:var(--size-checkbox);margin-top:var(--margin-checkbox-top);margin-right:var(--margin-checkbox-right);border-radius:var(--border-radius-input);background-color:var(--color-bg-lightest);border:var(--border-width) solid var(--color-border-dark);cursor:pointer;transition:all var(--transition-medium)}.theme-ipe label input[type=radio]+span:before{border-radius:50%;box-sizing:border-box;vertical-align:text-bottom;width:var(--size-radio);height:var(--size-radio)}.theme-ipe label input[type=checkbox]:checked+span:before{content:" ";background-color:var(--color-primary);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxnIGlkPSJjaGVja21hcmsiPjxwYXRoIGQ9Ik0xMy43NDkyKzMuNDkwOTVMNS44NjMxMisxMS42MzM3TDIuMjUwNzcrNy45NjA4MkwxLjQ4NzYrOC43NTc3OEw1Ljg2MzEyKzEzLjE5M0wxNC41MTI0KzQuMjg3OUwxMy43NDkyKzMuNDkwOTVaIiBvcGFjaXR5PSIxIiBmaWxsPSIjZmZmZmZmIi8+PC9nPjwvc3ZnPg==);background-repeat:no-repeat}.theme-ipe label input[type=radio]:checked+span:before{border-color:var(--color-primary);border-width:var(--border-width-radio-checked)}.theme-ipe label input[type=checkbox]:checked+span:hover:before{background-color:var(--color-primary-hover)}.theme-ipe label input[type=radio]:checked+span:hover:before{border-color:var(--color-primary-hover)}.theme-ipe label input[type=checkbox]:active+span:before,.theme-ipe label input[type=checkbox]:focus+span:before{box-shadow:0 0 0 2px rgba(var(--color-promary--rgb),.5);border-color:var(--color-primary)}.theme-ipe label input[type=checkbox],.theme-ipe label input[type=radio]{position:absolute;clip:rect(0,0,0,0)}.theme-ipe .cm-panel label input[type=checkbox],.theme-ipe .cm-panel label input[type=radio]{position:initial;clip:initial}.theme-ipe label input[type=checkbox]:disabled+span:before{border-color:var(--color-border-disabled)}.theme-ipe label input[type=radio]:disabled+span:before{background-color:var(--color-disabled-bg);border-color:var(--color-disabled-bg)}.theme-ipe label input[type=checkbox]:disabled:checked+span:before{background-color:var(--color-disabled-dark)}.theme-ipe label input[type=radio]:disabled:checked+span:before{background-color:var(--color-white)}.theme-ipe .ipe-radio-box span,.theme-ipe .ipe-checkbox span{vertical-align:middle}.theme-ipe svg.icon{height:1em;height:1lh;width:auto;vertical-align:middle}.theme-ipe .ipe-action-button{color:var(--text-color)}.theme-ipe-prose{color:var(--color-text-dark);line-height:1.6}.theme-ipe-prose h1,.theme-ipe-prose h2,.theme-ipe-prose h3,.theme-ipe-prose h4,.theme-ipe-prose h5,.theme-ipe-prose h6{color:var(--color-text-dark);line-height:1.25;margin-top:1em;margin-bottom:.75em;scroll-margin-top:2rem;position:relative;padding:0;padding-left:1rem}.theme-ipe-prose h1:before,.theme-ipe-prose h2:before,.theme-ipe-prose h3:before,.theme-ipe-prose h4:before,.theme-ipe-prose h5:before,.theme-ipe-prose h6:before{content:"";display:block;position:absolute;top:50%;left:0;transform:translateY(-50%);border-radius:1em}.theme-ipe-prose h1.plain,.theme-ipe-prose h2.plain,.theme-ipe-prose h3.plain,.theme-ipe-prose h4.plain,.theme-ipe-prose h5.plain,.theme-ipe-prose h6.plain{padding-left:0}.theme-ipe-prose h1.plain:before,.theme-ipe-prose h2.plain:before,.theme-ipe-prose h3.plain:before,.theme-ipe-prose h4.plain:before,.theme-ipe-prose h5.plain:before,.theme-ipe-prose h6.plain:before{display:none}.theme-ipe-prose h1{font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-top:0}.theme-ipe-prose h2{font-size:1.6rem;font-weight:700;letter-spacing:-.025em}.theme-ipe-prose h2:before{width:.3rem;height:80%;background-color:var(--color-primary)}.theme-ipe-prose h3{font-size:1.3rem;font-weight:600}.theme-ipe-prose h3:before{width:.25rem;height:70%;margin-left:.05rem;background-color:rgba(var(--color-promary--rgb),.85)}.theme-ipe-prose h4{font-size:1.2rem;font-weight:600}.theme-ipe-prose h4:before{width:.2rem;height:60%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.7)}.theme-ipe-prose h5{font-size:1.125rem;font-weight:500}.theme-ipe-prose h5:before{width:.15rem;height:50%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.55)}.theme-ipe-prose h6{font-size:1rem;font-weight:500;color:var(--color-text-hover)}.theme-ipe-prose h6:before{width:.15rem;height:40%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.4)}.theme-ipe-prose p{margin-top:0;margin-bottom:1.25em}.theme-ipe-prose strong{font-weight:700;color:var(--color-text-dark)}.theme-ipe-prose em{font-style:italic}.theme-ipe-prose a:not(.ipe-modal-btn){color:var(--color-primary);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.theme-ipe-prose a:not(.ipe-modal-btn):hover{color:var(--color-primary-hover);border-bottom-color:var(--color-primary-hover)}.theme-ipe-prose a:not(.ipe-modal-btn):active{color:var(--color-primary-active)}.theme-ipe-prose a:not(.ipe-modal-btn) code{color:inherit}.theme-ipe-prose ul,.theme-ipe-prose ol{margin-top:1em;margin-bottom:1em;padding-left:1.625em}.theme-ipe-prose ul{list-style-type:disc}.theme-ipe-prose ol{list-style-type:decimal}.theme-ipe-prose li{margin-top:.5em;margin-bottom:.5em}.theme-ipe-prose li::marker{color:var(--color-text-hover)}.theme-ipe-prose ul ul,.theme-ipe-prose ul ol,.theme-ipe-prose ol ul,.theme-ipe-prose ol ol{margin-top:.5em;margin-bottom:.5em}.theme-ipe-prose blockquote{margin:1.5em 0;padding:1em 1.5em;border-left:4px solid var(--color-primary);background-color:var(--color-bg-lighter);border-radius:0 var(--border-radius-input) var(--border-radius-input) 0;font-style:italic;color:var(--color-text-medium)}.theme-ipe-prose blockquote p:last-child{margin-bottom:0}.theme-ipe-prose blockquote cite{display:block;margin-top:1em;font-size:.875em;font-style:normal;color:var(--color-text-hover)}.theme-ipe-prose blockquote cite:before{content:"— "}.theme-ipe-prose code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.875em;background-color:var(--color-bg-lighter);padding:.2em .4em;border-radius:4px;border:1px solid var(--color-border-light);color:var(--color-text-dark);font-weight:400}.theme-ipe-prose pre{margin:1.5em 0;padding:1.25em 1.5em;background-color:var(--color-bg-lightest);border:1px solid var(--color-border-light);border-radius:var(--border-radius-input);overflow-x:auto;line-height:1.7}.theme-ipe-prose pre code{background-color:transparent;padding:0;border:none;border-radius:0;font-size:.875rem}.theme-ipe-prose hr{margin:1em 0;border:0;border-top:2px solid var(--color-border-light)}.theme-ipe-prose table{width:100%;margin:1.5em 0;border-collapse:collapse;font-size:.875em;line-height:1.5}.theme-ipe-prose thead{border-bottom:2px solid var(--color-border-gray)}.theme-ipe-prose th{padding:.75em 1em;text-align:left;font-weight:600;color:var(--color-text-dark);background-color:var(--color-bg-light)}.theme-ipe-prose td{padding:.75em 1em;border-bottom:1px solid var(--color-border-light)}.theme-ipe-prose tbody tr:hover{background-color:var(--color-bg-lighter)}.theme-ipe-prose img{max-width:100%;height:auto;border-radius:var(--border-radius-input);margin:1.5em 0}.theme-ipe-prose figure{margin:1.5em 0}.theme-ipe-prose figure img{margin:0}.theme-ipe-prose figure figcaption{margin-top:.75em;text-align:center;font-size:.875em;color:var(--color-text-hover);font-style:italic}.theme-ipe-prose kbd{font-family:inherit;font-size:.875em;padding:.2em .5em;border:1px solid var(--color-border-gray);border-radius:4px;background-color:var(--color-bg-light);box-shadow:0 1px 0 var(--color-border-gray),0 2px 0 var(--color-border-light);display:inline-block;line-height:1;white-space:nowrap}.theme-ipe-prose mark{background-color:#fff3cd;padding:.1em .3em;border-radius:2px;color:inherit}.theme-ipe-prose del{text-decoration:line-through;color:var(--color-text-hover)}.theme-ipe-prose ins{text-decoration:none;border-bottom:1px solid var(--color-primary);background-color:rgba(var(--color-promary--rgb),.1)}.theme-ipe-prose abbr{text-decoration:underline dotted;cursor:help}.theme-ipe-prose details{margin:1em 0;padding:1em;border:1px solid var(--color-border-light);border-radius:var(--border-radius-input);background-color:var(--color-bg-lighter)}.theme-ipe-prose details summary{cursor:pointer;font-weight:600;color:var(--color-primary);user-select:none;margin:-1em;padding:1em;transition:background-color var(--transition-fast)}.theme-ipe-prose details summary:hover{background-color:var(--color-bg-light)}.theme-ipe-prose details[open] summary{margin-bottom:.75em;border-bottom:1px solid var(--color-border-light)}@media(max-width:640px){.theme-ipe-prose{font-size:.875rem}.theme-ipe-prose h1{font-size:1.875rem}.theme-ipe-prose h2{font-size:1.5rem}.theme-ipe-prose h3{font-size:1.25rem}}svg.ipe-icon{height:1em;height:1lh;width:auto;vertical-align:middle}@media(min-width:768px){.skin-moeskin #ipe-edit-toolbox{bottom:5rem}}body.skin-fandomdesktop #ipe-edit-toolbox{bottom:3em}.tabbar .tabbar-tabs[data-v-7f07706b]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em;white-space:nowrap;overflow-x:auto}.tabbar .tabbar-tabs .tab[data-v-7f07706b]{padding:.5em 1em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabbar .tabbar-tabs .tab.active[data-v-7f07706b]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}schema-form[data-v-7f07706b]{margin-bottom:.5em;--schema-radius: 6px}#preferences-ui-app .schema-form-item.field{border:0}._mbox_5x43w_1{--border-color: #dfdfdf;--title-color: #efefef;--content-color: #ffffff;border-radius:.5rem;border:1px solid var(--title-color);border-left:6px solid var(--border-color);overflow:hidden;margin-bottom:1rem;position:relative}._mbox_5x43w_1 ._title_5x43w_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_5x43w_1 ._content_5x43w_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_5x43w_1 ._close_5x43w_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_5x43w_1 ._close_5x43w_27:hover{filter:brightness(1.2)}._mbox_5x43w_1 ._close_5x43w_27:active{filter:brightness(.8)}._mbox_5x43w_1.mbox-type-note,._mbox_5x43w_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_5x43w_1.mbox-type-tip,._mbox_5x43w_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-important,._mbox_5x43w_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_5x43w_1.mbox-type-caution,._mbox_5x43w_1.mbox-type-error{--border-color: #da3633;--title-color: #FCB9B6;--content-color: #f9f9f9}._twinSwapInput_1gdgl_9{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"input-left swap-button input-right";gap:1rem;align-items:end}@media(max-width:768px){._twinSwapInput_1gdgl_9{grid-template-columns:1fr;grid-template-areas:"input-left" "swap-button" "input-right";gap:.75rem}}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23{display:flex;flex-direction:column}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputLeft_1gdgl_27{grid-area:input-left}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputRight_1gdgl_30{grid-area:input-right}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 label{display:block;margin-bottom:.5em;font-weight:500;font-size:.875rem}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input{width:100%}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46{grid-area:swap-button;display:flex;align-items:center;justify-content:center}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{position:relative;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;width:2rem;height:2rem;border:none;background:#efefef;cursor:pointer;transition:all .2s ease}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:hover{background:#e0e0e0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:active{background:#d0d0d0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button svg{transition:all .2s ease;width:1.25rem;height:1.25rem}@media(max-width:768px){._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{transform:rotate(90deg)}}.theme-ipe.diff-type-table .diff-title{line-height:1.5}.theme-ipe.diff-type-table .mw-diff-title--navigation{text-align:center;color:#666}#ipe-edit-toolbox{font-size:16px;position:fixed;right:2em;bottom:2em;user-select:none;z-index:42}@media print{#ipe-edit-toolbox{display:none}}#ipe-edit-toolbox .ipe-toolbox-btn{color:#fff;background:#bebebe;height:1.5em;width:1.5em;font-size:1.5em;line-height:1;border:0;border-radius:50%;box-shadow:0 0 8px #7f7f7f80;text-shadow:0 0 2px #4c4c4c;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center}#ipe-edit-toolbox .ipe-toolbox-btn svg,#ipe-edit-toolbox .ipe-toolbox-btn img{line-height:1;width:1em;height:1em;vertical-align:middle}#ipe-edit-toolbox .ipe-toolbox-btn:disabled{cursor:not-allowed;filter:grayscale(50%) opacity(.75)}#ipe-edit-toolbox #toolbox-toggler{position:absolute;right:0;bottom:0;width:2em;height:2em;background:#3f51b5;font-size:1.5em;line-height:1;margin:0;transition:transform .3s cubic-bezier(.68,-.55,.27,1.55);transform:rotate(0)}#ipe-edit-toolbox.is-persistent #toolbox-toggler{transform:rotate(45deg)}#ipe-edit-toolbox .btn-group.group1 .btn-tip-group{transform:translate3d(0,100%,0)}#ipe-edit-toolbox .btn-group.group2 .btn-tip-group{transform:translate3d(100%,0,0)}#ipe-edit-toolbox .btn-group .btn-tip-group{transition-timing-function:cubic-bezier(.68,-.55,.27,1.55);transition-duration:.3s;transition-delay:var(--transition-delay, 0s);opacity:0}#ipe-edit-toolbox.is-persistent .btn-group .btn-tip-group,#ipe-edit-toolbox.is-hovered .btn-group .btn-tip-group{transform:translateZ(0);opacity:1}#ipe-edit-toolbox:not(.is-persistent):not(.is-hovered) .btn-group .btn-tip-group{transition-delay:calc(var(--max-transition-delay) - var(--transition-delay))}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{transform:scaleZ(1)}#ipe-edit-toolbox .ipe-toolbox-btn#toolbox-toggler.click{box-shadow:0 0 4px gray,0 0 10px #444 inset}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-edit-btn{background:#2196f3}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-move-btn{background:#00bcd4}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-redirect-btn{background:#009688}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-delete-btn{background:#e91e63}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__preferences-btn{background:#ffc107}#ipe-edit-toolbox .btn-group{position:absolute;display:flex;gap:.5em;list-style:none;margin:0;pointer-events:none}#ipe-edit-toolbox .btn-group.group1{bottom:3.5em;right:.375em;flex-direction:column}#ipe-edit-toolbox .btn-group.group2{bottom:.25em;right:3.375em}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{visibility:visible;pointer-events:auto}#ipe-edit-toolbox .btn-tip-group .btn-tip{position:absolute;text-align:center;font-size:12px;white-space:nowrap;left:50%;bottom:calc(100% + .5em);transform:translate(-50%);background:#fff;color:#252525;padding:.2em .5em;box-shadow:0 0 .5em #7f7f7f80;border-radius:.5em;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out,bottom .2s ease-in-out}#ipe-edit-toolbox .btn-tip-group:hover .btn-tip{opacity:1;bottom:calc(100% + 1em)}#ipe-edit-toolbox .btn-tip-group .btn-tip:after{content:"";display:block;border:5px solid transparent;border-radius:2px;border-right-color:#fff;border-bottom-color:#fff;position:absolute;bottom:-8px;left:50%;transform:rotate(45deg) translate(-50%)}.ipeps-header[data-v-971ee6d5]{margin-bottom:1.5rem;display:flex;align-items:center;gap:.875rem}.ipeps-header-title[data-v-971ee6d5]{font-weight:600;font-size:1.125rem;color:var(--ipe-modal-text);letter-spacing:-.01em}.ipeps-input-wrapper[data-v-971ee6d5]{flex:1;position:relative}.ipeps-input-icon[data-v-971ee6d5]{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4;font-size:.875rem;transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input[data-v-971ee6d5]{width:100%;line-height:1.5;padding:.625rem .875rem;border:1px solid var(--ipe-modal-border-color);border-radius:6px;font-size:.875rem;outline:none;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input.with-icon[data-v-971ee6d5]{padding-left:2.25rem}.ipeps-input[data-v-971ee6d5]::placeholder{color:var(--ipe-modal-muted);opacity:.6}.ipeps-input[data-v-971ee6d5]:hover:not(:disabled){border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color))}.ipeps-input[data-v-971ee6d5]:focus{border-color:var(--ipe-modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ipe-modal-accent) 8%,transparent)}.ipeps-input:focus+.ipeps-input-icon[data-v-971ee6d5]{opacity:.6}.ipeps-input[data-v-971ee6d5]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button[data-v-971ee6d5]{padding:.625rem 1rem;line-height:1.5;border:1px solid var(--ipe-modal-border-color);border-radius:6px;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 3%,transparent)}.ipeps-button[data-v-971ee6d5]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);border-color:color-mix(in srgb,var(--ipe-modal-accent) 40%,var(--ipe-modal-border-color));box-shadow:0 2px 4px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-button[data-v-971ee6d5]:active:not(:disabled){box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button[data-v-971ee6d5]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button.is-primary[data-v-971ee6d5]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-primary[data-v-971ee6d5]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-accent[data-v-971ee6d5]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-accent[data-v-971ee6d5]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-danger[data-v-971ee6d5]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-danger[data-v-971ee6d5]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);border-color:var(--ipe-modal-danger);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.is-ghost[data-v-971ee6d5]{background:transparent;box-shadow:none}.ipeps-button.is-ghost[data-v-971ee6d5]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);box-shadow:0 1px 3px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button.is-active[data-v-971ee6d5]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-active[data-v-971ee6d5]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.refreshing[data-v-971ee6d5]{animation:pulse-971ee6d5 1.5s cubic-bezier(.4,0,.6,1) infinite}.ipeps-loading[data-v-971ee6d5],.ipeps-empty[data-v-971ee6d5]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.ipeps-loading[data-v-971ee6d5]{padding:6rem 1.25rem}.ipeps-loading .loading-spinner[data-v-971ee6d5]{width:2.5rem;height:2.5rem;border:2px solid color-mix(in srgb,var(--ipe-modal-border-color) 30%,transparent);border-top-color:var(--ipe-modal-accent);border-radius:50%;animation:spin-971ee6d5 .8s linear infinite}.ipeps-loading .loading-text[data-v-971ee6d5]{color:var(--ipe-modal-muted);font-size:.875rem;font-weight:500}.ipeps-empty[data-v-971ee6d5]{padding:4rem 1.25rem}.ipeps-empty .plugin-empty-icon[data-v-971ee6d5],.ipeps-empty .icon[data-v-971ee6d5]{font-size:3rem;opacity:.25;filter:grayscale(.3)}.ipeps-empty .plugin-empty-text[data-v-971ee6d5],.ipeps-empty .text[data-v-971ee6d5]{color:var(--ipe-modal-muted);font-size:.9375rem;font-weight:500}.ipeps-empty .description[data-v-971ee6d5]{margin-top:.5rem;color:var(--ipe-modal-muted);font-size:.8125rem;opacity:.8}@keyframes spin-971ee6d5{to{transform:rotate(360deg)}}@keyframes pulse-971ee6d5{0%,to{opacity:1}50%{opacity:.6}}.ipeps-list[data-v-971ee6d5]{display:flex;flex-direction:column;gap:.875rem}.ipeps-item[data-v-971ee6d5]{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--ipe-modal-border-color);border-radius:8px;background:var(--ipe-modal-secondary-bg);transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 2%,transparent)}.ipeps-item[data-v-971ee6d5]:hover{background:color-mix(in srgb,var(--ipe-modal-accent) 3%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-accent) 35%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-item.installed[data-v-971ee6d5]{background:color-mix(in srgb,var(--ipe-modal-success) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 30%,var(--ipe-modal-border-color))}.ipeps-item.installed[data-v-971ee6d5]:hover{background:color-mix(in srgb,var(--ipe-modal-success) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 60%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-success) 10%,transparent)}.ipeps-item.broken[data-v-971ee6d5]{background:color-mix(in srgb,var(--ipe-modal-warning) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 35%,var(--ipe-modal-border-color));border-style:dashed}.ipeps-item.broken[data-v-971ee6d5]:hover{background:color-mix(in srgb,var(--ipe-modal-warning) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 70%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent)}.ipeps-item .item-name[data-v-971ee6d5]{font-weight:600;font-size:.9375rem;color:var(--ipe-modal-text);line-height:1.4;letter-spacing:-.01em}.ipeps-item .item-desc[data-v-971ee6d5]{font-size:.8125rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-item .item-meta[data-v-971ee6d5]{font-size:.75rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-tags[data-v-971ee6d5]{display:flex;flex-wrap:wrap;gap:.375rem}.ipeps-tag[data-v-971ee6d5]{font-size:.6875rem;font-family:monospace;margin-bottom:.375rem;padding:.1875rem .5rem;border-radius:4px;display:inline-block;border:1px solid color-mix(in srgb,var(--ipe-modal-border-color) 70%,transparent);background:color-mix(in srgb,var(--ipe-modal-text) 2%,var(--ipe-modal-bg));color:var(--ipe-modal-muted);transition:all .15s cubic-bezier(.4,0,.2,1);line-height:1.4}.ipeps-tag[data-v-971ee6d5]:hover{border-color:var(--ipe-modal-border-color);background:color-mix(in srgb,var(--ipe-modal-text) 4%,var(--ipe-modal-bg))}.ipeps-badge[data-v-971ee6d5]{font-size:.6875rem;font-weight:600;padding:.1875rem .5rem;border-radius:4px;line-height:1.4}.ipeps-badge.is-installed[data-v-971ee6d5]{color:var(--ipe-modal-success);background:color-mix(in srgb,var(--ipe-modal-success) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-success) 20%,transparent)}.ipeps-badge.is-broken[data-v-971ee6d5]{color:var(--ipe-modal-warning);background:color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-warning) 25%,transparent)}.ipeps-actions[data-v-971ee6d5]{display:flex;gap:.5rem;align-items:center}.registry-info[data-v-971ee6d5]{flex:1;min-width:0}.registry-info .homepage[data-v-971ee6d5]{margin-top:.25rem}.registry-info .homepage a[data-v-971ee6d5]{color:var(--ipe-modal-accent);text-decoration:none;font-size:.8125rem;transition:all .2s ease}.registry-info .homepage a[data-v-971ee6d5]:hover{color:color-mix(in srgb,var(--ipe-modal-accent) 80%,var(--ipe-modal-text));text-decoration:underline}.registry-info .url[data-v-971ee6d5]{font-family:monospace;font-size:.75rem;color:var(--ipe-modal-muted);margin-top:.125rem;word-break:break-all}.ipeps-header[data-v-f11a3331]{margin-bottom:1.5rem;display:flex;align-items:center;gap:.875rem}.ipeps-header-title[data-v-f11a3331]{font-weight:600;font-size:1.125rem;color:var(--ipe-modal-text);letter-spacing:-.01em}.ipeps-input-wrapper[data-v-f11a3331]{flex:1;position:relative}.ipeps-input-icon[data-v-f11a3331]{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4;font-size:.875rem;transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input[data-v-f11a3331]{width:100%;line-height:1.5;padding:.625rem .875rem;border:1px solid var(--ipe-modal-border-color);border-radius:6px;font-size:.875rem;outline:none;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input.with-icon[data-v-f11a3331]{padding-left:2.25rem}.ipeps-input[data-v-f11a3331]::placeholder{color:var(--ipe-modal-muted);opacity:.6}.ipeps-input[data-v-f11a3331]:hover:not(:disabled){border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color))}.ipeps-input[data-v-f11a3331]:focus{border-color:var(--ipe-modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ipe-modal-accent) 8%,transparent)}.ipeps-input:focus+.ipeps-input-icon[data-v-f11a3331]{opacity:.6}.ipeps-input[data-v-f11a3331]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button[data-v-f11a3331]{padding:.625rem 1rem;line-height:1.5;border:1px solid var(--ipe-modal-border-color);border-radius:6px;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 3%,transparent)}.ipeps-button[data-v-f11a3331]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);border-color:color-mix(in srgb,var(--ipe-modal-accent) 40%,var(--ipe-modal-border-color));box-shadow:0 2px 4px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-button[data-v-f11a3331]:active:not(:disabled){box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button[data-v-f11a3331]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button.is-primary[data-v-f11a3331]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-primary[data-v-f11a3331]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-accent[data-v-f11a3331]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-accent[data-v-f11a3331]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-danger[data-v-f11a3331]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-danger[data-v-f11a3331]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);border-color:var(--ipe-modal-danger);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.is-ghost[data-v-f11a3331]{background:transparent;box-shadow:none}.ipeps-button.is-ghost[data-v-f11a3331]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);box-shadow:0 1px 3px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button.is-active[data-v-f11a3331]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-active[data-v-f11a3331]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.refreshing[data-v-f11a3331]{animation:pulse-f11a3331 1.5s cubic-bezier(.4,0,.6,1) infinite}.ipeps-loading[data-v-f11a3331],.ipeps-empty[data-v-f11a3331]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.ipeps-loading[data-v-f11a3331]{padding:6rem 1.25rem}.ipeps-loading .loading-spinner[data-v-f11a3331]{width:2.5rem;height:2.5rem;border:2px solid color-mix(in srgb,var(--ipe-modal-border-color) 30%,transparent);border-top-color:var(--ipe-modal-accent);border-radius:50%;animation:spin-f11a3331 .8s linear infinite}.ipeps-loading .loading-text[data-v-f11a3331]{color:var(--ipe-modal-muted);font-size:.875rem;font-weight:500}.ipeps-empty[data-v-f11a3331]{padding:4rem 1.25rem}.ipeps-empty .plugin-empty-icon[data-v-f11a3331],.ipeps-empty .icon[data-v-f11a3331]{font-size:3rem;opacity:.25;filter:grayscale(.3)}.ipeps-empty .plugin-empty-text[data-v-f11a3331],.ipeps-empty .text[data-v-f11a3331]{color:var(--ipe-modal-muted);font-size:.9375rem;font-weight:500}.ipeps-empty .description[data-v-f11a3331]{margin-top:.5rem;color:var(--ipe-modal-muted);font-size:.8125rem;opacity:.8}@keyframes spin-f11a3331{to{transform:rotate(360deg)}}@keyframes pulse-f11a3331{0%,to{opacity:1}50%{opacity:.6}}.ipeps-list[data-v-f11a3331]{display:flex;flex-direction:column;gap:.875rem}.ipeps-item[data-v-f11a3331]{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--ipe-modal-border-color);border-radius:8px;background:var(--ipe-modal-secondary-bg);transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 2%,transparent)}.ipeps-item[data-v-f11a3331]:hover{background:color-mix(in srgb,var(--ipe-modal-accent) 3%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-accent) 35%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-item.installed[data-v-f11a3331]{background:color-mix(in srgb,var(--ipe-modal-success) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 30%,var(--ipe-modal-border-color))}.ipeps-item.installed[data-v-f11a3331]:hover{background:color-mix(in srgb,var(--ipe-modal-success) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 60%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-success) 10%,transparent)}.ipeps-item.broken[data-v-f11a3331]{background:color-mix(in srgb,var(--ipe-modal-warning) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 35%,var(--ipe-modal-border-color));border-style:dashed}.ipeps-item.broken[data-v-f11a3331]:hover{background:color-mix(in srgb,var(--ipe-modal-warning) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 70%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent)}.ipeps-item .item-name[data-v-f11a3331]{font-weight:600;font-size:.9375rem;color:var(--ipe-modal-text);line-height:1.4;letter-spacing:-.01em}.ipeps-item .item-desc[data-v-f11a3331]{font-size:.8125rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-item .item-meta[data-v-f11a3331]{font-size:.75rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-tags[data-v-f11a3331]{display:flex;flex-wrap:wrap;gap:.375rem}.ipeps-tag[data-v-f11a3331]{font-size:.6875rem;font-family:monospace;margin-bottom:.375rem;padding:.1875rem .5rem;border-radius:4px;display:inline-block;border:1px solid color-mix(in srgb,var(--ipe-modal-border-color) 70%,transparent);background:color-mix(in srgb,var(--ipe-modal-text) 2%,var(--ipe-modal-bg));color:var(--ipe-modal-muted);transition:all .15s cubic-bezier(.4,0,.2,1);line-height:1.4}.ipeps-tag[data-v-f11a3331]:hover{border-color:var(--ipe-modal-border-color);background:color-mix(in srgb,var(--ipe-modal-text) 4%,var(--ipe-modal-bg))}.ipeps-badge[data-v-f11a3331]{font-size:.6875rem;font-weight:600;padding:.1875rem .5rem;border-radius:4px;line-height:1.4}.ipeps-badge.is-installed[data-v-f11a3331]{color:var(--ipe-modal-success);background:color-mix(in srgb,var(--ipe-modal-success) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-success) 20%,transparent)}.ipeps-badge.is-broken[data-v-f11a3331]{color:var(--ipe-modal-warning);background:color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-warning) 25%,transparent)}.ipeps-actions[data-v-f11a3331]{display:flex;gap:.5rem;align-items:center}.plugin-info[data-v-f11a3331]{flex:1;min-width:0}.plugin-header[data-v-f11a3331]{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.registry-tag[data-v-f11a3331]{color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-accent) 18%,transparent);text-decoration:none;transition:all .2s ease}.registry-tag[data-v-f11a3331]:hover{background:color-mix(in srgb,var(--ipe-modal-accent) 12%,transparent);border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,transparent)}.registry-tag.broken[data-v-f11a3331]{text-decoration:line-through;opacity:.65;cursor:not-allowed}.plugin-id.broken[data-v-f11a3331]{opacity:.65;text-decoration:line-through}.plugin-desc[data-v-f11a3331]{font-size:.8125rem;color:var(--ipe-modal-muted);margin-bottom:.5rem;line-height:1.6}.plugin-desc.broken-desc[data-v-f11a3331]{color:color-mix(in srgb,var(--ipe-modal-warning) 80%,var(--ipe-modal-text));font-style:italic}.plugin-meta[data-v-f11a3331]{font-size:.75rem;color:var(--ipe-modal-muted);display:flex;gap:1rem;align-items:center}.plugin-meta .version[data-v-f11a3331]{font-family:monospace;font-weight:500;color:color-mix(in srgb,var(--ipe-modal-text) 80%,var(--ipe-modal-muted))}.plugin-meta .author[data-v-f11a3331],.plugin-meta .license[data-v-f11a3331]{display:flex;align-items:center;gap:.25rem}#ipe-plugin-store-app[data-v-1b3d0d80]{color:var(--ipe-modal-text);font-size:.875rem}.divider-wrapper[data-v-1b3d0d80]{margin:2rem 0}.divider-wrapper .divider[data-v-1b3d0d80]{border:none;height:1px;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--ipe-modal-border-color) 40%,transparent) 10%,color-mix(in srgb,var(--ipe-modal-border-color) 60%,transparent) 50%,color-mix(in srgb,var(--ipe-modal-border-color) 40%,transparent) 90%,transparent)}
|
|
1
|
+
@charset "UTF-8";:root{--ipe-modal-z: 1000;--ipe-modal-backdrop-bg: rgba(0, 0, 0, .5);--ipe-modal-bg: #ffffff;--ipe-modal-secondary-bg: #eaecf0;--ipe-modal-text: #111827;--ipe-modal-text--rgb: 17, 24, 39;--ipe-modal-muted: #6b7280;--ipe-modal-accent: #3b82f6;--ipe-modal-accent--rgb: 59, 130, 246;--ipe-modal-success: #10b981;--ipe-modal-info: #3b82f6;--ipe-modal-warning: #f59e0b;--ipe-modal-danger: #ef4444;--ipe-modal-danger--rgb: 239, 68, 68;--ipe-modal-border-color: #eaecf0;--ipe-modal-divider-color: #e5e7eb;--ipe-modal-radius: 8px;--ipe-modal-button-radius: 6px;--ipe-modal-shadow: 0 0 40px rgba(127, 127, 127, .5);--ipe-modal-spacing: 12px;--ipe-modal-viewport-gap-y: 20px;--ipe-modal-window-max-w: 96vw;--ipe-modal-anim: none;--ipe-modal-safe-area-top: env(safe-area-inset-top);--ipe-modal-safe-area-bottom: env(safe-area-inset-bottom);--ipe-modal-vh: 100vh}@supports (height: 100dvh){:root{--ipe-modal-vh: 100dvh}}:root{--ipe-modal-window-max-h: calc( var(--ipe-modal-vh) - var(--ipe-modal-safe-area-top) - var(--ipe-modal-safe-area-bottom) - (var(--ipe-modal-viewport-gap-y) * 2) )}body.ipe-modal-no-scroll{overflow:hidden!important;touch-action:none;-webkit-overflow-scrolling:auto}.ipe-modal-backdrop{position:fixed;inset:0;z-index:var(--ipe-modal-z);background:transparent;transition:background .18s ease;pointer-events:none}.ipe-modal-backdrop.is-open{background:var(--ipe-modal-backdrop-bg);pointer-events:auto}.ipe-modal-modal{position:fixed;inset:0;z-index:calc(var(--ipe-modal-z) + 1);outline:none;display:grid;align-items:start;justify-items:center;overflow:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s ease,transform .22s ease;pointer-events:none}.ipe-modal-modal.is-open{opacity:1;transform:none}.ipe-modal-modal.is-centered{display:grid;align-items:center}.ipe-modal-modal.is-fullscreen .ipe-modal-modal__window{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.ipe-modal-modal.no-backdrop{position:absolute;inset:auto;display:block;padding:0;overflow:visible}.ipe-modal-modal.is-dragging{transition:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__window{animation:none}.ipe-modal-modal.is-dragging .ipe-modal-modal__header{cursor:grabbing!important}.ipe-modal-modal__window{position:relative;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);border-radius:var(--ipe-modal-radius);box-shadow:var(--ipe-modal-shadow);max-width:var(--ipe-modal-window-max-w);width:min(92vw,var(--ipe-modal-window-max-w));overflow:hidden;display:block;animation:var(--ipe-modal-anim, none) .22s ease-in-out both;pointer-events:auto;overscroll-behavior:contain;margin-top:var(--ipe-modal-viewport-gap-y, 20px);margin-bottom:var(--ipe-modal-viewport-gap-y, 20px)}.size--dialog{max-width:420px}.size--small{max-width:520px}.size--smallToMedium{max-width:640px}.size--medium{max-width:max(64%,860px)}.size--mediumToLarge{max-width:max(72%,1080px)}.size--large{max-width:max(80%,1200px)}.size--full{width:100vw;height:var(--ipe-modal-vh);max-width:none;max-height:none;border-radius:0}.size--auto{max-width:var(--ipe-modal-window-max-w)}.ipe-modal-modal__window.is-fixed-height{height:min(var(--ipe-modal-window-max-h),80vh)}.ipe-modal-modal__header{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-bottom:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__title{font-size:1.125rem;font-weight:700;line-height:1;margin:0}.ipe-modal-modal__icons{display:inline-flex;gap:6px}.ipe-modal-modal__icon{width:28px;height:28px;border-radius:8px;border:0;background:transparent}.ipe-modal-modal__close{margin-left:6px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--ipe-modal-button-radius);background:transparent;font-size:22px;line-height:1;color:var(--ipe-modal-muted);cursor:pointer}.ipe-modal-modal__close:hover{background:#0000000f;color:var(--ipe-modal-text)}.ipe-modal-modal__content{padding:var(--ipe-modal-spacing);max-height:85dvh;overflow:auto;-webkit-overflow-scrolling:touch}.ipe-modal-modal__footer{background:var(--ipe-modal-secondary-bg);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--ipe-modal-spacing) * .75) var(--ipe-modal-spacing);border-top:1px solid var(--ipe-modal-divider-color)}.ipe-modal-modal__buttons{display:inline-flex;gap:8px}.ipe-modal-toast-container{position:fixed;z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.ipe-modal-toast-container.top{top:16px}.ipe-modal-toast-container.bottom{bottom:16px;flex-direction:column-reverse}.ipe-modal-toast-container.right{right:16px}.ipe-modal-toast-container.left{left:16px}.ipe-modal-modal__window.plugin--toast{--type-color: var(--ipe-modal-bg);--text-color: var(--ipe-modal-text);width:300px;border-radius:calc(var(--ipe-modal-radius) * .75);margin-top:0;margin-bottom:0;border:0;border-left:calc(var(--ipe-modal-radius) * .75) solid var(--type-color)}.ipe-modal-modal__window.plugin--toast.type-default{--type-color: var(--ipe-modal-secondary-bg)}.ipe-modal-modal__window.plugin--toast.type-info{--type-color: var(--ipe-modal-info);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-success{--type-color: var(--ipe-modal-success);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-warning{--type-color: var(--ipe-modal-warning);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast.type-error{--type-color: var(--ipe-modal-danger);--text-color: #fff;--ipe-modal-muted: #fff}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header{padding:.5em;background-color:var(--type-color);color:var(--text-color);border-bottom:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title{display:flex;align-items:center}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header .ipe-modal-modal__title .ipe-modal-notify-icon{margin-right:.5em;width:20px;height:20px}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__close{width:20px;height:20px;font-size:16px;color:var(--ipe-modal-muted)}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__content{padding:1em .5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__footer{padding:.5em;background-color:transparent;border-top:0}.ipe-modal-modal__window.plugin--toast .ipe-modal-btn{padding:.25em .75em!important}.ipe-modal-btn{--accent-color: #fff;--text-color: var(--ipe-modal-text);--active-color: rgba(0, 0, 0, .1);appearance:none;border:1px solid rgba(0,0,0,.14);background:var(--accent-color);color:var(--text-color);padding:8px 12px;border-radius:var(--ipe-modal-button-radius);cursor:pointer;font:inherit;transition:all .2s;line-height:1}.ipe-modal-btn:hover{background:#0000000a}.ipe-modal-btn:disabled{opacity:.6;cursor:not-allowed}.ipe-modal-btn:active{background:#0000000f;box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn:focus{box-shadow:0 0 0 2px var(--active-color)}.ipe-modal-btn.is-primary{--accent-color: var(--ipe-modal-accent);--text-color: #fff;--active-color: rgba(var(--ipe-modal-accent--rgb), .5);border-color:var(--accent-color);background:var(--accent-color)}.ipe-modal-btn.is-danger{--accent-color: var(--ipe-modal-danger);--text-color: #fff;--active-color: rgba(var(--ipe-modal-danger--rgb), .2);border-color:var(--accent-color);background:var(--accent-color);color:var(--text-color)}.ipe-modal-btn.is-ghost,.ipe-modal-btn.is-text{background:transparent}.ipe-modal-btn.is-text{border:0;color:var(--ipe-modal-text)}.ipe-modal-btn.is-ghost.is-primary,.ipe-modal-btn.is-text.is-primary{color:var(--ipe-modal-accent)}.ipe-modal-btn.is-ghost.is-danger,.ipe-modal-btn.is-text.is-danger{color:var(--ipe-modal-danger)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer{padding:0;background-color:transparent}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer .ipe-modal-btn,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer .ipe-modal-btn{flex:1;border:0;margin:0;padding:1rem;border-radius:0}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer .ipe-modal-btn:not(:first-child),.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer .ipe-modal-btn:not(:first-child){border-left:1px solid rgba(0,0,0,.06)}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--left,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--left{display:none}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__buttons--right,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__buttons--right{flex:1;width:100%;display:flex;gap:0}@keyframes ipe-modal-fade-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes ipe-modal-fade-out{0%{transform:scale(1);opacity:1}to{transform:scale(.85);opacity:0}}._ipe_progress_so6hn_1{position:relative;display:inline-block;width:100%;overflow:hidden;border:1px solid #c5c5c5;border-radius:100vmax;background-color:#fff;height:1em;--progress: 0%}._ipe_progress_so6hn_1[data-indeterminate=true]:before,._ipe_progress_so6hn_1[data-indeterminate=true]:after{content:"";position:absolute;top:0;bottom:0;left:0;background-color:#36c}._ipe_progress_so6hn_1[data-indeterminate=true]:before{animation:_progress-indeterminate-long_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=true]:after{animation:_progress-indeterminate-short_so6hn_1 2s linear infinite}._ipe_progress_so6hn_1[data-indeterminate=false]:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--progress);background-color:#36c;transition:width .3s ease-in-out}@keyframes _progress-indeterminate-long_so6hn_1{0%{left:0;width:0}50%{left:30%;width:70%}75%{left:100%;width:0}}@keyframes _progress-indeterminate-short_so6hn_1{0%{left:0;width:0}50%{left:0;width:0}75%{left:0;width:25%}to{left:110%;width:0}}.theme-ipe{--color-primary: #36c;--color-primary-hover: #447ff5;--color-primary-active: #2a4b8d;--color-promary--rgb: 51, 102, 204;--color-white: #fff;--color-text-dark: #222;--color-text-medium: #252525;--color-text-hover: #454545;--color-bg-light: #f8f9fa;--color-bg-lighter: #fafafa;--color-bg-lightest: #f8f8f8;--color-bg-gray: #f4f4f4;--color-border-gray: #c8ccd1;--color-border-light: #efefef;--color-border-input: #ccc;--color-border-dark: #72777d;--color-border-disabled: #d6d6d6;--color-danger: #d33;--color-danger-hover: #ff4242;--color-danger-active: #d00;--color-danger--rgb: 211, 51, 51;--color-disabled-bg: #c8ccd1;--color-disabled-dark: #a0a0a0;--font-size-button: 14px;--font-size-label: 1rem;--font-weight-label: 700;--border-width: 1px;--border-width-radio-checked: 6px;--border-radius-button: 6px;--border-radius-input: 4px;--padding-button-y: .5em;--padding-button-x: 1em;--padding-button-dialog: 1em;--padding-input-y: .25em;--padding-input-x: .35em;--size-checkbox: 1.2em;--size-radio: 1.4em;--margin-checkbox-top: .15em;--margin-checkbox-right: .375em;--textarea-height: 50vh;--textarea-min-height: 20em;--textarea-background: var(--color-bg-lighter);--line-height-input: 1.5em;--line-height-checkbox: 1.2em;--transition-fast: .1s;--transition-medium: .12s;--transition-slow: .2s;--ipe-modal-accent: var(--color-primary);--ipe-modal-danger: var(--color-danger);--ipe-modal-button-radius: var(--border-radius-button);font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.theme-ipe textarea{width:100%;background:var(--textarea-background);resize:vertical;border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);padding:var(--padding-input-y) var(--padding-input-x);outline:none}.theme-ipe textarea[name=text]{height:var(--textarea-height);min-height:var(--textarea-min-height)}.theme-ipe textarea:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe textarea:disabled{background-color:var(--color-disabled-bg);color:var(--color-white);cursor:not-allowed}.theme-ipe .ipe-quickEdit__textarea--monospace{font-family:monospace}.theme-ipe .ipe-quickEdit__textarea--sans-serif{font-family:sans-serif}.theme-ipe .ipe-quickEdit__textarea--serif{font-family:serif}.theme-ipe .ipe-input-box label{display:block;font-size:.875rem;margin-bottom:.5em;font-weight:500}.theme-ipe .ipe-input-box input[type=text],.theme-ipe .ipe-input-box input[type=number],.theme-ipe .ipe-input-box input[type=email],.theme-ipe .ipe-input-box input[type=password],.theme-ipe .ipe-input-box input[type=url],.theme-ipe .ipe-input-box input[type=tel],.theme-ipe .ipe-input-box input[type=search]{width:100%}.theme-ipe input{padding:var(--padding-input-y) var(--padding-input-x);border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:border var(--transition-slow);line-height:var(--line-height-input);outline:none}.theme-ipe input:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe label input[type=checkbox]+span,.theme-ipe label input[type=radio]+span{user-select:none;line-height:var(--line-height-checkbox)}.theme-ipe label input[type=checkbox]+span:before,.theme-ipe label input[type=radio]+span:before{content:" ";display:inline-block;width:var(--size-checkbox);height:var(--size-checkbox);margin-top:var(--margin-checkbox-top);margin-right:var(--margin-checkbox-right);border-radius:var(--border-radius-input);background-color:var(--color-bg-lightest);border:var(--border-width) solid var(--color-border-dark);cursor:pointer;transition:all var(--transition-medium)}.theme-ipe label input[type=radio]+span:before{border-radius:50%;box-sizing:border-box;vertical-align:text-bottom;width:var(--size-radio);height:var(--size-radio)}.theme-ipe label input[type=checkbox]:checked+span:before{content:" ";background-color:var(--color-primary);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxnIGlkPSJjaGVja21hcmsiPjxwYXRoIGQ9Ik0xMy43NDkyKzMuNDkwOTVMNS44NjMxMisxMS42MzM3TDIuMjUwNzcrNy45NjA4MkwxLjQ4NzYrOC43NTc3OEw1Ljg2MzEyKzEzLjE5M0wxNC41MTI0KzQuMjg3OUwxMy43NDkyKzMuNDkwOTVaIiBvcGFjaXR5PSIxIiBmaWxsPSIjZmZmZmZmIi8+PC9nPjwvc3ZnPg==);background-repeat:no-repeat}.theme-ipe label input[type=radio]:checked+span:before{border-color:var(--color-primary);border-width:var(--border-width-radio-checked)}.theme-ipe label input[type=checkbox]:checked+span:hover:before{background-color:var(--color-primary-hover)}.theme-ipe label input[type=radio]:checked+span:hover:before{border-color:var(--color-primary-hover)}.theme-ipe label input[type=checkbox]:active+span:before,.theme-ipe label input[type=checkbox]:focus+span:before{box-shadow:0 0 0 2px rgba(var(--color-promary--rgb),.5);border-color:var(--color-primary)}.theme-ipe label input[type=checkbox],.theme-ipe label input[type=radio]{position:absolute;clip:rect(0,0,0,0)}.theme-ipe .cm-panel label input[type=checkbox],.theme-ipe .cm-panel label input[type=radio]{position:initial;clip:initial}.theme-ipe label input[type=checkbox]:disabled+span:before{border-color:var(--color-border-disabled)}.theme-ipe label input[type=radio]:disabled+span:before{background-color:var(--color-disabled-bg);border-color:var(--color-disabled-bg)}.theme-ipe label input[type=checkbox]:disabled:checked+span:before{background-color:var(--color-disabled-dark)}.theme-ipe label input[type=radio]:disabled:checked+span:before{background-color:var(--color-white)}.theme-ipe .ipe-radio-box span,.theme-ipe .ipe-checkbox span{vertical-align:middle}.theme-ipe svg.icon{height:1em;height:max(1em,1lh);width:auto;vertical-align:middle}.theme-ipe .ipe-action-button{color:var(--text-color)}.theme-ipe-prose{color:var(--color-text-dark);line-height:1.6}.theme-ipe-prose h1,.theme-ipe-prose h2,.theme-ipe-prose h3,.theme-ipe-prose h4,.theme-ipe-prose h5,.theme-ipe-prose h6{color:var(--color-text-dark);line-height:1.25;margin-top:1em;margin-bottom:.75em;scroll-margin-top:2rem;position:relative;padding:0;padding-left:1rem}.theme-ipe-prose h1:before,.theme-ipe-prose h2:before,.theme-ipe-prose h3:before,.theme-ipe-prose h4:before,.theme-ipe-prose h5:before,.theme-ipe-prose h6:before{content:"";display:block;position:absolute;top:50%;left:0;transform:translateY(-50%);border-radius:1em}.theme-ipe-prose h1.plain,.theme-ipe-prose h2.plain,.theme-ipe-prose h3.plain,.theme-ipe-prose h4.plain,.theme-ipe-prose h5.plain,.theme-ipe-prose h6.plain{padding-left:0}.theme-ipe-prose h1.plain:before,.theme-ipe-prose h2.plain:before,.theme-ipe-prose h3.plain:before,.theme-ipe-prose h4.plain:before,.theme-ipe-prose h5.plain:before,.theme-ipe-prose h6.plain:before{display:none}.theme-ipe-prose h1{font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-top:0}.theme-ipe-prose h2{font-size:1.6rem;font-weight:700;letter-spacing:-.025em}.theme-ipe-prose h2:before{width:.3rem;height:80%;background-color:var(--color-primary)}.theme-ipe-prose h3{font-size:1.3rem;font-weight:600}.theme-ipe-prose h3:before{width:.25rem;height:70%;margin-left:.05rem;background-color:rgba(var(--color-promary--rgb),.85)}.theme-ipe-prose h4{font-size:1.2rem;font-weight:600}.theme-ipe-prose h4:before{width:.2rem;height:60%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.7)}.theme-ipe-prose h5{font-size:1.125rem;font-weight:500}.theme-ipe-prose h5:before{width:.15rem;height:50%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.55)}.theme-ipe-prose h6{font-size:1rem;font-weight:500;color:var(--color-text-hover)}.theme-ipe-prose h6:before{width:.15rem;height:40%;margin-left:.1rem;background-color:rgba(var(--color-promary--rgb),.4)}.theme-ipe-prose p{margin-top:0;margin-bottom:1.25em}.theme-ipe-prose strong{font-weight:700;color:var(--color-text-dark)}.theme-ipe-prose em{font-style:italic}.theme-ipe-prose a:not(.ipe-modal-btn){color:var(--color-primary);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.theme-ipe-prose a:not(.ipe-modal-btn):hover{color:var(--color-primary-hover);border-bottom-color:var(--color-primary-hover)}.theme-ipe-prose a:not(.ipe-modal-btn):active{color:var(--color-primary-active)}.theme-ipe-prose a:not(.ipe-modal-btn) code{color:inherit}.theme-ipe-prose ul,.theme-ipe-prose ol{margin-top:1em;margin-bottom:1em;padding-left:1.625em}.theme-ipe-prose ul{list-style-type:disc}.theme-ipe-prose ol{list-style-type:decimal}.theme-ipe-prose li{margin-top:.5em;margin-bottom:.5em}.theme-ipe-prose li::marker{color:var(--color-text-hover)}.theme-ipe-prose ul ul,.theme-ipe-prose ul ol,.theme-ipe-prose ol ul,.theme-ipe-prose ol ol{margin-top:.5em;margin-bottom:.5em}.theme-ipe-prose blockquote{margin:1.5em 0;padding:1em 1.5em;border-left:4px solid var(--color-primary);background-color:var(--color-bg-lighter);border-radius:0 var(--border-radius-input) var(--border-radius-input) 0;font-style:italic;color:var(--color-text-medium)}.theme-ipe-prose blockquote p:last-child{margin-bottom:0}.theme-ipe-prose blockquote cite{display:block;margin-top:1em;font-size:.875em;font-style:normal;color:var(--color-text-hover)}.theme-ipe-prose blockquote cite:before{content:"— "}.theme-ipe-prose code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.875em;background-color:var(--color-bg-lighter);padding:.2em .4em;border-radius:4px;border:1px solid var(--color-border-light);color:var(--color-text-dark);font-weight:400}.theme-ipe-prose pre{margin:1.5em 0;padding:1.25em 1.5em;background-color:var(--color-bg-lightest);border:1px solid var(--color-border-light);border-radius:var(--border-radius-input);overflow-x:auto;line-height:1.7}.theme-ipe-prose pre code{background-color:transparent;padding:0;border:none;border-radius:0;font-size:.875rem}.theme-ipe-prose hr{margin:1em 0;border:0;border-top:2px solid var(--color-border-light)}.theme-ipe-prose table{width:100%;margin:1.5em 0;border-collapse:collapse;font-size:.875em;line-height:1.5}.theme-ipe-prose thead{border-bottom:2px solid var(--color-border-gray)}.theme-ipe-prose th{padding:.75em 1em;text-align:left;font-weight:600;color:var(--color-text-dark);background-color:var(--color-bg-light)}.theme-ipe-prose td{padding:.75em 1em;border-bottom:1px solid var(--color-border-light)}.theme-ipe-prose tbody tr:hover{background-color:var(--color-bg-lighter)}.theme-ipe-prose img{max-width:100%;height:auto;border-radius:var(--border-radius-input);margin:1.5em 0}.theme-ipe-prose figure{margin:1.5em 0}.theme-ipe-prose figure img{margin:0}.theme-ipe-prose figure figcaption{margin-top:.75em;text-align:center;font-size:.875em;color:var(--color-text-hover);font-style:italic}.theme-ipe-prose kbd{font-family:inherit;font-size:.875em;padding:.2em .5em;border:1px solid var(--color-border-gray);border-radius:4px;background-color:var(--color-bg-light);box-shadow:0 1px 0 var(--color-border-gray),0 2px 0 var(--color-border-light);display:inline-block;line-height:1;white-space:nowrap}.theme-ipe-prose mark{background-color:#fff3cd;padding:.1em .3em;border-radius:2px;color:inherit}.theme-ipe-prose del{text-decoration:line-through;color:var(--color-text-hover)}.theme-ipe-prose ins{text-decoration:none;border-bottom:1px solid var(--color-primary);background-color:rgba(var(--color-promary--rgb),.1)}.theme-ipe-prose abbr{text-decoration:underline dotted;cursor:help}.theme-ipe-prose details{margin:1em 0;padding:1em;border:1px solid var(--color-border-light);border-radius:var(--border-radius-input);background-color:var(--color-bg-lighter)}.theme-ipe-prose details summary{cursor:pointer;font-weight:600;color:var(--color-primary);user-select:none;margin:-1em;padding:1em;transition:background-color var(--transition-fast)}.theme-ipe-prose details summary:hover{background-color:var(--color-bg-light)}.theme-ipe-prose details[open] summary{margin-bottom:.75em;border-bottom:1px solid var(--color-border-light)}@media(max-width:640px){.theme-ipe-prose{font-size:.875rem}.theme-ipe-prose h1{font-size:1.875rem}.theme-ipe-prose h2{font-size:1.5rem}.theme-ipe-prose h3{font-size:1.25rem}}svg.ipe-icon{height:1em;height:1lh;width:auto;vertical-align:middle}@media(min-width:768px){.skin-moeskin #ipe-edit-toolbox{bottom:5rem}}body.skin-fandomdesktop #ipe-edit-toolbox{bottom:3em}.tabbar .tabbar-tabs[data-v-7f07706b]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em;white-space:nowrap;overflow-x:auto}.tabbar .tabbar-tabs .tab[data-v-7f07706b]{padding:.5em 1em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabbar .tabbar-tabs .tab.active[data-v-7f07706b]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}schema-form[data-v-7f07706b]{margin-bottom:.5em;--schema-radius: 6px}#preferences-ui-app .schema-form-item.field{border:0}._mbox_5x43w_1{--border-color: #dfdfdf;--title-color: #efefef;--content-color: #ffffff;border-radius:.5rem;border:1px solid var(--title-color);border-left:6px solid var(--border-color);overflow:hidden;margin-bottom:1rem;position:relative}._mbox_5x43w_1 ._title_5x43w_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_5x43w_1 ._content_5x43w_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_5x43w_1 ._close_5x43w_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_5x43w_1 ._close_5x43w_27:hover{filter:brightness(1.2)}._mbox_5x43w_1 ._close_5x43w_27:active{filter:brightness(.8)}._mbox_5x43w_1.mbox-type-note,._mbox_5x43w_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_5x43w_1.mbox-type-tip,._mbox_5x43w_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-important,._mbox_5x43w_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_5x43w_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_5x43w_1.mbox-type-caution,._mbox_5x43w_1.mbox-type-error{--border-color: #da3633;--title-color: #FCB9B6;--content-color: #f9f9f9}._twinSwapInput_1gdgl_9{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"input-left swap-button input-right";gap:1rem;align-items:end}@media(max-width:768px){._twinSwapInput_1gdgl_9{grid-template-columns:1fr;grid-template-areas:"input-left" "swap-button" "input-right";gap:.75rem}}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23{display:flex;flex-direction:column}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputLeft_1gdgl_27{grid-area:input-left}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23._inputRight_1gdgl_30{grid-area:input-right}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 label{display:block;margin-bottom:.5em;font-weight:500;font-size:.875rem}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input{width:100%}._twinSwapInput_1gdgl_9 ._inputWrapper_1gdgl_23 input:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46{grid-area:swap-button;display:flex;align-items:center;justify-content:center}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{position:relative;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;width:2rem;height:2rem;border:none;background:#efefef;cursor:pointer;transition:all .2s ease}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:hover{background:#e0e0e0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:active{background:#d0d0d0}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button:disabled{opacity:.75;cursor:not-allowed}._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button svg{transition:all .2s ease;width:1.25rem;height:1.25rem}@media(max-width:768px){._twinSwapInput_1gdgl_9 ._swapButton_1gdgl_46 button{transform:rotate(90deg)}}.theme-ipe.diff-type-table .diff-title{line-height:1.5}.theme-ipe.diff-type-table .mw-diff-title--navigation{text-align:center;color:#666}#ipe-edit-toolbox{font-size:16px;position:fixed;right:2em;bottom:2em;user-select:none;z-index:42}@media print{#ipe-edit-toolbox{display:none}}#ipe-edit-toolbox .ipe-toolbox-btn{color:#fff;background:#bebebe;height:1.5em;width:1.5em;font-size:1.5em;line-height:1;border:0;border-radius:50%;box-shadow:0 0 8px #7f7f7f80;text-shadow:0 0 2px #4c4c4c;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center}#ipe-edit-toolbox .ipe-toolbox-btn svg,#ipe-edit-toolbox .ipe-toolbox-btn img{line-height:1;width:1em;height:1em;vertical-align:middle}#ipe-edit-toolbox .ipe-toolbox-btn:disabled{cursor:not-allowed;filter:grayscale(50%) opacity(.75)}#ipe-edit-toolbox #toolbox-toggler{position:absolute;right:0;bottom:0;width:2em;height:2em;background:#3f51b5;font-size:1.5em;line-height:1;margin:0;transition:transform .3s cubic-bezier(.68,-.55,.27,1.55);transform:rotate(0)}#ipe-edit-toolbox.is-persistent #toolbox-toggler{transform:rotate(45deg)}#ipe-edit-toolbox .btn-group.group1 .btn-tip-group{transform:translate3d(0,100%,0)}#ipe-edit-toolbox .btn-group.group2 .btn-tip-group{transform:translate3d(100%,0,0)}#ipe-edit-toolbox .btn-group .btn-tip-group{transition-timing-function:cubic-bezier(.68,-.55,.27,1.55);transition-duration:.3s;transition-delay:var(--transition-delay, 0s);opacity:0}#ipe-edit-toolbox.is-persistent .btn-group .btn-tip-group,#ipe-edit-toolbox.is-hovered .btn-group .btn-tip-group{transform:translateZ(0);opacity:1}#ipe-edit-toolbox:not(.is-persistent):not(.is-hovered) .btn-group .btn-tip-group{transition-delay:calc(var(--max-transition-delay) - var(--transition-delay))}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{transform:scaleZ(1)}#ipe-edit-toolbox .ipe-toolbox-btn#toolbox-toggler.click{box-shadow:0 0 4px gray,0 0 10px #444 inset}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-edit-btn{background:#2196f3}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-move-btn{background:#00bcd4}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-redirect-btn{background:#009688}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-delete-btn{background:#e91e63}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__preferences-btn{background:#ffc107}#ipe-edit-toolbox .btn-group{position:absolute;display:flex;gap:.5em;list-style:none;margin:0;pointer-events:none}#ipe-edit-toolbox .btn-group.group1{bottom:3.5em;right:.375em;flex-direction:column}#ipe-edit-toolbox .btn-group.group2{bottom:.25em;right:3.375em}#ipe-edit-toolbox.is-persistent .btn-group,#ipe-edit-toolbox.is-hovered .btn-group{visibility:visible;pointer-events:auto}#ipe-edit-toolbox .btn-tip-group .btn-tip{position:absolute;text-align:center;font-size:12px;white-space:nowrap;left:50%;bottom:calc(100% + .5em);transform:translate(-50%);background:#fff;color:#252525;padding:.2em .5em;box-shadow:0 0 .5em #7f7f7f80;border-radius:.5em;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out,bottom .2s ease-in-out}#ipe-edit-toolbox .btn-tip-group:hover .btn-tip{opacity:1;bottom:calc(100% + 1em)}#ipe-edit-toolbox .btn-tip-group .btn-tip:after{content:"";display:block;border:5px solid transparent;border-radius:2px;border-right-color:#fff;border-bottom-color:#fff;position:absolute;bottom:-8px;left:50%;transform:rotate(45deg) translate(-50%)}.ipeps-header[data-v-0245c97d]{margin-bottom:1.5rem;display:flex;align-items:center;gap:.875rem}.ipeps-header-title[data-v-0245c97d]{font-weight:600;font-size:1.125rem;color:var(--ipe-modal-text);letter-spacing:-.01em}.ipeps-input-wrapper[data-v-0245c97d]{flex:1;position:relative}.ipeps-input-icon[data-v-0245c97d]{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4;font-size:.875rem;transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input[data-v-0245c97d]{width:100%;line-height:1.5;padding:.625rem .875rem;border:1px solid var(--ipe-modal-border-color);border-radius:6px;font-size:.875rem;outline:none;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input.with-icon[data-v-0245c97d]{padding-left:2.25rem}.ipeps-input[data-v-0245c97d]::placeholder{color:var(--ipe-modal-muted);opacity:.6}.ipeps-input[data-v-0245c97d]:hover:not(:disabled){border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color))}.ipeps-input[data-v-0245c97d]:focus{border-color:var(--ipe-modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ipe-modal-accent) 8%,transparent)}.ipeps-input:focus+.ipeps-input-icon[data-v-0245c97d]{opacity:.6}.ipeps-input[data-v-0245c97d]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button[data-v-0245c97d]{padding:.625rem 1rem;line-height:1.5;border:1px solid var(--ipe-modal-border-color);border-radius:6px;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 3%,transparent)}.ipeps-button[data-v-0245c97d]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);border-color:color-mix(in srgb,var(--ipe-modal-accent) 40%,var(--ipe-modal-border-color));box-shadow:0 2px 4px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-button[data-v-0245c97d]:active:not(:disabled){box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button[data-v-0245c97d]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button.is-primary[data-v-0245c97d]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-primary[data-v-0245c97d]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-accent[data-v-0245c97d]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-accent[data-v-0245c97d]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-danger[data-v-0245c97d]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-danger[data-v-0245c97d]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);border-color:var(--ipe-modal-danger);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.is-ghost[data-v-0245c97d]{background:transparent;box-shadow:none}.ipeps-button.is-ghost[data-v-0245c97d]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);box-shadow:0 1px 3px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button.is-active[data-v-0245c97d]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-active[data-v-0245c97d]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.refreshing[data-v-0245c97d]{animation:pulse-0245c97d 1.5s cubic-bezier(.4,0,.6,1) infinite}.ipeps-loading[data-v-0245c97d],.ipeps-empty[data-v-0245c97d]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.ipeps-loading[data-v-0245c97d]{padding:6rem 1.25rem}.ipeps-loading .loading-spinner[data-v-0245c97d]{width:2.5rem;height:2.5rem;border:2px solid color-mix(in srgb,var(--ipe-modal-border-color) 30%,transparent);border-top-color:var(--ipe-modal-accent);border-radius:50%;animation:spin-0245c97d .8s linear infinite}.ipeps-loading .loading-text[data-v-0245c97d]{color:var(--ipe-modal-muted);font-size:.875rem;font-weight:500}.ipeps-empty[data-v-0245c97d]{padding:4rem 1.25rem}.ipeps-empty .plugin-empty-icon[data-v-0245c97d],.ipeps-empty .icon[data-v-0245c97d]{font-size:3rem;opacity:.25;filter:grayscale(.3)}.ipeps-empty .plugin-empty-text[data-v-0245c97d],.ipeps-empty .text[data-v-0245c97d]{color:var(--ipe-modal-muted);font-size:.9375rem;font-weight:500}.ipeps-empty .description[data-v-0245c97d]{margin-top:.5rem;color:var(--ipe-modal-muted);font-size:.8125rem;opacity:.8}@keyframes spin-0245c97d{to{transform:rotate(360deg)}}@keyframes pulse-0245c97d{0%,to{opacity:1}50%{opacity:.6}}.ipeps-list[data-v-0245c97d]{display:flex;flex-direction:column;gap:.875rem}.ipeps-item[data-v-0245c97d]{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--ipe-modal-border-color);border-radius:8px;background:var(--ipe-modal-secondary-bg);transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 2%,transparent)}.ipeps-item[data-v-0245c97d]:hover{background:color-mix(in srgb,var(--ipe-modal-accent) 3%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-accent) 35%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-item.installed[data-v-0245c97d]{background:color-mix(in srgb,var(--ipe-modal-success) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 30%,var(--ipe-modal-border-color))}.ipeps-item.installed[data-v-0245c97d]:hover{background:color-mix(in srgb,var(--ipe-modal-success) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 60%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-success) 10%,transparent)}.ipeps-item.broken[data-v-0245c97d]{background:color-mix(in srgb,var(--ipe-modal-warning) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 35%,var(--ipe-modal-border-color));border-style:dashed}.ipeps-item.broken[data-v-0245c97d]:hover{background:color-mix(in srgb,var(--ipe-modal-warning) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 70%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent)}.ipeps-item .item-name[data-v-0245c97d]{font-weight:600;font-size:.9375rem;color:var(--ipe-modal-text);line-height:1.4;letter-spacing:-.01em}.ipeps-item .item-desc[data-v-0245c97d]{font-size:.8125rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-item .item-meta[data-v-0245c97d]{font-size:.75rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-tags[data-v-0245c97d]{display:flex;flex-wrap:wrap;gap:.375rem}.ipeps-tag[data-v-0245c97d]{font-size:.6875rem;font-family:monospace;margin-bottom:.375rem;padding:.1875rem .5rem;border-radius:4px;display:inline-block;border:1px solid color-mix(in srgb,var(--ipe-modal-border-color) 70%,transparent);background:color-mix(in srgb,var(--ipe-modal-text) 2%,var(--ipe-modal-bg));color:var(--ipe-modal-muted);transition:all .15s cubic-bezier(.4,0,.2,1);line-height:1.4}.ipeps-tag[data-v-0245c97d]:hover{border-color:var(--ipe-modal-border-color);background:color-mix(in srgb,var(--ipe-modal-text) 4%,var(--ipe-modal-bg))}.ipeps-badge[data-v-0245c97d]{font-size:.6875rem;font-weight:600;padding:.1875rem .5rem;border-radius:4px;line-height:1.4}.ipeps-badge.is-installed[data-v-0245c97d]{color:var(--ipe-modal-success);background:color-mix(in srgb,var(--ipe-modal-success) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-success) 20%,transparent)}.ipeps-badge.is-broken[data-v-0245c97d]{color:var(--ipe-modal-warning);background:color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-warning) 25%,transparent)}.ipeps-actions[data-v-0245c97d]{display:flex;gap:.5rem;align-items:center}.registry-info[data-v-0245c97d]{flex:1;min-width:0}.registry-info .homepage[data-v-0245c97d]{margin-top:.25rem}.registry-info .homepage a[data-v-0245c97d]{color:var(--ipe-modal-accent);text-decoration:none;font-size:.8125rem;transition:all .2s ease}.registry-info .homepage a[data-v-0245c97d]:hover{color:color-mix(in srgb,var(--ipe-modal-accent) 80%,var(--ipe-modal-text));text-decoration:underline}.registry-info .url[data-v-0245c97d]{font-family:monospace;font-size:.75rem;color:var(--ipe-modal-muted);margin-top:.125rem;word-break:break-all}.ipeps-header[data-v-d3aab2b1]{margin-bottom:1.5rem;display:flex;align-items:center;gap:.875rem}.ipeps-header-title[data-v-d3aab2b1]{font-weight:600;font-size:1.125rem;color:var(--ipe-modal-text);letter-spacing:-.01em}.ipeps-input-wrapper[data-v-d3aab2b1]{flex:1;position:relative}.ipeps-input-icon[data-v-d3aab2b1]{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4;font-size:.875rem;transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input[data-v-d3aab2b1]{width:100%;line-height:1.5;padding:.625rem .875rem;border:1px solid var(--ipe-modal-border-color);border-radius:6px;font-size:.875rem;outline:none;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);transition:all .25s cubic-bezier(.4,0,.2,1)}.ipeps-input.with-icon[data-v-d3aab2b1]{padding-left:2.25rem}.ipeps-input[data-v-d3aab2b1]::placeholder{color:var(--ipe-modal-muted);opacity:.6}.ipeps-input[data-v-d3aab2b1]:hover:not(:disabled){border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color))}.ipeps-input[data-v-d3aab2b1]:focus{border-color:var(--ipe-modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ipe-modal-accent) 8%,transparent)}.ipeps-input:focus+.ipeps-input-icon[data-v-d3aab2b1]{opacity:.6}.ipeps-input[data-v-d3aab2b1]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button[data-v-d3aab2b1]{padding:.625rem 1rem;line-height:1.5;border:1px solid var(--ipe-modal-border-color);border-radius:6px;background:var(--ipe-modal-bg);color:var(--ipe-modal-text);cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 3%,transparent)}.ipeps-button[data-v-d3aab2b1]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);border-color:color-mix(in srgb,var(--ipe-modal-accent) 40%,var(--ipe-modal-border-color));box-shadow:0 2px 4px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-button[data-v-d3aab2b1]:active:not(:disabled){box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button[data-v-d3aab2b1]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button.is-primary[data-v-d3aab2b1]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-primary[data-v-d3aab2b1]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-accent[data-v-d3aab2b1]{border-color:var(--ipe-modal-accent);color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 5%,var(--ipe-modal-bg))}.ipeps-button.is-accent[data-v-d3aab2b1]:hover:not(:disabled){background:var(--ipe-modal-accent);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-accent) 20%,transparent)}.ipeps-button.is-danger[data-v-d3aab2b1]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-danger[data-v-d3aab2b1]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);border-color:var(--ipe-modal-danger);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.is-ghost[data-v-d3aab2b1]{background:transparent;box-shadow:none}.ipeps-button.is-ghost[data-v-d3aab2b1]:hover:not(:disabled){background:var(--ipe-modal-secondary-bg);box-shadow:0 1px 3px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button.is-active[data-v-d3aab2b1]{border-color:var(--ipe-modal-danger);color:var(--ipe-modal-danger);background:color-mix(in srgb,var(--ipe-modal-danger) 5%,var(--ipe-modal-bg))}.ipeps-button.is-active[data-v-d3aab2b1]:hover:not(:disabled){background:var(--ipe-modal-danger);color:var(--ipe-modal-bg);box-shadow:0 2px 8px color-mix(in srgb,var(--ipe-modal-danger) 20%,transparent)}.ipeps-button.refreshing[data-v-d3aab2b1]{animation:pulse-d3aab2b1 1.5s cubic-bezier(.4,0,.6,1) infinite}.ipeps-loading[data-v-d3aab2b1],.ipeps-empty[data-v-d3aab2b1]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.ipeps-loading[data-v-d3aab2b1]{padding:6rem 1.25rem}.ipeps-loading .loading-spinner[data-v-d3aab2b1]{width:2.5rem;height:2.5rem;border:2px solid color-mix(in srgb,var(--ipe-modal-border-color) 30%,transparent);border-top-color:var(--ipe-modal-accent);border-radius:50%;animation:spin-d3aab2b1 .8s linear infinite}.ipeps-loading .loading-text[data-v-d3aab2b1]{color:var(--ipe-modal-muted);font-size:.875rem;font-weight:500}.ipeps-empty[data-v-d3aab2b1]{padding:4rem 1.25rem}.ipeps-empty .plugin-empty-icon[data-v-d3aab2b1],.ipeps-empty .icon[data-v-d3aab2b1]{font-size:3rem;opacity:.25;filter:grayscale(.3)}.ipeps-empty .plugin-empty-text[data-v-d3aab2b1],.ipeps-empty .text[data-v-d3aab2b1]{color:var(--ipe-modal-muted);font-size:.9375rem;font-weight:500}.ipeps-empty .description[data-v-d3aab2b1]{margin-top:.5rem;color:var(--ipe-modal-muted);font-size:.8125rem;opacity:.8}@keyframes spin-d3aab2b1{to{transform:rotate(360deg)}}@keyframes pulse-d3aab2b1{0%,to{opacity:1}50%{opacity:.6}}.ipeps-list[data-v-d3aab2b1]{display:flex;flex-direction:column;gap:.875rem}.ipeps-item[data-v-d3aab2b1]{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--ipe-modal-border-color);border-radius:8px;background:var(--ipe-modal-secondary-bg);transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 2%,transparent)}.ipeps-item[data-v-d3aab2b1]:hover{background:color-mix(in srgb,var(--ipe-modal-accent) 3%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-accent) 35%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-text) 6%,transparent)}.ipeps-item.installed[data-v-d3aab2b1]{background:color-mix(in srgb,var(--ipe-modal-success) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 30%,var(--ipe-modal-border-color))}.ipeps-item.installed[data-v-d3aab2b1]:hover{background:color-mix(in srgb,var(--ipe-modal-success) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-success) 60%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-success) 10%,transparent)}.ipeps-item.broken[data-v-d3aab2b1]{background:color-mix(in srgb,var(--ipe-modal-warning) 4%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 35%,var(--ipe-modal-border-color));border-style:dashed}.ipeps-item.broken[data-v-d3aab2b1]:hover{background:color-mix(in srgb,var(--ipe-modal-warning) 6%,var(--ipe-modal-secondary-bg));border-color:color-mix(in srgb,var(--ipe-modal-warning) 70%,var(--ipe-modal-border-color));box-shadow:0 4px 12px color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent)}.ipeps-item .item-name[data-v-d3aab2b1]{font-weight:600;font-size:.9375rem;color:var(--ipe-modal-text);line-height:1.4;letter-spacing:-.01em}.ipeps-item .item-desc[data-v-d3aab2b1]{font-size:.8125rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-item .item-meta[data-v-d3aab2b1]{font-size:.75rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-tags[data-v-d3aab2b1]{display:flex;flex-wrap:wrap;gap:.375rem}.ipeps-tag[data-v-d3aab2b1]{font-size:.6875rem;font-family:monospace;margin-bottom:.375rem;padding:.1875rem .5rem;border-radius:4px;display:inline-block;border:1px solid color-mix(in srgb,var(--ipe-modal-border-color) 70%,transparent);background:color-mix(in srgb,var(--ipe-modal-text) 2%,var(--ipe-modal-bg));color:var(--ipe-modal-muted);transition:all .15s cubic-bezier(.4,0,.2,1);line-height:1.4}.ipeps-tag[data-v-d3aab2b1]:hover{border-color:var(--ipe-modal-border-color);background:color-mix(in srgb,var(--ipe-modal-text) 4%,var(--ipe-modal-bg))}.ipeps-badge[data-v-d3aab2b1]{font-size:.6875rem;font-weight:600;padding:.1875rem .5rem;border-radius:4px;line-height:1.4}.ipeps-badge.is-installed[data-v-d3aab2b1]{color:var(--ipe-modal-success);background:color-mix(in srgb,var(--ipe-modal-success) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-success) 20%,transparent)}.ipeps-badge.is-broken[data-v-d3aab2b1]{color:var(--ipe-modal-warning);background:color-mix(in srgb,var(--ipe-modal-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-warning) 25%,transparent)}.ipeps-actions[data-v-d3aab2b1]{display:flex;gap:.5rem;align-items:center}.plugin-info[data-v-d3aab2b1]{flex:1;min-width:0}.plugin-header[data-v-d3aab2b1]{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.registry-tag[data-v-d3aab2b1]{color:var(--ipe-modal-accent);background:color-mix(in srgb,var(--ipe-modal-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--ipe-modal-accent) 18%,transparent);text-decoration:none;transition:all .2s ease}.registry-tag[data-v-d3aab2b1]:hover{background:color-mix(in srgb,var(--ipe-modal-accent) 12%,transparent);border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,transparent)}.registry-tag.broken[data-v-d3aab2b1]{text-decoration:line-through;opacity:.65;cursor:not-allowed}.plugin-id.broken[data-v-d3aab2b1]{opacity:.65;text-decoration:line-through}.plugin-desc[data-v-d3aab2b1]{font-size:.8125rem;color:var(--ipe-modal-muted);margin-bottom:.5rem;line-height:1.6}.plugin-desc.broken-desc[data-v-d3aab2b1]{color:color-mix(in srgb,var(--ipe-modal-warning) 80%,var(--ipe-modal-text));font-style:italic}.plugin-meta[data-v-d3aab2b1]{font-size:.75rem;color:var(--ipe-modal-muted);display:flex;gap:1rem;align-items:center}.plugin-meta .version[data-v-d3aab2b1]{font-family:monospace;font-weight:500;color:color-mix(in srgb,var(--ipe-modal-text) 80%,var(--ipe-modal-muted))}.plugin-meta .author[data-v-d3aab2b1],.plugin-meta .license[data-v-d3aab2b1]{display:flex;align-items:center;gap:.25rem}#ipe-plugin-store-app[data-v-1b3d0d80]{color:var(--ipe-modal-text);font-size:.875rem}.divider-wrapper[data-v-1b3d0d80]{margin:2rem 0}.divider-wrapper .divider[data-v-1b3d0d80]{border:none;height:1px;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--ipe-modal-border-color) 40%,transparent) 10%,color-mix(in srgb,var(--ipe-modal-border-color) 60%,transparent) 50%,color-mix(in srgb,var(--ipe-modal-border-color) 40%,transparent) 90%,transparent)}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PluginStoreApp-qiSVtnBy.js","sources":["../src/plugins/plugin-store/components/ui/UIBaseButton.vue","../src/plugins/plugin-store/components/RegistryManager.vue","../src/plugins/plugin-store/components/PluginInstallManager.vue"],"sourcesContent":["<template lang=\"pug\">\nbutton.ipeps-button(:class='buttonClass')\n slot\n</template>\n\n<script setup lang=\"ts\" vapor>\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n variant?: 'neutral' | 'primary' | 'danger' | 'ghost' | 'accent'\n active?: boolean\n }>(),\n {\n variant: 'neutral',\n active: false,\n }\n)\n\nconst buttonClass = computed(() => ({\n 'is-active': props.active,\n 'is-danger': props.variant === 'danger',\n 'is-primary': props.variant === 'primary',\n 'is-ghost': props.variant === 'ghost',\n 'is-accent': props.variant === 'accent',\n}))\n</script>\n","<template lang=\"pug\">\n#ipe-registry-manager\n .ipeps-header\n .ipeps-header-title {{ $`Registries` }}\n .ipeps-input-wrapper\n input.ipeps-input.with-icon(\n v-model.trim='inputValue',\n type='url',\n :placeholder='$`Add registry URL` + ` (https://...)`',\n :disabled='isAdding'\n )\n .ipeps-input-icon 📦\n UIBaseButton(@click='onAddRegistry', :disabled='isAdding || !inputValue', variant='primary') {{ isAdding ? $`Adding...` : $`Add` }}\n\n .ipeps-list(v-if='registries.length')\n .ipeps-item(v-for='reg in registries', :key='reg.registryUrl')\n .registry-info\n .item-name {{ reg.label }}\n .item-desc\n .homepage: a(v-if='reg.homepage', :href='reg.homepage', target='_blank') {{ reg.homepage }}\n .url {{ reg.registryUrl }}\n .item-meta {{ reg.packages.length }} packages\n .ipeps-actions\n UIBaseButton(@click='onRemoveRegistry(reg.registryUrl)', variant='danger') {{ $`Remove` }}\n .ipeps-empty(v-else)\n .icon 🗂️\n .text {{ $`No registries configured` }}\n .description\n UIBaseButton(\n @click='onAddOfficialRegistry',\n variant='primary',\n style='padding: 0.25rem 0.5rem'\n ) {{ $`Setup default registry` }}\n</template>\n\n<script setup lang=\"ts\" vapor>\nimport { onMounted, ref } from 'vue'\nimport { h } from 'jsx-dom'\nimport type { PluginStoreRegistry } from '../schema.js'\nimport UIBaseButton from './ui/UIBaseButton.vue'\n\nconst ctx = useIPE()\nconst $ = ctx.$\nconst $$ = ctx.$$\n\ninterface RegistryViewModel extends PluginStoreRegistry {\n registryUrl: string\n label: string\n}\n\nconst registries = ref<RegistryViewModel[]>([])\nconst inputValue = ref('')\nconst isAdding = ref(false)\n\nconst urlToLabel = (u: string) => {\n try {\n return new URL(u).hostname\n } catch {\n return u\n }\n}\n\nasync function loadRegistries() {\n const urls = (await ctx.preferences.get<string[]>('pluginStore.registries')) || []\n const results = await Promise.allSettled(\n urls.map(async (url) => {\n const info = await ctx.store.getRegistryInfo(url)\n return {\n registryUrl: url,\n label: urlToLabel(url),\n ...info,\n } as RegistryViewModel\n })\n )\n registries.value = results\n .filter((r) => r.status === 'fulfilled')\n .map((r) => (r as PromiseFulfilledResult<RegistryViewModel>).value)\n}\n\nasync function onAddRegistry() {\n const url = inputValue.value.trim()\n if (!url) return\n if (registries.value.some((r) => r.registryUrl === url)) {\n ctx.modal.notify('info', { content: 'Registry already exists.' })\n return\n }\n isAdding.value = true\n try {\n // try load immediately\n const info = await ctx.store.getRegistryInfo(url, 'online_manifest', true)\n if (!info) {\n throw new Error('Invalid registry or unreachable')\n }\n const current = (await ctx.preferences.get<string[]>('pluginStore.registries')) || []\n current.push(url)\n await ctx.preferences.set('pluginStore.registries', current)\n registries.value.push({\n registryUrl: url,\n label: urlToLabel(url),\n ...info,\n })\n inputValue.value = ''\n ctx.modal.notify('success', { content: 'Registry added.' })\n } catch (e) {\n ctx.modal.notify('error', {\n content: e instanceof Error ? e.message : String(e),\n })\n } finally {\n isAdding.value = false\n }\n}\n\nasync function removeRegistryUrl(url: string) {\n const current = (await ctx.preferences.get<string[]>('pluginStore.registries')) || []\n const next = current.filter((u) => u !== url)\n await ctx.preferences.set('pluginStore.registries', next)\n registries.value = registries.value.filter((r) => r.registryUrl !== url)\n}\n\nasync function onRemoveRegistry(url: string) {\n const installed =\n (await ctx.preferences.get<{ registry: string; id: string }[]>('pluginStore.plugins')) || []\n const installedOfReg = installed.filter((p) => p.registry === url)\n if (installedOfReg.length === 0) {\n ctx.modal.confirm(\n {\n title: $$`plugin-store.remove-registry.title`,\n content: $$`plugin-store.remove-registry.tip-content` + `\\n${url}`,\n cancelBtn: {\n label: $`Cancel`,\n className: 'is-ghost',\n },\n okBtn: {\n label: $`Remove`,\n className: 'is-danger',\n },\n },\n async (ok) => {\n if (!ok) return\n await removeRegistryUrl(url)\n ctx.modal.notify('success', { content: $$`plugin-store.remove-registry.remove-success` })\n }\n )\n return\n }\n\n ctx.modal.dialog(\n {\n title: $$`plugin-store.remove-registry.title`,\n content: h('div', { class: 'theme-ipe-prose' }, [\n h('p', {}, $$({ $1: installedOfReg.length })`plugin-store.remove-registry.confirm-content`),\n h(\n 'ul',\n {},\n installedOfReg.map((p) => h('li', {}, p.id))\n ),\n ]),\n buttons: [\n {\n label: $$`plugin-store.remove-registry.buttons.remove-only`,\n className: 'is-danger is-ghost',\n method: async (_, m) => {\n await removeRegistryUrl(url)\n ctx.modal.notify('success', {\n content: $$`plugin-store.remove-registry.remove-success`,\n })\n m.close()\n },\n },\n {\n label: $$`plugin-store.remove-registry.buttons.remove-and-uninstall`,\n className: 'is-danger',\n method: async (_, m) => {\n await removeRegistryUrl(url)\n for (const p of installedOfReg) {\n try {\n await ctx.store.uninstallAndRemovePreference(p.registry, p.id)\n } catch (e) {\n // best-effort; notify but continue\n ctx.modal.notify('error', {\n content:\n e instanceof Error\n ? `Failed to uninstall ${p.id}: ${e.message}`\n : `Failed to uninstall ${p.id}`,\n })\n }\n }\n ctx.modal.notify('success', {\n content: $$({\n $1: installedOfReg.length,\n })`plugin-store.remove-registry.remove-with-plugins-success`,\n })\n m.close()\n },\n },\n ],\n },\n () => {}\n )\n}\n\nfunction onPreferencesChanged(payload: { changes: Record<string, unknown> }) {\n const regs = payload.changes['pluginStore.registries'] as string[]\n if (Array.isArray(regs)) {\n loadRegistries()\n }\n}\n\nfunction onAddOfficialRegistry() {\n const url = Endpoints.PLUGIN_REGISTRY_URL\n inputValue.value = url\n onAddRegistry()\n}\n\nonMounted(() => {\n loadRegistries()\n ctx.on('preferences/changed', onPreferencesChanged)\n})\n</script>\n\n<style scoped lang=\"scss\">\n@use './style.scss' as *;\n\n.registry-info {\n flex: 1;\n min-width: 0;\n .homepage {\n margin-top: 0.25rem;\n a {\n color: var(--ipe-modal-accent);\n text-decoration: none;\n font-size: 0.8125rem;\n transition: all 0.2s ease;\n &:hover {\n color: color-mix(in srgb, var(--ipe-modal-accent) 80%, var(--ipe-modal-text));\n text-decoration: underline;\n }\n }\n }\n .url {\n font-family: monospace;\n font-size: 0.75rem;\n color: var(--ipe-modal-muted);\n margin-top: 0.125rem;\n word-break: break-all;\n }\n}\n</style>\n","<template lang=\"pug\">\n#ipe-plugin-install-manager\n .ipeps-header\n .ipeps-header-title {{ $`Plugins` }}\n .ipeps-input-wrapper\n input.ipeps-input.with-icon(\n v-model.trim='searchInput',\n type='text',\n placeholder='{{ $`Search plugins...` }}',\n :disabled='!pluginsFromRegistries.length'\n )\n .ipeps-input-icon 🔍\n button.ipeps-button(\n @click='refreshRegistries',\n :disabled='isRefreshing || !hasRegistries',\n :class='{ refreshing: isRefreshing }',\n variant='primary'\n ) {{ isRefreshing ? $`Refreshing...` : $`Refresh` }}\n\n .ipeps-loading(v-if='!hasRegistries && !firstInit')\n .loading-spinner\n .loading-text {{ $`Loading...` }}\n\n .ipeps-list(v-else-if='allPluginsToDisplay.length')\n .ipeps-item(\n v-for='plugin in allPluginsToDisplay',\n :key='plugin._key',\n :class='{ installed: isInstalledKey(plugin._key), broken: plugin.isBroken }'\n )\n .plugin-info\n .plugin-header\n .item-name {{ plugin.name || plugin.id }}\n span.ipeps-badge(\n v-if='isInstalledKey(plugin._key) || plugin.isBroken',\n :class='{ \"is-installed\": isInstalledKey(plugin._key), \"is-broken\": plugin.isBroken }'\n ) {{ plugin.isBroken ? $$`plugin-store.tags.broken` : $$`plugin-store.tags.installed` }}\n .ipeps-tags\n a.ipeps-tag.registry-tag(\n v-if='plugin.registryHomepage && !plugin.isRegistryMissing',\n :href='plugin.registryHomepage',\n target='_blank',\n :title='plugin.registryLabel'\n ) {{ plugin.registryLabel }}\n span.ipeps-tag.registry-tag(\n v-else,\n :title='plugin.registryLabel',\n :class='{ broken: plugin.isRegistryMissing }'\n ) {{ plugin.registryLabel }}\n .plugin-id.ipeps-tag(:class='{ broken: plugin.isBroken && !plugin.isRegistryMissing }') {{ plugin.id }}\n .plugin-desc(:class='{ \"broken-desc\": plugin.isBroken }') {{ getDesc(plugin) }}\n .plugin-meta\n span.version(v-if='plugin.version') v{{ plugin.version }}\n span.author(v-if='plugin.author') 👤 {{ plugin.author }}\n span.license(v-if='plugin.license') 📜 {{ plugin.license }}\n UIBaseButton(\n :active='isInstalledKey(plugin._key)',\n :variant='isInstalledKey(plugin._key) ? \"danger\" : \"primary\"',\n @click='togglePluginByKey(plugin)'\n ) {{ isInstalledKey(plugin._key) ? $`Remove` : $`Install` }}\n\n .ipeps-empty(v-else)\n .plugin-empty-icon 📦\n .plugin-empty-text {{ $`No matching plugins found` }}\n</template>\n\n<script setup lang=\"ts\" vapor>\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\nimport type { PluginStorePackage, PluginStoreRegistry } from '../schema.js'\nimport UIBaseButton from './ui/UIBaseButton.vue'\n\ninterface RegistryWithUrl extends PluginStoreRegistry {\n registryUrl: string\n}\ninterface PluginIdentifier {\n registry: string\n id: string\n}\n\ninterface PluginViewModel extends PluginStorePackage {\n _key: string\n registry: string\n registryHomepage: string\n registryLabel: string\n isBroken: boolean\n isRegistryMissing: boolean\n}\n\n// --- state ---\nconst ctx = useIPE()\nconst $ = ctx.$\nconst $$ = ctx.$$\nconst registryInfos = ref<RegistryWithUrl[]>([])\nconst installedPlugins = ref<PluginIdentifier[]>([])\nconst searchInput = ref('')\nconst isRefreshing = ref(false)\n\n// helpers\nconst makeKey = (r: string, id: string) => `${r}\\n${id}` // stable + O(1)\n\nconst installedKeySet = computed(\n () => new Set(installedPlugins.value.map((p) => makeKey(p.registry, p.id)))\n)\nconst isInstalledKey = (key: string) => installedKeySet.value.has(key)\n\nconst urlToLabel = (registryUrl: string) => {\n try {\n return new URL(registryUrl).hostname\n } catch {\n return registryUrl\n }\n}\n\nconst firstInit = ref(false)\nconst hasRegistries = computed(() => registryInfos.value.length > 0)\n\nconst pluginsFromRegistries = computed<PluginViewModel[]>(\n () =>\n registryInfos.value.flatMap((reg) =>\n (reg.packages || []).map((pkg) => ({\n ...pkg,\n _key: makeKey(reg.registryUrl, pkg.id),\n registry: reg.registryUrl,\n registryHomepage: reg.homepage,\n registryLabel: urlToLabel(reg.registryUrl),\n isBroken: false,\n isRegistryMissing: false,\n }))\n ) as PluginViewModel[]\n)\n\n// merge normal + broken, and normalize once here\nconst normalizedPlugins = computed(() => {\n const q = searchInput.value.trim().toLowerCase()\n\n const all: Array<any> = pluginsFromRegistries.value\n\n // broken installed plugins (installed but not available now)\n const availableKeys = new Set(all.map((p) => p._key))\n const availableRegs = new Set(registryInfos.value.map((r) => r.registryUrl))\n\n const broken = installedPlugins.value\n .filter((p) => !availableKeys.has(makeKey(p.registry, p.id)))\n .map((p) => {\n const regInfo = registryInfos.value.find((r) => r.registryUrl === p.registry)\n return {\n id: p.id,\n name: undefined,\n description: undefined,\n version: undefined,\n author: undefined,\n license: undefined,\n _key: makeKey(p.registry, p.id),\n registry: p.registry,\n registryHomepage: regInfo?.homepage,\n registryLabel: urlToLabel(p.registry),\n isBroken: true,\n isRegistryMissing: !availableRegs.has(p.registry),\n }\n })\n\n const filtered = (list: any[]) => {\n if (!q) return list\n return list.filter(\n (p) =>\n (p.name && p.name.toLowerCase().includes(q)) ||\n (p.id && p.id.toLowerCase().includes(q)) ||\n (p.description && p.description.toLowerCase().includes(q)) ||\n (p.author && p.author.toLowerCase().includes(q)) ||\n (p.registry && p.registry.toLowerCase().includes(q))\n )\n }\n\n // broken on top\n return [...filtered(broken), ...filtered(all)]\n})\n\nconst allPluginsToDisplay = computed(() => normalizedPlugins.value)\n\nconst getDesc = (p: any) => {\n if (p.description) return p.description\n if (!p.isBroken) return ''\n return p.isRegistryMissing\n ? $$`plugin-store.broken.registry-unavailable`\n : $$`plugin-store.broken.plugin-removed`\n}\n\n// actions\nconst enablePlugin = async (registry: string, id: string) => {\n ctx.store.installAndSetPreference(registry, id)\n}\nconst disablePlugin = async (registry: string, id: string) => {\n ctx.store.uninstallAndRemovePreference(registry, id)\n}\nconst togglePlugin = (registry: string, id: string) =>\n isInstalledKey(makeKey(registry, id)) ? disablePlugin(registry, id) : enablePlugin(registry, id)\nconst togglePluginByKey = (p: any) => togglePlugin(p.registry, p.id)\n\nconst refreshRegistries = async () => {\n if (isRefreshing.value) return\n if (registryInfos.value.length === 0) {\n ctx.modal.notify('info', {\n content: 'No registry configured. Please add a registry first.',\n })\n return\n }\n\n isRefreshing.value = true\n const results = await ctx.store.refreshAllRegistryCaches()\n const okResults = Object.entries(results).filter(([_, r]) => r !== null)\n registryInfos.value = okResults.map(([url, r]) => ({\n ...r!,\n registryUrl: url,\n }))\n const failedUrls = Object.entries(results)\n .filter(([_, r]) => r === null)\n .map(([url]) => url)\n isRefreshing.value = false\n\n if (okResults.length === 0) {\n ctx.modal.notify('error', {\n content: 'All registries failed to refresh',\n })\n } else {\n ctx.modal.notify('success', {\n content: `${okResults.length} ${okResults.length === 1 ? 'registry' : 'registries'} refreshed successfully.`,\n })\n if (failedUrls.length > 0) {\n ctx.modal.notify('warning', {\n content: `${failedUrls.length} ${failedUrls.length === 1 ? 'registry' : 'registries'} failed to refresh:\\n${failedUrls.join('\\n')}`,\n })\n }\n }\n}\n\n// init\nconst init = async () => {\n firstInit.value = false\n const urls = (await ctx.store.ctx.preferences.get('pluginStore.registries')) || []\n const regResults = await Promise.allSettled(\n urls.map(async (url: string) => ({\n ...(await ctx.store.getRegistryInfo(url)),\n registryUrl: url,\n }))\n )\n registryInfos.value = regResults\n .filter((r) => r.status === 'fulfilled')\n .map((r) => (r as PromiseFulfilledResult<RegistryWithUrl>).value)\n\n installedPlugins.value = (await ctx.preferences.get('pluginStore.plugins')) || []\n\n firstInit.value = true\n}\n\nfunction onPreferencesChanged(payload: { changes: Record<string, unknown> }) {\n const regs = payload.changes['pluginStore.registries'] as string[]\n const plugins = payload.changes['pluginStore.plugins'] as PluginIdentifier[]\n if (Array.isArray(plugins)) installedPlugins.value = plugins\n if (Array.isArray(regs)) {\n init()\n }\n}\n\nonMounted(() => {\n init()\n ctx.on('preferences/changed', onPreferencesChanged)\n})\nonBeforeUnmount(() => {})\n</script>\n\n<style scoped lang=\"scss\">\n@use './style.scss' as *;\n\n.plugin-info {\n flex: 1;\n min-width: 0;\n}\n.plugin-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.375rem;\n}\n.registry-tag {\n color: var(--ipe-modal-accent);\n background: color-mix(in srgb, var(--ipe-modal-accent) 8%, transparent);\n border: 1px solid color-mix(in srgb, var(--ipe-modal-accent) 18%, transparent);\n text-decoration: none;\n transition: all 0.2s ease;\n &:hover {\n background: color-mix(in srgb, var(--ipe-modal-accent) 12%, transparent);\n border-color: color-mix(in srgb, var(--ipe-modal-accent) 30%, transparent);\n }\n &.broken {\n text-decoration: line-through;\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n.plugin-id {\n &.broken {\n opacity: 0.65;\n text-decoration: line-through;\n }\n}\n.plugin-desc {\n font-size: 0.8125rem;\n color: var(--ipe-modal-muted);\n margin-bottom: 0.5rem;\n line-height: 1.6;\n &.broken-desc {\n color: color-mix(in srgb, var(--ipe-modal-warning) 80%, var(--ipe-modal-text));\n font-style: italic;\n }\n}\n.plugin-meta {\n font-size: 0.75rem;\n color: var(--ipe-modal-muted);\n display: flex;\n gap: 1rem;\n align-items: center;\n .version {\n font-family: monospace;\n font-weight: 500;\n color: color-mix(in srgb, var(--ipe-modal-text) 80%, var(--ipe-modal-muted));\n }\n .author {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n .license {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n}\n</style>\n"],"names":["props","__props","buttonClass","computed","ctx","useIPE","$","$$","registries","ref","inputValue","isAdding","urlToLabel","u","loadRegistries","urls","results","url","info","r","onAddRegistry","current","e","removeRegistryUrl","next","onRemoveRegistry","installedOfReg","p","ok","h","_","m","onPreferencesChanged","payload","regs","onAddOfficialRegistry","Endpoints","onMounted","registryInfos","installedPlugins","searchInput","isRefreshing","makeKey","id","installedKeySet","isInstalledKey","key","registryUrl","firstInit","hasRegistries","pluginsFromRegistries","reg","pkg","normalizedPlugins","q","all","availableKeys","availableRegs","broken","regInfo","filtered","list","allPluginsToDisplay","getDesc","enablePlugin","registry","disablePlugin","togglePlugin","togglePluginByKey","refreshRegistries","okResults","failedUrls","init","regResults","plugins","onBeforeUnmount"],"mappings":";;;;;;;;;;;AAQA,UAAMA,IAAQC,GAWRC,IAAcC,EAAS,OAAO;AAAA,MAClC,aAAaH,EAAM;AAAA,MACnB,aAAaA,EAAM,YAAY;AAAA,MAC/B,cAAcA,EAAM,YAAY;AAAA,MAChC,YAAYA,EAAM,YAAY;AAAA,MAC9B,aAAaA,EAAM,YAAY;AAAA,IAAA,EAC/B;;;;;;;;;;;;;;;;ACgBF,UAAMI,IAAMC,EAAA,GACNC,IAAIF,EAAI,GACRG,IAAKH,EAAI,IAOTI,IAAaC,EAAyB,EAAE,GACxCC,IAAaD,EAAI,EAAE,GACnBE,IAAWF,EAAI,EAAK,GAEpBG,IAAa,CAACC,MAAc;AAChC,UAAI;AACF,eAAO,IAAI,IAAIA,CAAC,EAAE;AAAA,MACpB,QAAQ;AACN,eAAOA;AAAA,MACT;AAAA,IACF;AAEA,mBAAeC,IAAiB;AAC9B,YAAMC,IAAQ,MAAMX,EAAI,YAAY,IAAc,wBAAwB,KAAM,CAAA,GAC1EY,IAAU,MAAM,QAAQ;AAAA,QAC5BD,EAAK,IAAI,OAAOE,MAAQ;AACtB,gBAAMC,IAAO,MAAMd,EAAI,MAAM,gBAAgBa,CAAG;AAChD,iBAAO;AAAA,YACL,aAAaA;AAAA,YACb,OAAOL,EAAWK,CAAG;AAAA,YACrB,GAAGC;AAAA,UAAA;AAAA,QAEP,CAAC;AAAA,MAAA;AAEH,MAAAV,EAAW,QAAQQ,EAChB,OAAO,CAACG,MAAMA,EAAE,WAAW,WAAW,EACtC,IAAI,CAACA,MAAOA,EAAgD,KAAK;AAAA,IACtE;AAEA,mBAAeC,IAAgB;AAC7B,YAAMH,IAAMP,EAAW,MAAM,KAAA;AAC7B,UAAKO,GACL;AAAA,YAAIT,EAAW,MAAM,KAAK,CAACW,MAAMA,EAAE,gBAAgBF,CAAG,GAAG;AACvD,UAAAb,EAAI,MAAM,OAAO,QAAQ,EAAE,SAAS,4BAA4B;AAChE;AAAA,QACF;AACA,QAAAO,EAAS,QAAQ;AACjB,YAAI;AAEF,gBAAMO,IAAO,MAAMd,EAAI,MAAM,gBAAgBa,GAAK,mBAAmB,EAAI;AACzE,cAAI,CAACC;AACH,kBAAM,IAAI,MAAM,iCAAiC;AAEnD,gBAAMG,IAAW,MAAMjB,EAAI,YAAY,IAAc,wBAAwB,KAAM,CAAA;AACnF,UAAAiB,EAAQ,KAAKJ,CAAG,GAChB,MAAMb,EAAI,YAAY,IAAI,0BAA0BiB,CAAO,GAC3Db,EAAW,MAAM,KAAK;AAAA,YACpB,aAAaS;AAAA,YACb,OAAOL,EAAWK,CAAG;AAAA,YACrB,GAAGC;AAAA,UAAA,CACJ,GACDR,EAAW,QAAQ,IACnBN,EAAI,MAAM,OAAO,WAAW,EAAE,SAAS,mBAAmB;AAAA,QAC5D,SAASkB,GAAG;AACV,UAAAlB,EAAI,MAAM,OAAO,SAAS;AAAA,YACxB,SAASkB,aAAa,QAAQA,EAAE,UAAU,OAAOA,CAAC;AAAA,UAAA,CACnD;AAAA,QACH,UAAA;AACE,UAAAX,EAAS,QAAQ;AAAA,QACnB;AAAA;AAAA,IACF;AAEA,mBAAeY,EAAkBN,GAAa;AAE5C,YAAMO,KADW,MAAMpB,EAAI,YAAY,IAAc,wBAAwB,KAAM,CAAA,GAC9D,OAAO,CAACS,MAAMA,MAAMI,CAAG;AAC5C,YAAMb,EAAI,YAAY,IAAI,0BAA0BoB,CAAI,GACxDhB,EAAW,QAAQA,EAAW,MAAM,OAAO,CAACW,MAAMA,EAAE,gBAAgBF,CAAG;AAAA,IACzE;AAEA,mBAAeQ,EAAiBR,GAAa;AAG3C,YAAMS,KADH,MAAMtB,EAAI,YAAY,IAAwC,qBAAqB,KAAM,CAAA,GAC3D,OAAO,CAACuB,MAAMA,EAAE,aAAaV,CAAG;AACjE,UAAIS,EAAe,WAAW,GAAG;AAC/B,QAAAtB,EAAI,MAAM;AAAA,UACR;AAAA,YACE,OAAOG;AAAA,YACP,SAASA,8CAA+C;AAAA,EAAKU,CAAG;AAAA,YAChE,WAAW;AAAA,cACT,OAAOX;AAAA,cACP,WAAW;AAAA,YAAA;AAAA,YAEb,OAAO;AAAA,cACL,OAAOA;AAAA,cACP,WAAW;AAAA,YAAA;AAAA,UACb;AAAA,UAEF,OAAOsB,MAAO;AACZ,YAAKA,MACL,MAAML,EAAkBN,CAAG,GAC3Bb,EAAI,MAAM,OAAO,WAAW,EAAE,SAASG,gDAAiD;AAAA,UAC1F;AAAA,QAAA;AAEF;AAAA,MACF;AAEA,MAAAH,EAAI,MAAM;AAAA,QACR;AAAA,UACE,OAAOG;AAAA,UACP,SAASsB,EAAE,OAAO,EAAE,OAAO,qBAAqB;AAAA,YAC9CA,EAAE,KAAK,CAAA,GAAItB,EAAG,EAAE,IAAImB,EAAe,OAAA,CAAQ,+CAA+C;AAAA,YAC1FG;AAAAA,cACE;AAAA,cACA,CAAA;AAAA,cACAH,EAAe,IAAI,CAACC,MAAME,EAAE,MAAM,CAAA,GAAIF,EAAE,EAAE,CAAC;AAAA,YAAA;AAAA,UAC7C,CACD;AAAA,UACD,SAAS;AAAA,YACP;AAAA,cACE,OAAOpB;AAAA,cACP,WAAW;AAAA,cACX,QAAQ,OAAOuB,GAAGC,MAAM;AACtB,sBAAMR,EAAkBN,CAAG,GAC3Bb,EAAI,MAAM,OAAO,WAAW;AAAA,kBAC1B,SAASG;AAAA,gBAAA,CACV,GACDwB,EAAE,MAAA;AAAA,cACJ;AAAA,YAAA;AAAA,YAEF;AAAA,cACE,OAAOxB;AAAA,cACP,WAAW;AAAA,cACX,QAAQ,OAAOuB,GAAGC,MAAM;AACtB,sBAAMR,EAAkBN,CAAG;AAC3B,2BAAWU,KAAKD;AACd,sBAAI;AACF,0BAAMtB,EAAI,MAAM,6BAA6BuB,EAAE,UAAUA,EAAE,EAAE;AAAA,kBAC/D,SAASL,GAAG;AAEV,oBAAAlB,EAAI,MAAM,OAAO,SAAS;AAAA,sBACxB,SACEkB,aAAa,QACT,uBAAuBK,EAAE,EAAE,KAAKL,EAAE,OAAO,KACzC,uBAAuBK,EAAE,EAAE;AAAA,oBAAA,CAClC;AAAA,kBACH;AAEF,gBAAAvB,EAAI,MAAM,OAAO,WAAW;AAAA,kBAC1B,SAASG,EAAG;AAAA,oBACV,IAAImB,EAAe;AAAA,kBAAA,CACpB;AAAA,gBAAA,CACF,GACDK,EAAE,MAAA;AAAA,cACJ;AAAA,YAAA;AAAA,UACF;AAAA,QACF;AAAA,QAEF,MAAM;AAAA,QAAC;AAAA,MAAA;AAAA,IAEX;AAEA,aAASC,EAAqBC,GAA+C;AAC3E,YAAMC,IAAOD,EAAQ,QAAQ,wBAAwB;AACrD,MAAI,MAAM,QAAQC,CAAI,KACpBpB,EAAA;AAAA,IAEJ;AAEA,aAASqB,IAAwB;AAC/B,YAAMlB,IAAMmB,GAAU;AACtB,MAAA1B,EAAW,QAAQO,GACnBG,EAAA;AAAA,IACF;AAEA,WAAAiB,EAAU,MAAM;AACd,MAAAvB,EAAA,GACAV,EAAI,GAAG,uBAAuB4B,CAAoB;AAAA,IACpD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjID,UAAM5B,IAAMC,EAAA,GACNC,IAAIF,EAAI,GACRG,IAAKH,EAAI,IACTkC,IAAgB7B,EAAuB,EAAE,GACzC8B,IAAmB9B,EAAwB,EAAE,GAC7C+B,IAAc/B,EAAI,EAAE,GACpBgC,IAAehC,EAAI,EAAK,GAGxBiC,IAAU,CAACvB,GAAWwB,MAAe,GAAGxB,CAAC;AAAA,EAAKwB,CAAE,IAEhDC,IAAkBzC;AAAA,MACtB,MAAM,IAAI,IAAIoC,EAAiB,MAAM,IAAI,CAACZ,MAAMe,EAAQf,EAAE,UAAUA,EAAE,EAAE,CAAC,CAAC;AAAA,IAAA,GAEtEkB,IAAiB,CAACC,MAAgBF,EAAgB,MAAM,IAAIE,CAAG,GAE/DlC,IAAa,CAACmC,MAAwB;AAC1C,UAAI;AACF,eAAO,IAAI,IAAIA,CAAW,EAAE;AAAA,MAC9B,QAAQ;AACN,eAAOA;AAAA,MACT;AAAA,IACF,GAEMC,IAAYvC,EAAI,EAAK,GACrBwC,IAAgB9C,EAAS,MAAMmC,EAAc,MAAM,SAAS,CAAC,GAE7DY,IAAwB/C;AAAA,MAC5B,MACEmC,EAAc,MAAM;AAAA,QAAQ,CAACa,OAC1BA,EAAI,YAAY,CAAA,GAAI,IAAI,CAACC,OAAS;AAAA,UACjC,GAAGA;AAAA,UACH,MAAMV,EAAQS,EAAI,aAAaC,EAAI,EAAE;AAAA,UACrC,UAAUD,EAAI;AAAA,UACd,kBAAkBA,EAAI;AAAA,UACtB,eAAevC,EAAWuC,EAAI,WAAW;AAAA,UACzC,UAAU;AAAA,UACV,mBAAmB;AAAA,QAAA,EACnB;AAAA,MAAA;AAAA,IACJ,GAIEE,IAAoBlD,EAAS,MAAM;AACvC,YAAMmD,IAAId,EAAY,MAAM,KAAA,EAAO,YAAA,GAE7Be,IAAkBL,EAAsB,OAGxCM,IAAgB,IAAI,IAAID,EAAI,IAAI,CAAC5B,MAAMA,EAAE,IAAI,CAAC,GAC9C8B,IAAgB,IAAI,IAAInB,EAAc,MAAM,IAAI,CAACnB,MAAMA,EAAE,WAAW,CAAC,GAErEuC,IAASnB,EAAiB,MAC7B,OAAO,CAACZ,MAAM,CAAC6B,EAAc,IAAId,EAAQf,EAAE,UAAUA,EAAE,EAAE,CAAC,CAAC,EAC3D,IAAI,CAACA,MAAM;AACV,cAAMgC,IAAUrB,EAAc,MAAM,KAAK,CAACnB,OAAMA,GAAE,gBAAgBQ,EAAE,QAAQ;AAC5E,eAAO;AAAA,UACL,IAAIA,EAAE;AAAA,UACN,MAAM;AAAA,UACN,aAAa;AAAA,UACb,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,MAAMe,EAAQf,EAAE,UAAUA,EAAE,EAAE;AAAA,UAC9B,UAAUA,EAAE;AAAA,UACZ,kBAAkBgC,GAAS;AAAA,UAC3B,eAAe/C,EAAWe,EAAE,QAAQ;AAAA,UACpC,UAAU;AAAA,UACV,mBAAmB,CAAC8B,EAAc,IAAI9B,EAAE,QAAQ;AAAA,QAAA;AAAA,MAEpD,CAAC,GAEGiC,IAAW,CAACC,MACXP,IACEO,EAAK;AAAA,QACV,CAAClC,MACEA,EAAE,QAAQA,EAAE,KAAK,YAAA,EAAc,SAAS2B,CAAC,KACzC3B,EAAE,MAAMA,EAAE,GAAG,YAAA,EAAc,SAAS2B,CAAC,KACrC3B,EAAE,eAAeA,EAAE,YAAY,YAAA,EAAc,SAAS2B,CAAC,KACvD3B,EAAE,UAAUA,EAAE,OAAO,YAAA,EAAc,SAAS2B,CAAC,KAC7C3B,EAAE,YAAYA,EAAE,SAAS,cAAc,SAAS2B,CAAC;AAAA,MAAA,IAPvCO;AAYjB,aAAO,CAAC,GAAGD,EAASF,CAAM,GAAG,GAAGE,EAASL,CAAG,CAAC;AAAA,IAC/C,CAAC,GAEKO,IAAsB3D,EAAS,MAAMkD,EAAkB,KAAK,GAE5DU,IAAU,CAACpC,MACXA,EAAE,cAAoBA,EAAE,cACvBA,EAAE,WACAA,EAAE,oBACLpB,8CACAA,wCAHoB,IAOpByD,IAAe,OAAOC,GAAkBtB,MAAe;AAC3D,MAAAvC,EAAI,MAAM,wBAAwB6D,GAAUtB,CAAE;AAAA,IAChD,GACMuB,IAAgB,OAAOD,GAAkBtB,MAAe;AAC5D,MAAAvC,EAAI,MAAM,6BAA6B6D,GAAUtB,CAAE;AAAA,IACrD,GACMwB,IAAe,CAACF,GAAkBtB,MACtCE,EAAeH,EAAQuB,GAAUtB,CAAE,CAAC,IAAIuB,EAAcD,GAAUtB,CAAE,IAAIqB,EAAaC,GAAUtB,CAAE,GAC3FyB,IAAoB,CAACzC,MAAWwC,EAAaxC,EAAE,UAAUA,EAAE,EAAE,GAE7D0C,IAAoB,YAAY;AACpC,UAAI5B,EAAa,MAAO;AACxB,UAAIH,EAAc,MAAM,WAAW,GAAG;AACpC,QAAAlC,EAAI,MAAM,OAAO,QAAQ;AAAA,UACvB,SAAS;AAAA,QAAA,CACV;AACD;AAAA,MACF;AAEA,MAAAqC,EAAa,QAAQ;AACrB,YAAMzB,IAAU,MAAMZ,EAAI,MAAM,yBAAA,GAC1BkE,IAAY,OAAO,QAAQtD,CAAO,EAAE,OAAO,CAAC,CAACc,GAAGX,CAAC,MAAMA,MAAM,IAAI;AACvE,MAAAmB,EAAc,QAAQgC,EAAU,IAAI,CAAC,CAACrD,GAAKE,CAAC,OAAO;AAAA,QACjD,GAAGA;AAAA,QACH,aAAaF;AAAA,MAAA,EACb;AACF,YAAMsD,IAAa,OAAO,QAAQvD,CAAO,EACtC,OAAO,CAAC,CAACc,GAAGX,CAAC,MAAMA,MAAM,IAAI,EAC7B,IAAI,CAAC,CAACF,CAAG,MAAMA,CAAG;AACrB,MAAAwB,EAAa,QAAQ,IAEjB6B,EAAU,WAAW,IACvBlE,EAAI,MAAM,OAAO,SAAS;AAAA,QACxB,SAAS;AAAA,MAAA,CACV,KAEDA,EAAI,MAAM,OAAO,WAAW;AAAA,QAC1B,SAAS,GAAGkE,EAAU,MAAM,IAAIA,EAAU,WAAW,IAAI,aAAa,YAAY;AAAA,MAAA,CACnF,GACGC,EAAW,SAAS,KACtBnE,EAAI,MAAM,OAAO,WAAW;AAAA,QAC1B,SAAS,GAAGmE,EAAW,MAAM,IAAIA,EAAW,WAAW,IAAI,aAAa,YAAY;AAAA,EAAwBA,EAAW,KAAK;AAAA,CAAI,CAAC;AAAA,MAAA,CAClI;AAAA,IAGP,GAGMC,IAAO,YAAY;AACvB,MAAAxB,EAAU,QAAQ;AAClB,YAAMjC,IAAQ,MAAMX,EAAI,MAAM,IAAI,YAAY,IAAI,wBAAwB,KAAM,CAAA,GAC1EqE,IAAa,MAAM,QAAQ;AAAA,QAC/B1D,EAAK,IAAI,OAAOE,OAAiB;AAAA,UAC/B,GAAI,MAAMb,EAAI,MAAM,gBAAgBa,CAAG;AAAA,UACvC,aAAaA;AAAA,QAAA,EACb;AAAA,MAAA;AAEJ,MAAAqB,EAAc,QAAQmC,EACnB,OAAO,CAACtD,MAAMA,EAAE,WAAW,WAAW,EACtC,IAAI,CAACA,MAAOA,EAA8C,KAAK,GAElEoB,EAAiB,QAAS,MAAMnC,EAAI,YAAY,IAAI,qBAAqB,KAAM,CAAA,GAE/E4C,EAAU,QAAQ;AAAA,IACpB;AAEA,aAAShB,GAAqBC,GAA+C;AAC3E,YAAMC,IAAOD,EAAQ,QAAQ,wBAAwB,GAC/CyC,IAAUzC,EAAQ,QAAQ,qBAAqB;AACrD,MAAI,MAAM,QAAQyC,CAAO,QAAoB,QAAQA,IACjD,MAAM,QAAQxC,CAAI,KACpBsC,EAAA;AAAA,IAEJ;AAEA,WAAAnC,EAAU,MAAM;AACd,MAAAmC,EAAA,GACApE,EAAI,GAAG,uBAAuB4B,EAAoB;AAAA,IACpD,CAAC,GACD2C,GAAgB,MAAM;AAAA,IAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|