@inpageedit/core 0.13.0 → 0.14.0
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/LICENSE +20 -20
- package/dist/{BasePlugin-Bf2UuIHF.js → BasePlugin-CU8beLYu.js} +17 -26
- package/dist/BasePlugin-CU8beLYu.js.map +1 -0
- package/dist/IconQuickEdit-CMCQncyj.js.map +1 -1
- package/dist/InputBox-nQKtiWtZ.js.map +1 -1
- package/dist/{PluginPrefSync-Dn1Xsiqz.js → PluginPrefSync-B-gPsC2n.js} +124 -128
- package/dist/PluginPrefSync-B-gPsC2n.js.map +1 -0
- package/dist/PluginStoreApp-CDteVCBG.js +453 -0
- package/dist/PluginStoreApp-CDteVCBG.js.map +1 -0
- package/dist/{endpoints-DgyuoRZd.js → Preferences-85Q9FAmb.js} +589 -565
- package/dist/Preferences-85Q9FAmb.js.map +1 -0
- package/dist/WatchlistAction-BbNAyryN.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/{index-BuYNq7f3.js → index-19CgGBI0.js} +1419 -921
- package/dist/index-19CgGBI0.js.map +1 -0
- package/dist/{index-B7c6jL9x.js → index-BKIf3i0I.js} +146 -137
- package/dist/index-BKIf3i0I.js.map +1 -0
- package/dist/{index-CCRMmnwk.js → index-BrtFJ-M0.js} +67 -66
- package/dist/index-BrtFJ-M0.js.map +1 -0
- package/dist/index-CG38LlAh.js.map +1 -1
- package/dist/index-CM_6yF2v.js.map +1 -1
- package/dist/index-CQr1DJ8n.js +173 -0
- package/dist/index-CQr1DJ8n.js.map +1 -0
- package/dist/{index-BQ-cHWkJ.js → index-CVTBg5O9.js} +66 -48
- package/dist/index-CVTBg5O9.js.map +1 -0
- package/dist/index-Ci82vLXg.js +179 -0
- package/dist/index-Ci82vLXg.js.map +1 -0
- package/dist/{index-BwdWyHLe.js → index-D3iZhRMJ.js} +93 -93
- package/dist/index-D3iZhRMJ.js.map +1 -0
- package/dist/index-DD5CVCfD.js.map +1 -1
- package/dist/{index-BJ7_Q1mB.js → index-DGtq21uW.js} +17 -16
- package/dist/index-DGtq21uW.js.map +1 -0
- package/dist/index-DXL7teb0.js +394 -0
- package/dist/index-DXL7teb0.js.map +1 -0
- package/dist/index-DjPpAyfE.js +116 -0
- package/dist/index-DjPpAyfE.js.map +1 -0
- package/dist/{index-eSlbrNqF.js → index-rpiO9fpc.js} +4 -5
- package/dist/{index-eSlbrNqF.js.map → index-rpiO9fpc.js.map} +1 -1
- package/dist/index.d.ts +327 -26
- package/dist/index.js +32 -26
- package/dist/index.js.map +1 -1
- package/dist/makeCallable-LDU0xZMJ.js.map +1 -1
- package/dist/models/index.js +174 -154
- package/dist/models/index.js.map +1 -1
- package/dist/noop-ClDc6zv4.js.map +1 -1
- package/dist/plugins/index.js +10 -10
- package/dist/services/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/vueHooks-l04s8cIl.js.map +1 -1
- package/lib/index.umd.js +20 -12
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +4 -4
- package/dist/BasePlugin-Bf2UuIHF.js.map +0 -1
- package/dist/PluginPrefSync-Dn1Xsiqz.js.map +0 -1
- package/dist/PluginStoreApp-CpOLArL7.js +0 -452
- package/dist/PluginStoreApp-CpOLArL7.js.map +0 -1
- package/dist/Preferences-DS4-CFWe.js +0 -9
- package/dist/Preferences-DS4-CFWe.js.map +0 -1
- package/dist/endpoints-DgyuoRZd.js.map +0 -1
- package/dist/index-2RfILgXm.js +0 -180
- package/dist/index-2RfILgXm.js.map +0 -1
- package/dist/index-B7c6jL9x.js.map +0 -1
- package/dist/index-BJ7_Q1mB.js.map +0 -1
- package/dist/index-BNh95-x2.js +0 -115
- package/dist/index-BNh95-x2.js.map +0 -1
- package/dist/index-BQ-cHWkJ.js.map +0 -1
- package/dist/index-BuYNq7f3.js.map +0 -1
- package/dist/index-BwdWyHLe.js.map +0 -1
- package/dist/index-CCRMmnwk.js.map +0 -1
- package/dist/index-CnIpUF9x.js +0 -173
- package/dist/index-CnIpUF9x.js.map +0 -1
- package/dist/index-CyG7_IYz.js +0 -394
- package/dist/index-CyG7_IYz.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-132e6dc8]{margin-bottom:1.5rem;display:flex;align-items:center;gap:.875rem}.ipeps-header-title[data-v-132e6dc8]{font-weight:600;font-size:1.125rem;color:var(--ipe-modal-text);letter-spacing:-.01em}.ipeps-input-wrapper[data-v-132e6dc8]{flex:1;position:relative}.ipeps-input-icon[data-v-132e6dc8]{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-132e6dc8]{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-132e6dc8]{padding-left:2.25rem}.ipeps-input[data-v-132e6dc8]::placeholder{color:var(--ipe-modal-muted);opacity:.6}.ipeps-input[data-v-132e6dc8]:hover:not(:disabled){border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color))}.ipeps-input[data-v-132e6dc8]: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-132e6dc8]{opacity:.6}.ipeps-input[data-v-132e6dc8]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button[data-v-132e6dc8]{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-132e6dc8]: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-132e6dc8]:active:not(:disabled){box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button[data-v-132e6dc8]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button.is-primary[data-v-132e6dc8]{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-132e6dc8]: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-132e6dc8]{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-132e6dc8]: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-132e6dc8]{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-132e6dc8]: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-132e6dc8]{background:transparent;box-shadow:none}.ipeps-button.is-ghost[data-v-132e6dc8]: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-132e6dc8]{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-132e6dc8]: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-132e6dc8]{animation:pulse-132e6dc8 1.5s cubic-bezier(.4,0,.6,1) infinite}.ipeps-loading[data-v-132e6dc8],.ipeps-empty[data-v-132e6dc8]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.ipeps-loading[data-v-132e6dc8]{padding:6rem 1.25rem}.ipeps-loading .loading-spinner[data-v-132e6dc8]{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-132e6dc8 .8s linear infinite}.ipeps-loading .loading-text[data-v-132e6dc8]{color:var(--ipe-modal-muted);font-size:.875rem;font-weight:500}.ipeps-empty[data-v-132e6dc8]{padding:4rem 1.25rem}.ipeps-empty .plugin-empty-icon[data-v-132e6dc8],.ipeps-empty .icon[data-v-132e6dc8]{font-size:3rem;opacity:.25;filter:grayscale(.3)}.ipeps-empty .plugin-empty-text[data-v-132e6dc8],.ipeps-empty .text[data-v-132e6dc8]{color:var(--ipe-modal-muted);font-size:.9375rem;font-weight:500}.ipeps-empty .description[data-v-132e6dc8]{margin-top:.5rem;color:var(--ipe-modal-muted);font-size:.8125rem;opacity:.8}@keyframes spin-132e6dc8{to{transform:rotate(360deg)}}@keyframes pulse-132e6dc8{0%,to{opacity:1}50%{opacity:.6}}.ipeps-list[data-v-132e6dc8]{display:flex;flex-direction:column;gap:.875rem}.ipeps-item[data-v-132e6dc8]{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-132e6dc8]: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-132e6dc8]{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-132e6dc8]: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-132e6dc8]{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-132e6dc8]: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-132e6dc8]{font-weight:600;font-size:.9375rem;color:var(--ipe-modal-text);line-height:1.4;letter-spacing:-.01em}.ipeps-item .item-desc[data-v-132e6dc8]{font-size:.8125rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-item .item-meta[data-v-132e6dc8]{font-size:.75rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-tags[data-v-132e6dc8]{display:flex;flex-wrap:wrap;gap:.375rem}.ipeps-tag[data-v-132e6dc8]{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-132e6dc8]: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-132e6dc8]{font-size:.6875rem;font-weight:600;padding:.1875rem .5rem;border-radius:4px;line-height:1.4}.ipeps-badge.is-installed[data-v-132e6dc8]{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-132e6dc8]{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-132e6dc8]{display:flex;gap:.5rem;align-items:center}.registry-info[data-v-132e6dc8]{flex:1;min-width:0}.registry-info .homepage[data-v-132e6dc8]{margin-top:.25rem}.registry-info .homepage a[data-v-132e6dc8]{color:var(--ipe-modal-accent);text-decoration:none;font-size:.8125rem;transition:all .2s ease}.registry-info .homepage a[data-v-132e6dc8]:hover{color:color-mix(in srgb,var(--ipe-modal-accent) 80%,var(--ipe-modal-text));text-decoration:underline}.registry-info .url[data-v-132e6dc8]{font-family:monospace;font-size:.75rem;color:var(--ipe-modal-muted);margin-top:.125rem;word-break:break-all}.ipeps-header[data-v-d61d6310]{margin-bottom:1.5rem;display:flex;align-items:center;gap:.875rem}.ipeps-header-title[data-v-d61d6310]{font-weight:600;font-size:1.125rem;color:var(--ipe-modal-text);letter-spacing:-.01em}.ipeps-input-wrapper[data-v-d61d6310]{flex:1;position:relative}.ipeps-input-icon[data-v-d61d6310]{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-d61d6310]{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-d61d6310]{padding-left:2.25rem}.ipeps-input[data-v-d61d6310]::placeholder{color:var(--ipe-modal-muted);opacity:.6}.ipeps-input[data-v-d61d6310]:hover:not(:disabled){border-color:color-mix(in srgb,var(--ipe-modal-accent) 30%,var(--ipe-modal-border-color))}.ipeps-input[data-v-d61d6310]: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-d61d6310]{opacity:.6}.ipeps-input[data-v-d61d6310]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button[data-v-d61d6310]{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-d61d6310]: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-d61d6310]:active:not(:disabled){box-shadow:0 1px 2px color-mix(in srgb,var(--ipe-modal-text) 4%,transparent)}.ipeps-button[data-v-d61d6310]:disabled{opacity:.5;cursor:not-allowed}.ipeps-button.is-primary[data-v-d61d6310]{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-d61d6310]: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-d61d6310]{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-d61d6310]: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-d61d6310]{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-d61d6310]: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-d61d6310]{background:transparent;box-shadow:none}.ipeps-button.is-ghost[data-v-d61d6310]: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-d61d6310]{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-d61d6310]: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-d61d6310]{animation:pulse-d61d6310 1.5s cubic-bezier(.4,0,.6,1) infinite}.ipeps-loading[data-v-d61d6310],.ipeps-empty[data-v-d61d6310]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.ipeps-loading[data-v-d61d6310]{padding:6rem 1.25rem}.ipeps-loading .loading-spinner[data-v-d61d6310]{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-d61d6310 .8s linear infinite}.ipeps-loading .loading-text[data-v-d61d6310]{color:var(--ipe-modal-muted);font-size:.875rem;font-weight:500}.ipeps-empty[data-v-d61d6310]{padding:4rem 1.25rem}.ipeps-empty .plugin-empty-icon[data-v-d61d6310],.ipeps-empty .icon[data-v-d61d6310]{font-size:3rem;opacity:.25;filter:grayscale(.3)}.ipeps-empty .plugin-empty-text[data-v-d61d6310],.ipeps-empty .text[data-v-d61d6310]{color:var(--ipe-modal-muted);font-size:.9375rem;font-weight:500}.ipeps-empty .description[data-v-d61d6310]{margin-top:.5rem;color:var(--ipe-modal-muted);font-size:.8125rem;opacity:.8}@keyframes spin-d61d6310{to{transform:rotate(360deg)}}@keyframes pulse-d61d6310{0%,to{opacity:1}50%{opacity:.6}}.ipeps-list[data-v-d61d6310]{display:flex;flex-direction:column;gap:.875rem}.ipeps-item[data-v-d61d6310]{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-d61d6310]: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-d61d6310]{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-d61d6310]: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-d61d6310]{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-d61d6310]: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-d61d6310]{font-weight:600;font-size:.9375rem;color:var(--ipe-modal-text);line-height:1.4;letter-spacing:-.01em}.ipeps-item .item-desc[data-v-d61d6310]{font-size:.8125rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-item .item-meta[data-v-d61d6310]{font-size:.75rem;color:var(--ipe-modal-muted);line-height:1.5}.ipeps-tags[data-v-d61d6310]{display:flex;flex-wrap:wrap;gap:.375rem}.ipeps-tag[data-v-d61d6310]{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-d61d6310]: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-d61d6310]{font-size:.6875rem;font-weight:600;padding:.1875rem .5rem;border-radius:4px;line-height:1.4}.ipeps-badge.is-installed[data-v-d61d6310]{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-d61d6310]{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-d61d6310]{display:flex;gap:.5rem;align-items:center}.plugin-info[data-v-d61d6310]{flex:1;min-width:0}.plugin-header[data-v-d61d6310]{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.registry-tag[data-v-d61d6310]{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-d61d6310]: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-d61d6310]{text-decoration:line-through;opacity:.65;cursor:not-allowed}.plugin-id.broken[data-v-d61d6310]{opacity:.65;text-decoration:line-through}.plugin-desc[data-v-d61d6310]{font-size:.8125rem;color:var(--ipe-modal-muted);margin-bottom:.5rem;line-height:1.6}.plugin-desc.broken-desc[data-v-d61d6310]{color:color-mix(in srgb,var(--ipe-modal-warning) 80%,var(--ipe-modal-text));font-style:italic}.plugin-meta[data-v-d61d6310]{font-size:.75rem;color:var(--ipe-modal-muted);display:flex;gap:1rem;align-items:center}.plugin-meta .version[data-v-d61d6310]{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-d61d6310],.plugin-meta .license[data-v-d61d6310]{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: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)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inpageedit/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "🚀 Modular, Extensible Supercharged Plugin for MediaWiki",
|
|
5
5
|
"author": "dragon-fish",
|
|
6
6
|
"license": "MIT",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"@prettier/plugin-pug": "^3.4.2",
|
|
49
49
|
"@tabler/icons-vue": "^3.35.0",
|
|
50
50
|
"@types/node": "^24.10.0",
|
|
51
|
-
"@typescript-eslint/eslint-plugin": "^8.46.
|
|
52
|
-
"@typescript-eslint/parser": "^8.46.
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^8.46.4",
|
|
52
|
+
"@typescript-eslint/parser": "^8.46.4",
|
|
53
53
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
54
54
|
"@vue/compiler-sfc": "^3.5.24",
|
|
55
55
|
"@vue/language-plugin-pug": "^3.1.3",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"prettier": "^3.6.2",
|
|
62
62
|
"pug": "^3.0.3",
|
|
63
63
|
"rimraf": "^6.1.0",
|
|
64
|
-
"rolldown": "1.0.0-beta.
|
|
64
|
+
"rolldown": "1.0.0-beta.49",
|
|
65
65
|
"rolldown-plugin-dts": "^0.17.5",
|
|
66
66
|
"sass-embedded": "^1.93.3",
|
|
67
67
|
"tsx": "^4.20.6",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BasePlugin-Bf2UuIHF.js","sources":["../src/utils/string.ts","../src/plugins/BasePlugin.ts"],"sourcesContent":["export function capitalize(source: string) {\r\n return source.charAt(0).toUpperCase() + source.slice(1)\r\n}\r\n\r\nexport function uncapitalize(source: string) {\r\n return source.charAt(0).toLowerCase() + source.slice(1)\r\n}\r\n\r\nexport function camelCase(source: string) {\r\n return source.replace(/[_-][a-z]/g, (str) => str.slice(1).toUpperCase())\r\n}\r\n\r\nexport function paramCase(source: string) {\r\n return uncapitalize(source)\r\n .replace(/_/g, '-')\r\n .replace(/.[A-Z]+/g, (str) => str[0] + '-' + str.slice(1).toLowerCase())\r\n}\r\n\r\nexport function snakeCase(source: string) {\r\n return uncapitalize(source)\r\n .replace(/-/g, '_')\r\n .replace(/.[A-Z]+/g, (str) => str[0] + '_' + str.slice(1).toLowerCase())\r\n}\r\n\r\nexport function trimSlash(source: string) {\r\n return source.replace(/\\/+$/, '')\r\n}\r\n\r\nexport function ensureSlash(source: string) {\r\n return source.endsWith('/') ? source : source + '/'\r\n}\r\n","import { Inject, InPageEdit, Schema } from '@/InPageEdit'\nimport type { Logger } from '@inpageedit/logger'\nimport { snakeCase } from '@/utils/string'\n\ninterface DisposeHandler {\n (ctx: InPageEdit): Promise<void> | void\n}\n\nexport default class BasePlugin<ConfigType extends unknown = any> {\n #name!: string\n public config: ConfigType\n private disposeHandlers: DisposeHandler[] = []\n /** 依赖注入 */\n static inject?: Inject = []\n /** 可重用? */\n static reusable = false\n /** 插件的偏好设置模式 */\n static PreferencesSchema?: Schema\n\n constructor(\n public ctx: InPageEdit,\n config: ConfigType = undefined as unknown as ConfigType,\n name?: string\n ) {\n this.name = name || ''\n this.config = config || ({} as ConfigType)\n const { promise, resolve, reject } = Promise.withResolvers<void>()\n queueMicrotask(() => {\n if (!this.name) {\n this.name = this.constructor.name\n }\n try {\n const ret = this.start()\n if (ret && typeof (ret as Promise<unknown>).then === 'function') {\n ;(ret as Promise<unknown>)\n .then(() => resolve())\n .catch((err) => {\n this.logger.error('start() returns a rejected promise', err)\n reject(err)\n })\n } else {\n resolve()\n }\n } catch (err) {\n this.logger.error('start() threw synchronously', err)\n reject(err)\n }\n\n promise.then(() => {\n this.logger.debug('started')\n })\n promise.catch((e) => {\n this.logger.error('start failed', e)\n this.ctx.scope.dispose()\n })\n })\n this.ctx.once('dispose', () => {\n this.disposeHandlers.forEach((fn) => fn(this.ctx))\n this.stop()\n this.logger.debug('disposed')\n })\n }\n\n protected start(): Promise<void> | void {}\n protected stop(): Promise<void> | void {}\n protected addDisposeHandler(fn: DisposeHandler): void {\n this.disposeHandlers.push(fn)\n }\n protected removeDisposeHandler(fn: DisposeHandler): void {\n this.disposeHandlers = this.disposeHandlers.filter((f) => f !== fn)\n }\n\n set name(name: string) {\n this.#name = snakeCase(name).toUpperCase()\n }\n get name(): string {\n return this.#name\n }\n\n get logger(): Logger {\n return this.ctx.logger(this.name)\n }\n}\n"],"names":["uncapitalize","source","paramCase","str","snakeCase","BasePlugin","ctx","config","name","promise","resolve","reject","ret","err","e","fn","#name","f"],"mappings":"AAIO,SAASA,EAAaC,GAAgB;AAC3C,SAAOA,EAAO,OAAO,CAAC,EAAE,gBAAgBA,EAAO,MAAM,CAAC;AACxD;AAMO,SAASC,EAAUD,GAAgB;AACxC,SAAOD,EAAaC,CAAM,EACvB,QAAQ,MAAM,GAAG,EACjB,QAAQ,YAAY,CAACE,MAAQA,EAAI,CAAC,IAAI,MAAMA,EAAI,MAAM,CAAC,EAAE,aAAa;AAC3E;AAEO,SAASC,EAAUH,GAAgB;AACxC,SAAOD,EAAaC,CAAM,EACvB,QAAQ,MAAM,GAAG,EACjB,QAAQ,YAAY,CAACE,MAAQA,EAAI,CAAC,IAAI,MAAMA,EAAI,MAAM,CAAC,EAAE,aAAa;AAC3E;ACdA,MAAqBE,EAA6C;AAAA,EAWhE,YACSC,GACPC,IAAqB,QACrBC,GACA;AAHO,SAAA,MAAAF,GATT,KAAQ,kBAAoC,CAAA,GAa1C,KAAK,OAAOE,KAAQ,IACpB,KAAK,SAASD,KAAW,CAAA;AACzB,UAAM,EAAE,SAAAE,GAAS,SAAAC,GAAS,QAAAC,EAAA,IAAW,QAAQ,cAAA;AAC7C,mBAAe,MAAM;AACnB,MAAK,KAAK,SACR,KAAK,OAAO,KAAK,YAAY;AAE/B,UAAI;AACF,cAAMC,IAAM,KAAK,MAAA;AACjB,QAAIA,KAAO,OAAQA,EAAyB,QAAS,aACjDA,EACC,KAAK,MAAMF,EAAA,CAAS,EACpB,MAAM,CAACG,MAAQ;AACd,eAAK,OAAO,MAAM,sCAAsCA,CAAG,GAC3DF,EAAOE,CAAG;AAAA,QACZ,CAAC,IAEHH,EAAA;AAAA,MAEJ,SAASG,GAAK;AACZ,aAAK,OAAO,MAAM,+BAA+BA,CAAG,GACpDF,EAAOE,CAAG;AAAA,MACZ;AAEA,MAAAJ,EAAQ,KAAK,MAAM;AACjB,aAAK,OAAO,MAAM,SAAS;AAAA,MAC7B,CAAC,GACDA,EAAQ,MAAM,CAACK,MAAM;AACnB,aAAK,OAAO,MAAM,gBAAgBA,CAAC,GACnC,KAAK,IAAI,MAAM,QAAA;AAAA,MACjB,CAAC;AAAA,IACH,CAAC,GACD,KAAK,IAAI,KAAK,WAAW,MAAM;AAC7B,WAAK,gBAAgB,QAAQ,CAACC,MAAOA,EAAG,KAAK,GAAG,CAAC,GACjD,KAAK,KAAA,GACL,KAAK,OAAO,MAAM,UAAU;AAAA,IAC9B,CAAC;AAAA,EACH;AAAA,EApDAC;AAAA,EAIA,OAAA;AAAA,SAAO,SAAkB,CAAA;AAAA,EAAC;AAAA,EAE1B,OAAA;AAAA,SAAO,WAAW;AAAA,EAAA;AAAA,EAgDR,QAA8B;AAAA,EAAC;AAAA,EAC/B,OAA6B;AAAA,EAAC;AAAA,EAC9B,kBAAkBD,GAA0B;AACpD,SAAK,gBAAgB,KAAKA,CAAE;AAAA,EAC9B;AAAA,EACU,qBAAqBA,GAA0B;AACvD,SAAK,kBAAkB,KAAK,gBAAgB,OAAO,CAACE,MAAMA,MAAMF,CAAE;AAAA,EACpE;AAAA,EAEA,IAAI,KAAKP,GAAc;AACrB,SAAKQ,KAAQZ,EAAUI,CAAI,EAAE,YAAA;AAAA,EAC/B;AAAA,EACA,IAAI,OAAe;AACjB,WAAO,KAAKQ;AAAA,EACd;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,IAAI,OAAO,KAAK,IAAI;AAAA,EAClC;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PluginPrefSync-Dn1Xsiqz.js","sources":["../src/plugins/preferences-ui/PluginPrefSync.tsx"],"sourcesContent":["import { Inject, InPageEdit } from '@/InPageEdit.js'\nimport { WatchlistAction } from '@/models/WikiPage/types/WatchlistAction.js'\nimport { IWikiTitle } from '@/models/WikiTitle/index.js'\n\ndeclare module '@/InPageEdit' {\n export interface InPageEdit {\n prefSync: PluginPrefSync\n }\n}\n\n@Inject(['preferences', 'wikiPage', 'wikiTitle', 'modal', 'preferencesUI'])\nexport class PluginPrefSync extends BasePlugin {\n constructor(public ctx: InPageEdit) {\n super(ctx, {}, 'pref-sync')\n ctx.set('prefSync', this)\n }\n\n protected start(): Promise<void> | void {\n const ctx = this.ctx\n ctx.preferences.defineCategory({\n name: 'pref-sync',\n label: 'Sync',\n description: 'Import and export preferences',\n index: 98,\n customRenderer: () => {\n const userPageTitle = this.getUserPrefsPageTitle()\n return (\n <div className=\"theme-ipe-prose\">\n {userPageTitle && (\n <section>\n <h3>Backup your preferences via user page</h3>\n <p>\n <a href={userPageTitle?.getURL().toString()} target=\"_blank\">\n {userPageTitle?.getPrefixedText()} →\n </a>\n </p>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>\n <ActionButton\n type=\"primary\"\n onClick={(e) => {\n e.preventDefault()\n const btn = e.target as HTMLButtonElement\n btn.disabled = true\n const modal = ctx.preferencesUI.getCurrentModal()\n modal?.setLoadingState(true)\n this.exportToUserPage()\n .then((title) => {\n ctx.modal.notify('success', {\n title: 'Preferences Exported',\n content: (\n <p>\n Your preferences have been exported to{' '}\n <a href={title.getURL().toString()} target=\"_blank\">\n {title.getPrefixedText()}\n </a>\n .\n </p>\n ),\n })\n })\n .finally(() => {\n btn.disabled = false\n modal?.setLoadingState(false)\n })\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-cloud-up\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 18.004h-5.343c-2.572 -.004 -4.657 -2.011 -4.657 -4.487c0 -2.475 2.085 -4.482 4.657 -4.482c.393 -1.762 1.794 -3.2 3.675 -3.773c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.38 0 2.57 .811 3.128 1.986\" />\n <path d=\"M19 22v-6\" />\n <path d=\"M22 19l-3 -3l-3 3\" />\n </svg>{' '}\n Backup\n </ActionButton>\n <ActionButton\n onClick={(e) => {\n e.preventDefault()\n const modal = ctx.preferencesUI.getCurrentModal()\n const btn = e.target as HTMLButtonElement\n btn.disabled = true\n modal?.setLoadingState(true)\n this.importFromUserPage()\n .then((record) => {\n this.notifyImportSuccess(record)\n })\n .finally(() => {\n btn.disabled = false\n modal?.setLoadingState(false)\n })\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-cloud-down\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 18.004h-5.343c-2.572 -.004 -4.657 -2.011 -4.657 -4.487c0 -2.475 2.085 -4.482 4.657 -4.482c.393 -1.762 1.794 -3.2 3.675 -3.773c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.38 0 2.573 .813 3.13 1.99\" />\n <path d=\"M19 16v6\" />\n <path d=\"M22 19l-3 3l-3 -3\" />\n </svg>{' '}\n Restore\n </ActionButton>\n </div>\n </section>\n )}\n <section>\n <h3>Import and export preferences</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>\n <ActionButton\n onClick={(e) => {\n e.preventDefault()\n const modal = ctx.preferencesUI.getCurrentModal()\n modal?.setLoadingState(true)\n const input = document.createElement('input')\n input.type = 'file'\n input.accept = 'application/json'\n // Mobile Safari (and some older browsers) do not fire a 'cancel' event when\n // the file picker is dismissed without selecting a file. We use a\n // window 'focus' listener as a heuristic: once the picker closes\n // the window regains focus; if no file was chosen we treat it as cancel.\n // Fuck you Apple\n let handled = false\n const onDialogClose = () => {\n // If change handler did not run, treat as cancel\n if (!handled) {\n modal?.setLoadingState(false)\n }\n window.removeEventListener('focus', onDialogClose)\n }\n window.addEventListener('focus', onDialogClose, { once: true })\n\n input.addEventListener('change', async (e) => {\n handled = true\n try {\n const file = (e.target as HTMLInputElement).files?.[0]\n if (!file) {\n return\n }\n const record = await this.importFromFile(file)\n this.notifyImportSuccess(record)\n } catch (e) {\n ctx.modal.notify('error', {\n title: 'Import failed',\n content: e instanceof Error ? e.message : String(e),\n })\n } finally {\n modal?.setLoadingState(false)\n }\n })\n input.click()\n }}\n >\n Import from file\n </ActionButton>\n <ActionButton\n onClick={(e) => {\n e.preventDefault()\n const input = (<input type=\"url\"></input>) as HTMLInputElement\n const modal = ctx.preferencesUI.getCurrentModal()\n ctx.modal.confirm(\n {\n title: 'Import Preferences from URL',\n content: (\n <div>\n <label htmlFor=\"url-input\">\n Enter the URL of the preferences JSON file:\n </label>\n {input}\n </div>\n ),\n },\n async (result) => {\n const url = input.value.trim()\n if (!result || !url) {\n return\n }\n try {\n modal?.setLoadingState(true)\n const record = await this.importFromUrl(url)\n this.notifyImportSuccess(record)\n } catch (e) {\n ctx.modal.notify('error', {\n title: 'Import failed',\n content: e instanceof Error ? e.message : String(e),\n })\n } finally {\n modal?.setLoadingState(false)\n }\n }\n )\n }}\n >\n Import from URL\n </ActionButton>\n <ActionButton\n onClick={async (e) => {\n e.preventDefault()\n // 首先尝试保存当前的表单内容\n await ctx.preferencesUI.dispatchFormSave()\n const data = await ctx.preferences.getExportableRecord()\n const json = JSON.stringify(data, null, 2)\n ctx.modal.dialog(\n {\n title: 'Save to file',\n content: (\n <div>\n <label htmlFor=\"data\">Your InPageEdit preferences:</label>\n <textarea\n name=\"data\"\n id=\"data\"\n rows={10}\n value={json}\n readOnly\n style={{ width: '100%' }}\n ></textarea>\n </div>\n ),\n buttons: [\n {\n label: 'Copy',\n method: (_, m) => {\n navigator.clipboard.writeText(json)\n ctx.modal.notify('success', {\n content: 'Copied to clipboard',\n })\n m.close()\n },\n },\n {\n label: 'Download',\n method: (_, m) => {\n const a = document.createElement('a')\n a.href = `data:text/json;charset=utf-8,${encodeURIComponent(json)}`\n a.download = `ipe-prefs-${new Date().toISOString()}.json`\n a.click()\n m.close()\n },\n },\n ],\n },\n () => {}\n )\n }}\n >\n Save as file\n </ActionButton>\n </div>\n </section>\n </div>\n )\n },\n })\n }\n\n protected stop(): Promise<void> | void {}\n\n /**\n * 获取用户页配置文件的标题\n */\n private getUserPrefsPageTitle(): IWikiTitle | null {\n try {\n const userName = this.ctx.wiki?.userInfo?.name\n if (!userName) {\n return null\n }\n // 使用 User: 命名空间\n return this.ctx.wikiTitle.newTitle(`User:${userName}/ipe-prefs.json`, 2)\n } catch {\n return null\n }\n }\n\n /**\n * 从用户页加载配置\n */\n async importFromUserPage(): Promise<Record<string, unknown>> {\n const title = this.getUserPrefsPageTitle()\n if (!title) {\n this.logger.debug('Cannot get user page title, skipping load')\n return {}\n }\n\n try {\n // 使用 raw action 获取 JSON 内容\n const rawUrl = title.getURL({ action: 'raw', ctype: 'application/json' })\n const changed = await this.importFromUrl(rawUrl.toString())\n this.logger.info('Loaded preferences from user page:', title)\n return changed\n } catch (error) {\n this.logger.error('Failed to load preferences from user page:', error)\n return {}\n }\n }\n\n /**\n * 导出配置到用户页\n */\n async exportToUserPage(): Promise<IWikiTitle> {\n const ctx = this.ctx\n const title = this.getUserPrefsPageTitle()\n if (!title) {\n throw new Error('Cannot get user page title')\n }\n\n // 首先尝试保存当前的表单内容\n await ctx.preferencesUI.dispatchFormSave()\n\n const json = await ctx.preferences.getExportableRecord()\n const text = JSON.stringify(json, null, 2)\n\n try {\n const page = this.ctx.wikiPage.newBlankPage({\n title: title.toString(),\n ns: 2, // User namespace\n })\n await page.edit({\n text,\n summary: 'Update InPageEdit preferences',\n watchlist: WatchlistAction.nochange,\n })\n\n this.logger.info('Exported preferences to user page:', title)\n return title\n } catch (error) {\n this.logger.error('Failed to export preferences to user page:', error)\n throw error\n }\n }\n\n async importFromUrl(input: string): Promise<Record<string, unknown>> {\n const response = await fetch(input)\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`)\n }\n const blob = await response.blob()\n const changed = await this.importFromFile(blob)\n return changed\n }\n\n async importFromFile(input: Blob): Promise<Record<string, unknown>> {\n const text = await input.text()\n const data = JSON.parse(text)\n const changed = await this.ctx.preferences.setMany(data)\n return changed\n }\n\n private notifyImportSuccess(configs?: Record<string, unknown>) {\n const keys = Object.keys(configs ?? {})\n const count = keys.length\n return this.ctx.modal.notify('success', {\n title: 'Preferences Imported',\n content: (\n <section>\n <p>\n Successfully imported {count || ''} {count !== 1 ? 'settings' : 'setting'}:\n </p>\n <ol style={{ listStyle: 'auto', paddingLeft: '1em' }}>\n {keys.map((key) => (\n <li key={key}>{key}</li>\n ))}\n </ol>\n </section>\n ),\n })\n }\n}\n"],"names":["_PluginPrefSync_decorators","_init","_a","Inject","PluginPrefSync","BasePlugin","ctx","userPageTitle","jsxs","jsx","ActionButton","e","btn","modal","title","record","input","handled","onDialogClose","file","result","url","data","json","_","m","a","userName","rawUrl","changed","error","text","WatchlistAction","response","blob","configs","keys","count","key","__decoratorStart","__decorateElement","__runInitializers"],"mappings":"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"}
|