@inpageedit/core 0.4.1 → 0.5.1

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.
Files changed (61) hide show
  1. package/dist/ActionButton-BgbTKTg7.js +24 -0
  2. package/dist/ActionButton-BgbTKTg7.js.map +1 -0
  3. package/dist/{RadioBox-BZFhTEo5.js → RadioBox-CaA8VgLu.js} +16 -16
  4. package/dist/{RadioBox-BZFhTEo5.js.map → RadioBox-CaA8VgLu.js.map} +1 -1
  5. package/dist/components/TwinSwapInput/index.d.ts +1 -0
  6. package/dist/components/index.js +21 -22
  7. package/dist/components/index.js.map +1 -1
  8. package/dist/index-BIgWRk98.js +4826 -0
  9. package/dist/index-BIgWRk98.js.map +1 -0
  10. package/dist/index-BMmKF_kG.js +165 -0
  11. package/dist/index-BMmKF_kG.js.map +1 -0
  12. package/dist/{index-BPsDFq9U.js → index-Bh70Udzi.js} +14 -13
  13. package/dist/index-Bh70Udzi.js.map +1 -0
  14. package/dist/index-CBphMyYJ.js +5170 -0
  15. package/dist/index-CBphMyYJ.js.map +1 -0
  16. package/dist/{index-X1X416tZ.js → index-CJLKdEqr.js} +41 -25
  17. package/dist/index-CJLKdEqr.js.map +1 -0
  18. package/dist/{index-BsYzf3Yw.js → index-CX5H4xCe.js} +12 -12
  19. package/dist/index-CX5H4xCe.js.map +1 -0
  20. package/dist/{index-BByzm2Fz.js → index-DNm9SNqM.js} +128 -120
  21. package/dist/{index-BByzm2Fz.js.map → index-DNm9SNqM.js.map} +1 -1
  22. package/dist/{index-Ch5DJDZZ.js → index-Djd6Ddcm.js} +125 -121
  23. package/dist/index-Djd6Ddcm.js.map +1 -0
  24. package/dist/index-Dk3xR25y.js +96 -0
  25. package/dist/index-Dk3xR25y.js.map +1 -0
  26. package/dist/{index-D-zQLFuZ.js → index-QF8lvEam.js} +14 -21
  27. package/dist/index-QF8lvEam.js.map +1 -0
  28. package/dist/index.js +9 -4639
  29. package/dist/index.js.map +1 -1
  30. package/dist/models/WikiPage/index.d.ts +5 -4
  31. package/dist/plugins/BasePlugin.d.ts +12 -4
  32. package/dist/plugins/_debug/index.d.ts +1 -1
  33. package/dist/plugins/quick-diff/PluginQuickDiffCore.d.ts +2 -1
  34. package/dist/plugins/quick-edit/index.d.ts +2 -1
  35. package/dist/plugins/quick-move/index.d.ts +1 -1
  36. package/dist/plugins/quick-preview/index.d.ts +4 -3
  37. package/dist/plugins/quick-redirect/index.d.ts +1 -1
  38. package/dist/plugins/toolbox/index.d.ts +2 -2
  39. package/dist/services/ModalService/IPEModal.d.ts +235 -0
  40. package/dist/services/ModalService/index.d.ts +35 -0
  41. package/dist/style.css +1 -1
  42. package/dist/utils/interpolate.d.ts +20 -0
  43. package/dist/utils/interpolate.spec.d.ts +1 -0
  44. package/lib/index.umd.js +32 -32
  45. package/lib/index.umd.js.map +1 -1
  46. package/lib/style.css +1 -1
  47. package/package.json +24 -25
  48. package/dist/ActionButton-ByMKIthQ.js +0 -24
  49. package/dist/ActionButton-ByMKIthQ.js.map +0 -1
  50. package/dist/index-BPsDFq9U.js.map +0 -1
  51. package/dist/index-BTngTj1f.js +0 -4682
  52. package/dist/index-BTngTj1f.js.map +0 -1
  53. package/dist/index-BsYzf3Yw.js.map +0 -1
  54. package/dist/index-Ch5DJDZZ.js.map +0 -1
  55. package/dist/index-Cq9xxVsu.js +0 -149
  56. package/dist/index-Cq9xxVsu.js.map +0 -1
  57. package/dist/index-D-zQLFuZ.js.map +0 -1
  58. package/dist/index-HyxA2rYz.js +0 -87
  59. package/dist/index-HyxA2rYz.js.map +0 -1
  60. package/dist/index-X1X416tZ.js.map +0 -1
  61. package/dist/services/SsiModalService.d.ts +0 -36
package/lib/style.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";._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}}._mbox_v5fz5_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:1rem 0;position:relative}._mbox_v5fz5_1 ._title_v5fz5_12{background-color:var(--title-color);padding:.5rem 1rem;font-weight:700;font-size:1rem;line-height:1.2}._mbox_v5fz5_1 ._content_v5fz5_19{background-color:var(--content-color);padding:.5rem 1rem;font-size:1rem;line-height:1.5;max-height:14em;overflow:auto}._mbox_v5fz5_1 ._close_v5fz5_27{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem;line-height:1rem;color:var(--border-color);cursor:pointer;user-select:none}._mbox_v5fz5_1 ._close_v5fz5_27:hover{filter:brightness(1.2)}._mbox_v5fz5_1 ._close_v5fz5_27:active{filter:brightness(.8)}._mbox_v5fz5_1.mbox-type-note,._mbox_v5fz5_1.mbox-type-info{--border-color: #1f6feb;--title-color: #AFD1FE;--content-color: #f3f9ff}._mbox_v5fz5_1.mbox-type-tip,._mbox_v5fz5_1.mbox-type-success{--border-color: #238636;--title-color: #E0F1E3;--content-color: #f9f9f9}._mbox_v5fz5_1.mbox-type-important,._mbox_v5fz5_1.mbox-type-done{--border-color: #8957e5;--title-color: #DDCBFC;--content-color: #f9f9f9}._mbox_v5fz5_1.mbox-type-warning{--border-color: #9e6a03;--title-color: #E4CC9D;--content-color: #fff9db}._mbox_v5fz5_1.mbox-type-caution,._mbox_v5fz5_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)}}._diff-container_lq0si_2{--primary-text-color: #333;--secondary-text-color: #888;--container-bg-color: #fff;--border-color: #ccc;--del-bg: #fadad7;--del-color: #b30000;--ins-bg: #eaf2c2;--ins-color: #406619;--chunk-header-color: #8a008b;--result-bg: #f5f5f5;background:var(--result-bg);padding:1rem;margin:0;border-radius:3px;font-family:Maple Mono NF CN,Maple Mono NF,Maple Mono,JetBrainsMono Nerd Font,JetBrains Mono NF,JetBrains Mono,Consolas,Courier New,monospace;white-space:pre-wrap;overflow-x:auto;line-height:1.4em;color:var(--secondary-text-color);transition:color .25s ease}._diff-container_lq0si_2:hover{color:var(--primary-text-color)}._diff-container_lq0si_2 del{text-decoration:line-through;color:var(--del-color);background:var(--del-bg)}._diff-container_lq0si_2 ins{background:var(--ins-bg);color:var(--ins-color);text-decoration:underline}._diff-container_lq0si_2 del,._diff-container_lq0si_2 ins{font-weight:700}._diff-container_lq0si_2 ._chunk-header_lq0si_44{color:var(--chunk-header-color);text-decoration:none}.tabs[data-v-46564df3]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em}.tabs .tab[data-v-46564df3]{padding:.25em .5em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabs .tab.active[data-v-46564df3]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}
1
+ @charset "UTF-8";:root{--ipe-modal-z: 1000;--ipe-modal-backdrop-bg: rgba(0, 0, 0, .5);--ipe-modal-bg: #ffffff;--ipe-modal-fg: #111827;--ipe-modal-fg--rgb: 17, 24, 39;--ipe-modal-muted: #6b7280;--ipe-modal-accent: #3b82f6;--ipe-modal-accent--rgb: 59, 130, 246;--ipe-modal-danger: #ef4444;--ipe-modal-danger--rgb: 239, 68, 68;--ipe-modal-radius: 16px;--ipe-modal-button-radius: 10px;--ipe-modal-shadow: 0 20px 40px rgba(0, 0, 0, .18);--ipe-modal-spacing: 16px;--ipe-modal-viewport-gap-y: 20px;--ipe-modal-window-max-w: 720px;--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) )}html.ipe-modal-no-scroll,body.ipe-modal-no-scroll{overflow:hidden!important;touch-action:none;-webkit-overflow-scrolling:auto}body.ipe-modal-no-scroll{position:fixed;width:100%;left:0;right:0}.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;overflow:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s ease,transform .22s ease;pointer-events:none;align-items:start;justify-items:center}.ipe-modal-modal.is-open{opacity:1;transform:none}.ipe-modal-modal.is-centered{display:grid;align-items:center}.ipe-modal-modal.is-centered .ipe-modal-modal__content{max-height:75dvh;overflow:auto}.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-fg);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 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:720px}.size--mediumToLarge{max-width:860px}.size--large{max-width:1040px}.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 color-mix(in oklab,black 6%,transparent)}.ipe-modal-modal__title{font-size:1.1rem;font-weight:600;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-fg)}.ipe-modal-modal__content{padding:var(--ipe-modal-spacing);overflow:visible;-webkit-overflow-scrolling:touch}.ipe-modal-modal__footer{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 color-mix(in oklab,black 6%,transparent)}.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{width:300px;border-radius:calc(var(--ipe-modal-radius) * .5)}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__header{padding:.5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__close{width:20px;height:20px;font-size:16px}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__content{padding:1em .5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-modal__footer{padding:0 .5em .5em}.ipe-modal-modal__window.plugin--toast .ipe-modal-btn{padding:.5em .75em}.ipe-modal-btn{--accent-color: #fff;--text-color: var(--ipe-modal-fg);--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}.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-ghost.is-primary{color:var(--ipe-modal-accent)}.ipe-modal-btn.is-ghost.is-danger{color:var(--ipe-modal-danger)}.ipe-modal-btn.is-text{border:0}.ipe-modal-modal__window.size--dialog .ipe-modal-modal__footer,.ipe-modal-modal__window.compact-buttons .ipe-modal-modal__footer{padding:0}.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}.ipe-modal-modal__window.size--dialog .ipe-modal-btn,.ipe-modal-modal__window.compact-buttons .ipe-modal-btn{flex:1;border:0;margin:0;padding:1rem;border-radius:0}.ipe-modal-modal__window.size--dialog .ipe-modal-btn:not(:first-child),.ipe-modal-modal__window.compact-buttons .ipe-modal-btn:not(:first-child){border-left:1px solid rgba(0,0,0,.06)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{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;--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[name=text]{width:100%;height:var(--textarea-height);min-height:var(--textarea-min-height);resize:vertical;border:var(--border-width) solid var(--color-border-input);border-radius:var(--border-radius-input);transition:all 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]:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 var(--border-width) var(--color-primary)}.theme-ipe textarea[name=text]:disabled{background-color:var(--color-disabled-bg);color:var(--color-white);cursor:not-allowed}.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:all 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}._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)}}._diff-container_lq0si_2{--primary-text-color: #333;--secondary-text-color: #888;--container-bg-color: #fff;--border-color: #ccc;--del-bg: #fadad7;--del-color: #b30000;--ins-bg: #eaf2c2;--ins-color: #406619;--chunk-header-color: #8a008b;--result-bg: #f5f5f5;background:var(--result-bg);padding:1rem;margin:0;border-radius:3px;font-family:Maple Mono NF CN,Maple Mono NF,Maple Mono,JetBrainsMono Nerd Font,JetBrains Mono NF,JetBrains Mono,Consolas,Courier New,monospace;white-space:pre-wrap;overflow-x:auto;line-height:1.4em;color:var(--secondary-text-color);transition:color .25s ease}._diff-container_lq0si_2:hover{color:var(--primary-text-color)}._diff-container_lq0si_2 del{text-decoration:line-through;color:var(--del-color);background:var(--del-bg)}._diff-container_lq0si_2 ins{background:var(--ins-bg);color:var(--ins-color);text-decoration:underline}._diff-container_lq0si_2 del,._diff-container_lq0si_2 ins{font-weight:700}._diff-container_lq0si_2 ._chunk-header_lq0si_44{color:var(--chunk-header-color);text-decoration:none}#ipe-edit-toolbox{position:fixed;right:32px;bottom:32px;user-select:none;z-index:199}@media print{#ipe-edit-toolbox{display:none}}#ipe-edit-toolbox .ipe-toolbox-btn{color:#fff;background:#bebebe;height:36px;width:36px;font-size:20px;line-height:1;border:0;border-radius:50%;box-shadow:0 0 8px #999;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 #toolbox-toggle{position:absolute;right:0;bottom:0;width:42px;height:42px;background:#3f51b5;font-size:32px;line-height:1;margin:0;transition:all .26s ease-in-out;transform:rotate(0)}#ipe-edit-toolbox #toolbox-toggle.opened{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:ease-in-out;transition-duration:.3s;opacity:0}#ipe-edit-toolbox .btn-group.opened .btn-tip-group{transform:translateZ(0);opacity:1}#ipe-edit-toolbox .btn-group.opened .btn-tip-group:nth-of-type(1),#ipe-edit-toolbox .btn-group:not(.opened) .btn-tip-group:nth-of-type(3){transition-delay:0s}#ipe-edit-toolbox .btn-group .btn-tip-group:nth-of-type(2){transition-delay:.06s}#ipe-edit-toolbox .btn-group:not(.opened) .btn-tip-group:nth-of-type(1),#ipe-edit-toolbox .btn-group.opened .btn-tip-group:nth-of-type(3){transition-delay:.108s}#ipe-edit-toolbox .btn-group:not(.opened){transform:scaleZ(0);transition-delay:.408s}#ipe-edit-toolbox .btn-group.opened{transform:scaleZ(1)}#ipe-edit-toolbox .ipe-toolbox-btn#toolbox-toggle.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-redirect-btn{background:#00bcd4}#ipe-edit-toolbox .ipe-toolbox-btn#redirectto-btn{background:#009688}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-delete-btn{background:#e91e63}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__quick-move-btn{background:#ff5722}#ipe-edit-toolbox .ipe-toolbox-btn#ipe-toolbox__preferences-btn{background:#ffc107}#ipe-edit-toolbox .btn-group{position:absolute;display:flex;gap:8px;list-style:none;margin:0}#ipe-edit-toolbox .btn-group.group1{bottom:49px;right:4px;flex-direction:column}#ipe-edit-toolbox .btn-group.group2{bottom:2px;right:49px}#ipe-edit-toolbox .btn-group.opened{visibility:visible}#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;padding:.2em .5em;box-shadow:0 0 .5em #999;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-right-color:#fff;border-bottom-color:#fff;position:absolute;bottom:-8px;left:50%;transform:rotate(45deg) translate(-50%)}.tabs[data-v-a338c085]{--border-color: #efefef;--tab-color: #666;--active-color: #3366bb;display:flex;gap:.5em;border-bottom:1px solid #efefef;margin-bottom:1em}.tabs .tab[data-v-a338c085]{padding:.5em 1em;cursor:pointer;user-select:none;color:var(--tab-color);display:inline-block;transition:color .3s ease,box-shadow .3s ease}.tabs .tab.active[data-v-a338c085]{color:var(--active-color);box-shadow:inset 0 -.15em 0 0 var(--active-color)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inpageedit/core",
3
- "version": "0.4.1",
3
+ "version": "0.5.1",
4
4
  "description": "🚀 Modular, Extensible Supercharged Plugin for MediaWiki",
5
5
  "author": "dragon-fish",
6
6
  "license": "MIT",
@@ -48,20 +48,18 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@eslint/eslintrc": "^3.3.1",
51
- "@eslint/js": "^9.36.0",
52
- "@microsoft/api-extractor": "^7.52.13",
51
+ "@eslint/js": "^9.37.0",
52
+ "@microsoft/api-extractor": "^7.53.1",
53
53
  "@prettier/plugin-pug": "^3.4.2",
54
54
  "@tabler/icons-vue": "^3.35.0",
55
- "@types/jquery": "^3.5.33",
56
- "@types/node": "^22.18.6",
57
- "@types/ssi-modal": "^1.0.0",
58
- "@typescript-eslint/eslint-plugin": "^8.44.1",
59
- "@typescript-eslint/parser": "^8.44.1",
55
+ "@types/node": "^22.18.10",
56
+ "@typescript-eslint/eslint-plugin": "^8.46.1",
57
+ "@typescript-eslint/parser": "^8.46.1",
60
58
  "@vitejs/plugin-vue": "^6.0.1",
61
- "@vue/language-plugin-pug": "^3.0.8",
62
- "cross-env": "^10.0.0",
63
- "eslint": "^9.36.0",
64
- "fexios": "^3.1.0",
59
+ "@vue/language-plugin-pug": "^3.1.1",
60
+ "cross-env": "^10.1.0",
61
+ "eslint": "^9.37.0",
62
+ "fexios": "^3.2.0",
65
63
  "globals": "^16.4.0",
66
64
  "jsx-dom": "^8.1.6",
67
65
  "npm-run-all2": "^8.0.4",
@@ -69,25 +67,23 @@
69
67
  "pug": "^3.0.3",
70
68
  "rimraf": "^6.0.1",
71
69
  "sass-embedded": "^1.93.2",
72
- "tsx": "^4.20.5",
70
+ "tsx": "^4.20.6",
73
71
  "types-mediawiki": "^2.0.0",
74
- "typescript": "^5.9.2",
72
+ "typescript": "^5.9.3",
75
73
  "unplugin-auto-import": "^20.2.0",
76
74
  "unplugin-dts": "1.0.0-beta.6",
77
- "vite": "^7.1.7"
75
+ "vite": "^7.1.9",
76
+ "vitest": "^3.2.4"
78
77
  },
79
78
  "dependencies": {
80
79
  "@cordisjs/core": "^3.18.1",
81
80
  "@inpageedit/logger": "^0.1.0",
82
81
  "diff": "^8.0.2",
83
82
  "localforage": "^1.10.0",
84
- "schemastery": "^3.17.0",
85
- "schemastery-form": "^0.1.0",
86
- "vue": "^3.5.21",
87
- "wiki-saikou": "^5.0.0"
88
- },
89
- "peerDependencies": {
90
- "fexios": "^3.1.0"
83
+ "schemastery": "^3.17.1",
84
+ "vue": "^3.5.22",
85
+ "wiki-saikou": "^5.2.0",
86
+ "schemastery-form": "^0.2.0"
91
87
  },
92
88
  "keywords": [
93
89
  "mediawiki",
@@ -102,19 +98,22 @@
102
98
  "bugs": {
103
99
  "url": "https://github.com/inpageedit/inpageedit-next/issues"
104
100
  },
101
+ "peerDependencies": {
102
+ "fexios": "^3.2.0"
103
+ },
105
104
  "scripts": {
106
105
  "start": "zx dev/scripts/setup-dev.ts",
107
106
  "dev": "vite",
107
+ "test": "vitest run ./src",
108
108
  "build": "run-p build:*",
109
109
  "build:import": "cross-env VITE_BUILD_FORMAT=import vite build",
110
110
  "build:bundle": "cross-env VITE_BUILD_FORMAT=bundle vite build",
111
111
  "prepublish": "npm run build",
112
112
  "lint": "eslint ./src",
113
+ "unit-test": "vitest run ./src",
114
+ "unit-test:watch": "vitest ./src",
113
115
  "clean": "rimraf dist/* lib/*",
114
116
  "format": "prettier --write ./src",
115
- "doc:dev": "vitepress dev docs",
116
- "doc:build": "npm run build:import && vitepress build docs",
117
- "doc:preview": "vitepress preview docs",
118
117
  "typecheck": "tsc -b --pretty false --noEmit"
119
118
  }
120
119
  }
@@ -1,24 +0,0 @@
1
- import { c as s } from "./index-CvhkVj_L.js";
2
- const c = window?.location?.origin, p = ({
3
- type: n,
4
- tag: t,
5
- href: o,
6
- target: i,
7
- children: a,
8
- ...e
9
- }) => (t = t || (o ? "a" : "button"), typeof i > "u" && o && o.startsWith("http") && !o.startsWith(c) && (i = "_blank"), s(
10
- t,
11
- {
12
- className: `theme-ipe ipe-action-button btn btn-${n || "default"}`,
13
- // @ts-ignore
14
- href: t === "a" ? o : void 0,
15
- target: t === "a" ? i : void 0,
16
- "data-href": t !== "a" ? o : void 0,
17
- ...e
18
- },
19
- a
20
- ));
21
- export {
22
- p as A
23
- };
24
- //# sourceMappingURL=ActionButton-ByMKIthQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionButton-ByMKIthQ.js","sources":["../src/components/ActionButton.tsx"],"sourcesContent":["import { h, JSX, ReactNode } from 'jsx-dom'\r\n\r\nexport interface ActionButtonProps {\r\n type?: 'primary' | 'secondary' | 'danger' | 'default'\r\n tag?: 'a' | 'button' | 'div'\r\n}\r\n\r\nconst origin = window?.location?.origin\r\n\r\nexport const ActionButton = ({\r\n type,\r\n tag,\r\n href,\r\n target,\r\n children,\r\n ...rest\r\n}: ActionButtonProps &\r\n Omit<JSX.IntrinsicElements['button'], 'type'> &\r\n JSX.IntrinsicElements['a']) => {\r\n tag = tag || (href ? 'a' : 'button')\r\n if (\r\n typeof target === 'undefined' &&\r\n href &&\r\n href.startsWith('http') &&\r\n !href.startsWith(origin)\r\n ) {\r\n target = '_blank'\r\n }\r\n return h(\r\n tag,\r\n {\r\n className: `theme-ipe ipe-action-button btn btn-${type || 'default'}`,\r\n // @ts-ignore\r\n href: tag === 'a' ? href : undefined,\r\n target: tag === 'a' ? target : undefined,\r\n 'data-href': tag !== 'a' ? href : undefined,\r\n ...rest,\r\n },\r\n children\r\n )\r\n}\r\n"],"names":["origin","ActionButton","type","tag","href","target","children","rest","h"],"mappings":";AAOA,MAAMA,IAAS,QAAQ,UAAU,QAEpBC,IAAe,CAAC;AAAA,EAC3B,MAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,OAGEJ,IAAMA,MAAQC,IAAO,MAAM,WAEzB,OAAOC,IAAW,OAClBD,KACAA,EAAK,WAAW,MAAM,KACtB,CAACA,EAAK,WAAWJ,CAAM,MAEvBK,IAAS,WAEJG;AAAAA,EACLL;AAAA,EACA;AAAA,IACE,WAAW,uCAAuCD,KAAQ,SAAS;AAAA;AAAA,IAEnE,MAAMC,MAAQ,MAAMC,IAAO;AAAA,IAC3B,QAAQD,MAAQ,MAAME,IAAS;AAAA,IAC/B,aAAaF,MAAQ,MAAMC,IAAO;AAAA,IAClC,GAAGG;AAAA,EAAA;AAAA,EAELD;AAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BPsDFq9U.js","sources":["../src/components/TwinSwapInput/index.tsx"],"sourcesContent":["import { JSX } from 'jsx-dom/jsx-runtime'\r\nimport styles from './styles.module.sass'\r\n\r\nexport type TwinSwapInputProps = {\r\n inputs: [TwinSwapInputInput, TwinSwapInputInput]\r\n enableSwap?: boolean\r\n} & JSX.IntrinsicElements['div']\r\n\r\nexport interface TwinSwapInputInput {\r\n label?: string\r\n id?: string\r\n name: string\r\n value?: string\r\n disabled?: boolean\r\n inputProps?: Omit<JSX.IntrinsicElements['input'], 'name' | 'value'>\r\n}\r\n\r\nexport type TwinSwapElement = HTMLDivElement & {\r\n swap: () => void\r\n toggleEnableSwap: (enable?: boolean) => void\r\n}\r\n\r\nexport const TwinSwapInput = (props: TwinSwapInputProps) => {\r\n const { inputs, enableSwap = true, ...rest } = props\r\n\r\n const normalizedInputs =\r\n inputs?.length === 2\r\n ? inputs\r\n : ([inputs?.[0] ?? {}, inputs?.[1] ?? {}] as [TwinSwapInputInput, TwinSwapInputInput])\r\n\r\n // 内部稳定引用\r\n const inputRefs: [HTMLInputElement | null, HTMLInputElement | null] = [null, null]\r\n\r\n let swapCount = 0\r\n let swapBtnRef: HTMLButtonElement | null = null\r\n let svgRef: SVGElement | null = null\r\n\r\n const checkIfInputDisabled = () => inputRefs.some((el) => el && el.disabled)\r\n\r\n const swap = () => {\r\n if (!inputRefs[0] || !inputRefs[1]) return\r\n if (checkIfInputDisabled()) return\r\n\r\n const a = inputRefs[0]\r\n const b = inputRefs[1]\r\n const va = a.value\r\n const vb = b.value\r\n a.value = vb\r\n b.value = va\r\n\r\n // 与原实现一致:派发 change(不冒泡)\r\n a.dispatchEvent(new Event('change'))\r\n b.dispatchEvent(new Event('change'))\r\n\r\n swapCount++\r\n if (svgRef) {\r\n svgRef.style.transform = `rotateY(${swapCount * -180}deg)`\r\n svgRef.style.transition = 'transform 200ms ease'\r\n }\r\n }\r\n\r\n const toggleEnableSwap = (enable?: boolean) => {\r\n if (!swapBtnRef) return\r\n const next = enable ?? !swapBtnRef.disabled\r\n swapBtnRef.disabled = !next\r\n if (next) {\r\n // 与原实现一致:开启时把 inputs 解禁\r\n inputRefs.forEach((el) => {\r\n if (el) el.disabled = false\r\n })\r\n }\r\n }\r\n\r\n const swapButton = (\r\n <button\r\n type=\"button\"\r\n aria-label=\"Swap values\"\r\n onClick={swap}\r\n disabled={checkIfInputDisabled() || !enableSwap}\r\n ref={(el) => (swapBtnRef = el as HTMLButtonElement)}\r\n >\r\n <svg\r\n ref={(el) => (svgRef = el as unknown as SVGElement)}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"icon-tabler icons-tabler-outline icon-tabler-transfer\"\r\n >\r\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n <path d=\"M20 10h-16l5.5 -6\" />\r\n <path d=\"M4 14h16l-5.5 6\" />\r\n </svg>\r\n </button>\r\n ) as HTMLButtonElement\r\n\r\n const container = (\r\n <div className={`twin-swap-input ${styles.twinSwapInput}`} {...rest}>\r\n {normalizedInputs.map((input, index) => {\r\n const { label, id, name, value, disabled, inputProps } = input\r\n const isLeft = index === 0\r\n const inputId = id || name\r\n\r\n return (\r\n <div\r\n className={`${styles.inputWrapper} ${isLeft ? styles.inputLeft : styles.inputRight}`}\r\n >\r\n {label && <label htmlFor={inputId}>{label}</label>}\r\n <input\r\n ref={(el) => (inputRefs[index] = el as HTMLInputElement)}\r\n type=\"text\"\r\n id={inputId}\r\n name={name}\r\n value={value}\r\n disabled={disabled}\r\n {...inputProps}\r\n />\r\n </div>\r\n )\r\n })}\r\n\r\n <div className={styles.swapButton}>{swapButton}</div>\r\n </div>\r\n ) as TwinSwapElement\r\n\r\n container.swap = swap\r\n container.toggleEnableSwap = toggleEnableSwap\r\n\r\n return container\r\n}\r\n"],"names":["TwinSwapInput","props","inputs","enableSwap","rest","normalizedInputs","inputRefs","swapCount","swapBtnRef","svgRef","checkIfInputDisabled","el","swap","a","b","va","vb","toggleEnableSwap","enable","next","swapButton","jsx","jsxs","container","styles","input","index","label","id","name","value","disabled","inputProps","isLeft","inputId"],"mappings":"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"}