ai-word-editor 0.0.54 → 0.0.55

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.
@@ -1 +1 @@
1
- .ProseMirror span.comment-mark,.umo-editor span.comment-mark{border-bottom:2px solid #fbbf24;background-color:transparent;border-radius:0;cursor:text;transition:border-bottom-color .15s}.ProseMirror span.comment-mark:hover,.umo-editor span.comment-mark:hover{border-bottom-color:#facc15}.ProseMirror span.comment-mark--active,.umo-editor span.comment-mark--active{background-color:transparent;border-bottom-color:#f59e0b}.comment-panel[data-v-04c62453]{width:280px;min-width:280px;height:100%;border-left:1px solid #e5e7eb;background:#fafafa;display:flex;flex-direction:column;overflow:hidden}.comment-panel__header[data-v-04c62453]{padding:14px 16px 10px;border-bottom:1px solid #e5e7eb;background:#fff}.comment-panel__title[data-v-04c62453]{margin:0;font-size:14px;font-weight:600;color:#374151;display:flex;align-items:center;gap:6px}.comment-panel__badge[data-v-04c62453]{background:#f59e0b;color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;font-weight:500}.comment-panel__empty[data-v-04c62453]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca3af;gap:4px;padding:24px;text-align:center}.comment-panel__empty p[data-v-04c62453]{margin:0;font-size:13px}.comment-panel__empty-icon[data-v-04c62453]{font-size:32px;margin-bottom:8px;opacity:.5}.comment-panel__empty-hint[data-v-04c62453]{font-size:12px!important;color:#d1d5db}.comment-panel__list[data-v-04c62453]{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.comment-item[data-v-04c62453]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.comment-item[data-v-04c62453]:hover{border-color:#fbbf24;box-shadow:0 1px 4px #fbbf2426}.comment-item--active[data-v-04c62453]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.comment-item--resolved[data-v-04c62453]{opacity:.55}.comment-item--resolved .comment-item__note[data-v-04c62453]{text-decoration:line-through;color:#9ca3af}.comment-item__quote[data-v-04c62453]{font-size:12px;color:#6b7280;background:#fef9c3;border-left:3px solid #fbbf24;padding:4px 8px;border-radius:0 4px 4px 0;margin-bottom:6px;line-height:1.4}.comment-item__quote-icon[data-v-04c62453]{color:#fbbf24;margin-right:2px}.comment-item--c0 .comment-item__quote[data-v-04c62453]{background:#fef3c7cc;border-left-color:#f97316}.comment-item--c0 .comment-item__quote-icon[data-v-04c62453]{color:#f97316}.comment-item--c1 .comment-item__quote[data-v-04c62453]{background:#d1fae5d9;border-left-color:#22c55e}.comment-item--c1 .comment-item__quote-icon[data-v-04c62453]{color:#22c55e}.comment-item--c2 .comment-item__quote[data-v-04c62453]{background:#dbeafed9;border-left-color:#3b82f6}.comment-item--c2 .comment-item__quote-icon[data-v-04c62453]{color:#3b82f6}.comment-item--c3 .comment-item__quote[data-v-04c62453]{background:#ede9fee6;border-left-color:#a855f7}.comment-item--c3 .comment-item__quote-icon[data-v-04c62453]{color:#a855f7}.comment-item--c4 .comment-item__quote[data-v-04c62453]{background:#fce7f3e6;border-left-color:#ec4899}.comment-item--c4 .comment-item__quote-icon[data-v-04c62453]{color:#ec4899}.comment-item--c5 .comment-item__quote[data-v-04c62453]{background:#ccfbf1d9;border-left-color:#14b8a6}.comment-item--c5 .comment-item__quote-icon[data-v-04c62453]{color:#14b8a6}.comment-item--c6 .comment-item__quote[data-v-04c62453]{background:#fef9c3e6;border-left-color:#eab308}.comment-item--c6 .comment-item__quote-icon[data-v-04c62453]{color:#eab308}.comment-item--c7 .comment-item__quote[data-v-04c62453]{background:#ffe4e6e6;border-left-color:#f43f5e}.comment-item--c7 .comment-item__quote-icon[data-v-04c62453]{color:#f43f5e}.comment-item--c8 .comment-item__quote[data-v-04c62453]{background:#e0e7ffe6;border-left-color:#6366f1}.comment-item--c8 .comment-item__quote-icon[data-v-04c62453]{color:#6366f1}.comment-item--c9 .comment-item__quote[data-v-04c62453]{background:#ecfdc8e6;border-left-color:#84cc16}.comment-item--c9 .comment-item__quote-icon[data-v-04c62453]{color:#84cc16}.comment-item--c10 .comment-item__quote[data-v-04c62453]{background:#cffafee6;border-left-color:#06b6d4}.comment-item--c10 .comment-item__quote-icon[data-v-04c62453]{color:#06b6d4}.comment-item--c11 .comment-item__quote[data-v-04c62453]{background:#d1fae5d9;border-left-color:#10b981}.comment-item--c11 .comment-item__quote-icon[data-v-04c62453]{color:#10b981}.comment-item--c12 .comment-item__quote[data-v-04c62453]{background:#ede9fee6;border-left-color:#8b5cf6}.comment-item--c12 .comment-item__quote-icon[data-v-04c62453]{color:#8b5cf6}.comment-item--c13 .comment-item__quote[data-v-04c62453]{background:#faf0ffe6;border-left-color:#d946ef}.comment-item--c13 .comment-item__quote-icon[data-v-04c62453]{color:#d946ef}.comment-item--c14 .comment-item__quote[data-v-04c62453]{background:#e0f2fee6;border-left-color:#0ea5e9}.comment-item--c14 .comment-item__quote-icon[data-v-04c62453]{color:#0ea5e9}.comment-item--c15 .comment-item__quote[data-v-04c62453]{background:#ffedd5e6;border-left-color:#ea580c}.comment-item--c15 .comment-item__quote-icon[data-v-04c62453]{color:#ea580c}.comment-item--c16 .comment-item__quote[data-v-04c62453]{background:#fefce8e6;border-left-color:#ca8a04}.comment-item--c16 .comment-item__quote-icon[data-v-04c62453]{color:#ca8a04}.comment-item--c17 .comment-item__quote[data-v-04c62453]{background:#fee2e2e6;border-left-color:#dc2626}.comment-item--c17 .comment-item__quote-icon[data-v-04c62453]{color:#dc2626}.comment-item--c18 .comment-item__quote[data-v-04c62453]{background:#ccfbf1d9;border-left-color:#0d9488}.comment-item--c18 .comment-item__quote-icon[data-v-04c62453]{color:#0d9488}.comment-item--c19 .comment-item__quote[data-v-04c62453]{background:#f1f5f9e6;border-left-color:#64748b}.comment-item--c19 .comment-item__quote-icon[data-v-04c62453]{color:#64748b}.comment-item__note[data-v-04c62453]{font-size:13px;color:#374151;line-height:1.5;margin-bottom:6px;word-break:break-word}.comment-item__meta[data-v-04c62453]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:8px}.comment-item__author[data-v-04c62453]{font-weight:500}.comment-item__actions[data-v-04c62453]{display:flex;gap:6px;justify-content:flex-end}.comment-btn[data-v-04c62453]{border:none;border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s}.comment-btn--resolve[data-v-04c62453]{background:#ecfdf5;color:#059669}.comment-btn--resolve[data-v-04c62453]:hover{background:#d1fae5}.comment-btn--delete[data-v-04c62453]{background:#fef2f2;color:#dc2626}.comment-btn--delete[data-v-04c62453]:hover{background:#fee2e2}.dialog-backdrop[data-v-8cbc8293]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.dialog[data-v-8cbc8293]{background:#fff;border-radius:10px;box-shadow:0 20px 60px #00000026,0 4px 12px #00000014;width:460px;max-width:calc(100vw - 32px);overflow:hidden}.dialog__header[data-v-8cbc8293]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #e5e7eb}.dialog__title[data-v-8cbc8293]{margin:0;font-size:15px;font-weight:600;color:#111827}.dialog__close[data-v-8cbc8293]{border:none;background:none;font-size:14px;color:#9ca3af;cursor:pointer;padding:4px 6px;border-radius:4px;line-height:1}.dialog__close[data-v-8cbc8293]:hover{background:#f3f4f6;color:#374151}.dialog__quote[data-v-8cbc8293]{padding:12px 20px 0}.dialog__quote-label[data-v-8cbc8293]{font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.dialog__quote-text[data-v-8cbc8293]{margin:4px 0 0;padding:8px 12px;background:#fef9c3;border-left:3px solid #fbbf24;border-radius:0 4px 4px 0;font-size:13px;color:#374151;line-height:1.5}.dialog__body[data-v-8cbc8293]{padding:16px 20px 0}.dialog__label[data-v-8cbc8293]{display:block;font-size:12px;font-weight:500;color:#374151;margin-bottom:6px}.dialog__textarea[data-v-8cbc8293]{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;outline:none;color:#111827;line-height:1.5}.dialog__textarea[data-v-8cbc8293]:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.dialog__hint[data-v-8cbc8293]{margin:6px 0 0;font-size:11px;color:#9ca3af}.dialog__footer[data-v-8cbc8293]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px}.dialog__btn[data-v-8cbc8293]{border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.dialog__btn--cancel[data-v-8cbc8293]{background:#f3f4f6;color:#374151}.dialog__btn--cancel[data-v-8cbc8293]:hover{background:#e5e7eb}.dialog__btn--confirm[data-v-8cbc8293]{background:#f59e0b;color:#fff}.dialog__btn--confirm[data-v-8cbc8293]:hover:not(:disabled){background:#d97706}.dialog__btn--confirm[data-v-8cbc8293]:disabled{opacity:.45;cursor:not-allowed}.comment-gutter[data-v-ac6164bd]{position:absolute;top:12px;right:-300px;width:280px;pointer-events:none;display:flex;flex-direction:column}.gutter-item-wrapper[data-v-ac6164bd]{pointer-events:auto}.gutter-item[data-v-ac6164bd]{position:relative;width:100%;background:#fff;border:1px solid #e5e7eb;border-left-width:4px;border-radius:8px;padding:8px 10px;box-shadow:0 8px 18px #0000000f;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition:transform .12s,box-shadow .12s,border-color .12s}.gutter-item[data-v-ac6164bd]:hover{transform:translateY(-1px);box-shadow:0 10px 22px #00000014}.gutter-item--active[data-v-ac6164bd]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b38,0 10px 22px #00000014}.gutter-item--resolved[data-v-ac6164bd]{opacity:.6}.gutter-item__quote[data-v-ac6164bd]{font-size:12px;color:#6b7280;margin-bottom:4px}.gutter-item__note[data-v-ac6164bd]{font-size:13px;color:#374151;line-height:1.35;margin-bottom:6px;word-break:break-word}.gutter-item__meta[data-v-ac6164bd]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af}.gutter-item--c0[data-v-ac6164bd]{border-left-color:#f97316}.gutter-item--c1[data-v-ac6164bd]{border-left-color:#22c55e}.gutter-item--c2[data-v-ac6164bd]{border-left-color:#3b82f6}.gutter-item--c3[data-v-ac6164bd]{border-left-color:#a855f7}.gutter-item--c4[data-v-ac6164bd]{border-left-color:#ec4899}.gutter-item--c5[data-v-ac6164bd]{border-left-color:#14b8a6}.gutter-item--c6[data-v-ac6164bd]{border-left-color:#eab308}.gutter-item--c7[data-v-ac6164bd]{border-left-color:#f43f5e}.gutter-item--c8[data-v-ac6164bd]{border-left-color:#6366f1}.gutter-item--c9[data-v-ac6164bd]{border-left-color:#84cc16}.gutter-item--c10[data-v-ac6164bd]{border-left-color:#06b6d4}.gutter-item--c11[data-v-ac6164bd]{border-left-color:#10b981}.gutter-item--c12[data-v-ac6164bd]{border-left-color:#8b5cf6}.gutter-item--c13[data-v-ac6164bd]{border-left-color:#d946ef}.gutter-item--c14[data-v-ac6164bd]{border-left-color:#0ea5e9}.gutter-item--c15[data-v-ac6164bd]{border-left-color:#ea580c}.gutter-item--c16[data-v-ac6164bd]{border-left-color:#ca8a04}.gutter-item--c17[data-v-ac6164bd]{border-left-color:#dc2626}.gutter-item--c18[data-v-ac6164bd]{border-left-color:#0d9488}.gutter-item--c19[data-v-ac6164bd]{border-left-color:#64748b}.umo-editor-content table:has(colgroup[data-word-col-layout]) td,.umo-editor-content table:has(colgroup[data-word-col-layout]) th,.umo-editor-content table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.umo-editor-content table:has(colgroup col:nth-child(2)){table-layout:fixed}.umo-editor-content ul[type=disc] li>p:before,.umo-editor-content ul[type=circle] li>p:before,.umo-editor-content ul[type=square] li>p:before{content:none}.auth-page[data-v-b26905a7]{min-height:100%;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.auth-card[data-v-b26905a7]{background:#fff;border-radius:12px;padding:40px 36px;width:340px;box-shadow:0 4px 24px #0000001a}.auth-title[data-v-b26905a7]{font-size:20px;font-weight:700;color:#111827;text-align:center;margin:0 0 24px}.auth-tabs[data-v-b26905a7]{display:flex;gap:0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-bottom:20px}.auth-tab[data-v-b26905a7]{flex:1;padding:8px;border:none;background:transparent;cursor:pointer;font-size:14px;color:#6b7280;transition:background .15s,color .15s}.auth-tab--active[data-v-b26905a7]{background:#3b82f6;color:#fff}.auth-form[data-v-b26905a7]{display:flex;flex-direction:column;gap:12px}.auth-input[data-v-b26905a7]{padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}.auth-input[data-v-b26905a7]:focus{border-color:#3b82f6}.auth-submit[data-v-b26905a7]{padding:10px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.auth-submit[data-v-b26905a7]:hover:not(:disabled){background:#2563eb}.auth-submit[data-v-b26905a7]:disabled{opacity:.6;cursor:not-allowed}.auth-error[data-v-b26905a7]{color:#ef4444;font-size:13px;margin:0}.app-layout[data-v-b26905a7]{display:flex;width:100%;height:100%;overflow:hidden}.editor-wrapper[data-v-b26905a7]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.comment-toolbar[data-v-b26905a7]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border-bottom:1px solid #e5e7eb;z-index:10;flex-shrink:0}.toolbar-docname[data-v-b26905a7]{flex:1;min-width:0}.toolbar-docname__input[data-v-b26905a7]{width:100%;border:1px solid transparent;border-radius:4px;padding:3px 6px;font-size:14px;font-weight:600;color:#111827;background:transparent;outline:none;transition:border-color .15s,background .15s}.toolbar-docname__input[data-v-b26905a7]:hover,.toolbar-docname__input[data-v-b26905a7]:focus{border-color:#d1d5db;background:#f9fafb}.toolbar-docname--empty[data-v-b26905a7]{font-size:13px;color:#9ca3af}.toolbar-actions[data-v-b26905a7]{display:flex;gap:8px;flex-shrink:0}.toolbar-btn[data-v-b26905a7]{display:inline-flex;align-items:center;gap:5px;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.toolbar-btn[data-v-b26905a7]:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn__icon[data-v-b26905a7]{font-size:15px}.toolbar-btn--save[data-v-b26905a7]{background:#d1fae5;color:#065f46}.toolbar-btn--save[data-v-b26905a7]:hover:not(:disabled){background:#a7f3d0}.toolbar-btn--primary[data-v-b26905a7]{background:#fef3c7;color:#92400e}.toolbar-btn--primary[data-v-b26905a7]:hover:not(:disabled){background:#fde68a}.toolbar-btn--ai[data-v-b26905a7]{background:#ede9fe;color:#5b21b6}.toolbar-btn--ai[data-v-b26905a7]:hover:not(:disabled){background:#ddd6fe}.umo-editor-instance[data-v-b26905a7]{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.umo-editor-stage[data-v-b26905a7]{position:relative;flex:1;min-height:0;overflow:hidden}.umo-editor-stage[data-v-b26905a7]:fullscreen{width:100vw;height:100vh;background:#fff}.editor-placeholder[data-v-b26905a7]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.umo-custom-huge-btn[data-v-b26905a7]{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:auto;height:56px;padding:0 5px;margin:0;border:none;border-radius:var(--umo-radius, 3px);background:transparent;cursor:pointer;transition:background .2s;white-space:nowrap}.umo-custom-huge-btn[data-v-b26905a7]:hover:not(:disabled){background:var(--umo-button-hover-background, rgba(0, 0, 0, .06))}.umo-custom-huge-btn[data-v-b26905a7]:disabled{opacity:.5;cursor:not-allowed}.umo-custom-huge-btn__icon[data-v-b26905a7]{display:flex;align-items:center;justify-content:center;color:var(--umo-text-color, #3d3d3d);margin-top:3px}.umo-custom-huge-btn__icon svg[data-v-b26905a7]{width:24px;height:24px}.umo-custom-huge-btn__text[data-v-b26905a7]{display:block;font-size:12px;color:var(--umo-text-color, #3d3d3d);margin-top:2px;line-height:1.2}.html-dialog-mask[data-v-b26905a7]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.html-dialog[data-v-b26905a7]{background:#1e1e2e;border-radius:10px;width:min(860px,92vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0006}.html-dialog__header[data-v-b26905a7]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__title[data-v-b26905a7]{font-size:14px;font-weight:600;color:#cdd6f4}.html-dialog__close[data-v-b26905a7]{background:none;border:none;color:#6c7086;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.html-dialog__close[data-v-b26905a7]:hover{color:#cdd6f4;background:#313244}.html-dialog__toolbar[data-v-b26905a7]{display:flex;justify-content:flex-end;padding:8px 16px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__copy-btn[data-v-b26905a7]{font-size:12px;padding:4px 14px;border-radius:5px;border:1px solid #45475a;background:#313244;color:#cdd6f4;cursor:pointer;transition:background .15s,border-color .15s}.html-dialog__copy-btn[data-v-b26905a7]:hover{background:#45475a;border-color:#89b4fa;color:#89b4fa}.html-dialog__content[data-v-b26905a7]{flex:1;overflow:auto;margin:0;padding:16px 20px;font-family:Fira Code,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.7;color:#a6e3a1;white-space:pre-wrap;word-break:break-all}[data-v-b26905a7] table:has(colgroup[data-word-col-layout]) td,[data-v-b26905a7] table:has(colgroup[data-word-col-layout]) th,[data-v-b26905a7] table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.complex-comment-panel[data-v-9c5ef905]{width:360px;min-width:360px;height:100%;border-left:1px solid #e5e7eb;background:#f3f4f6;display:flex;flex-direction:column;overflow:hidden}.complex-comment-panel__header[data-v-9c5ef905]{padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__title[data-v-9c5ef905]{margin:0 0 10px;font-size:16px;font-weight:600;color:#111827}.complex-comment-panel__toolbar[data-v-9c5ef905]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.complex-comment-panel__download[data-v-9c5ef905]{border:none;border-radius:4px;padding:5px 14px;font-size:13px;font-weight:500;cursor:pointer;background:#2563eb;color:#fff}.complex-comment-panel__download[data-v-9c5ef905]:hover{background:#1d4ed8}.complex-comment-panel__risk-toggle[data-v-9c5ef905]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none}.complex-comment-panel__risk-toggle input[data-v-9c5ef905]{width:14px;height:14px;cursor:pointer}.complex-comment-panel__empty[data-v-9c5ef905]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.complex-comment-panel__tabs[data-v-9c5ef905]{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__tab[data-v-9c5ef905]{border:1px solid #e5e7eb;background:#fff;border-radius:4px;padding:4px 10px;font-size:12px;color:#6b7280;cursor:pointer}.complex-comment-panel__tab[data-v-9c5ef905]:hover{border-color:#93c5fd;color:#2563eb}.complex-comment-panel__tab--active[data-v-9c5ef905]{border-color:#2563eb;color:#2563eb;background:#eff6ff;font-weight:500}.complex-comment-panel__body[data-v-9c5ef905]{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.complex-comment-panel__section-head[data-v-9c5ef905]{margin-bottom:8px}.complex-comment-panel__section-title[data-v-9c5ef905]{font-size:14px;font-weight:600;color:#111827}.complex-comment-panel__cards[data-v-9c5ef905]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.audit-card[data-v-9c5ef905]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.audit-card[data-v-9c5ef905]:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000f}.audit-card--active[data-v-9c5ef905]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.audit-card__head[data-v-9c5ef905]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.audit-card__point[data-v-9c5ef905]{font-size:14px;font-weight:600;color:#111827;line-height:1.4;flex:1}.audit-card__badge[data-v-9c5ef905]{flex-shrink:0;font-size:12px;font-weight:500;padding:2px 8px;border-radius:4px;white-space:nowrap}.audit-card__badge--risk[data-v-9c5ef905]{background:#fee2e2;color:#dc2626}.audit-card__badge--ok[data-v-9c5ef905]{background:#22c55e;color:#fff}.audit-card__badge--muted[data-v-9c5ef905]{background:#f3f4f6;color:#6b7280}.audit-card__block[data-v-9c5ef905]{margin-bottom:4px}.audit-card__label[data-v-9c5ef905]{font-size:12px;color:#9ca3af;margin-bottom:6px}.audit-card__label--strong[data-v-9c5ef905]{color:#111827;font-weight:500}.audit-card__quote[data-v-9c5ef905]{font-size:13px;color:#6b7280;line-height:1.5;padding:8px 10px 8px 12px;border-left:3px solid #d1d5db;background:#f9fafb;border-radius:0 4px 4px 0;word-break:break-word}.audit-card__locate[data-v-9c5ef905]{margin-top:8px;border:none;background:none;padding:0;font-size:12px;color:#2563eb;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.audit-card__locate[data-v-9c5ef905]:hover{text-decoration:underline}.audit-card__locate-icon[data-v-9c5ef905]{font-size:14px;line-height:1;opacity:.85}.audit-card__divider[data-v-9c5ef905]{height:1px;background:#e5e7eb;margin:12px 0}.audit-card__block--desc[data-v-9c5ef905]{margin-bottom:0}.audit-card__desc[data-v-9c5ef905]{margin:0;font-size:13px;color:#374151;line-height:1.55;word-break:break-word}
1
+ .ProseMirror span.comment-mark,.umo-editor span.comment-mark{border-bottom:2px solid #fbbf24;background-color:transparent;border-radius:0;cursor:text;transition:border-bottom-color .15s}.ProseMirror span.comment-mark:hover,.umo-editor span.comment-mark:hover{border-bottom-color:#facc15}.ProseMirror span.comment-mark--active,.umo-editor span.comment-mark--active{background-color:transparent;border-bottom-color:#f59e0b}.comment-panel[data-v-10b7616a]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;border-left:1px solid #e5e7eb;background:#fafafa;display:flex;flex-direction:column;overflow:hidden}.comment-panel__header[data-v-10b7616a]{padding:14px 16px 10px;border-bottom:1px solid #e5e7eb;background:#fff}.comment-panel__title[data-v-10b7616a]{margin:0;font-size:14px;font-weight:600;color:#374151;display:flex;align-items:center;gap:6px}.comment-panel__badge[data-v-10b7616a]{background:#f59e0b;color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;font-weight:500}.comment-panel__empty[data-v-10b7616a]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca3af;gap:4px;padding:24px;text-align:center}.comment-panel__empty p[data-v-10b7616a]{margin:0;font-size:13px}.comment-panel__empty-icon[data-v-10b7616a]{font-size:32px;margin-bottom:8px;opacity:.5}.comment-panel__empty-hint[data-v-10b7616a]{font-size:12px!important;color:#d1d5db}.comment-panel__list[data-v-10b7616a]{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.comment-item[data-v-10b7616a]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.comment-item[data-v-10b7616a]:hover{border-color:#fbbf24;box-shadow:0 1px 4px #fbbf2426}.comment-item--active[data-v-10b7616a]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.comment-item--resolved[data-v-10b7616a]{opacity:.55}.comment-item--resolved .comment-item__note[data-v-10b7616a]{text-decoration:line-through;color:#9ca3af}.comment-item__quote[data-v-10b7616a]{font-size:12px;color:#6b7280;background:#fef9c3;border-left:3px solid #fbbf24;padding:4px 8px;border-radius:0 4px 4px 0;margin-bottom:6px;line-height:1.4}.comment-item__quote-icon[data-v-10b7616a]{color:#fbbf24;margin-right:2px}.comment-item--c0 .comment-item__quote[data-v-10b7616a]{background:#fef3c7cc;border-left-color:#f97316}.comment-item--c0 .comment-item__quote-icon[data-v-10b7616a]{color:#f97316}.comment-item--c1 .comment-item__quote[data-v-10b7616a]{background:#d1fae5d9;border-left-color:#22c55e}.comment-item--c1 .comment-item__quote-icon[data-v-10b7616a]{color:#22c55e}.comment-item--c2 .comment-item__quote[data-v-10b7616a]{background:#dbeafed9;border-left-color:#3b82f6}.comment-item--c2 .comment-item__quote-icon[data-v-10b7616a]{color:#3b82f6}.comment-item--c3 .comment-item__quote[data-v-10b7616a]{background:#ede9fee6;border-left-color:#a855f7}.comment-item--c3 .comment-item__quote-icon[data-v-10b7616a]{color:#a855f7}.comment-item--c4 .comment-item__quote[data-v-10b7616a]{background:#fce7f3e6;border-left-color:#ec4899}.comment-item--c4 .comment-item__quote-icon[data-v-10b7616a]{color:#ec4899}.comment-item--c5 .comment-item__quote[data-v-10b7616a]{background:#ccfbf1d9;border-left-color:#14b8a6}.comment-item--c5 .comment-item__quote-icon[data-v-10b7616a]{color:#14b8a6}.comment-item--c6 .comment-item__quote[data-v-10b7616a]{background:#fef9c3e6;border-left-color:#eab308}.comment-item--c6 .comment-item__quote-icon[data-v-10b7616a]{color:#eab308}.comment-item--c7 .comment-item__quote[data-v-10b7616a]{background:#ffe4e6e6;border-left-color:#f43f5e}.comment-item--c7 .comment-item__quote-icon[data-v-10b7616a]{color:#f43f5e}.comment-item--c8 .comment-item__quote[data-v-10b7616a]{background:#e0e7ffe6;border-left-color:#6366f1}.comment-item--c8 .comment-item__quote-icon[data-v-10b7616a]{color:#6366f1}.comment-item--c9 .comment-item__quote[data-v-10b7616a]{background:#ecfdc8e6;border-left-color:#84cc16}.comment-item--c9 .comment-item__quote-icon[data-v-10b7616a]{color:#84cc16}.comment-item--c10 .comment-item__quote[data-v-10b7616a]{background:#cffafee6;border-left-color:#06b6d4}.comment-item--c10 .comment-item__quote-icon[data-v-10b7616a]{color:#06b6d4}.comment-item--c11 .comment-item__quote[data-v-10b7616a]{background:#d1fae5d9;border-left-color:#10b981}.comment-item--c11 .comment-item__quote-icon[data-v-10b7616a]{color:#10b981}.comment-item--c12 .comment-item__quote[data-v-10b7616a]{background:#ede9fee6;border-left-color:#8b5cf6}.comment-item--c12 .comment-item__quote-icon[data-v-10b7616a]{color:#8b5cf6}.comment-item--c13 .comment-item__quote[data-v-10b7616a]{background:#faf0ffe6;border-left-color:#d946ef}.comment-item--c13 .comment-item__quote-icon[data-v-10b7616a]{color:#d946ef}.comment-item--c14 .comment-item__quote[data-v-10b7616a]{background:#e0f2fee6;border-left-color:#0ea5e9}.comment-item--c14 .comment-item__quote-icon[data-v-10b7616a]{color:#0ea5e9}.comment-item--c15 .comment-item__quote[data-v-10b7616a]{background:#ffedd5e6;border-left-color:#ea580c}.comment-item--c15 .comment-item__quote-icon[data-v-10b7616a]{color:#ea580c}.comment-item--c16 .comment-item__quote[data-v-10b7616a]{background:#fefce8e6;border-left-color:#ca8a04}.comment-item--c16 .comment-item__quote-icon[data-v-10b7616a]{color:#ca8a04}.comment-item--c17 .comment-item__quote[data-v-10b7616a]{background:#fee2e2e6;border-left-color:#dc2626}.comment-item--c17 .comment-item__quote-icon[data-v-10b7616a]{color:#dc2626}.comment-item--c18 .comment-item__quote[data-v-10b7616a]{background:#ccfbf1d9;border-left-color:#0d9488}.comment-item--c18 .comment-item__quote-icon[data-v-10b7616a]{color:#0d9488}.comment-item--c19 .comment-item__quote[data-v-10b7616a]{background:#f1f5f9e6;border-left-color:#64748b}.comment-item--c19 .comment-item__quote-icon[data-v-10b7616a]{color:#64748b}.comment-item__note[data-v-10b7616a]{font-size:13px;color:#374151;line-height:1.5;margin-bottom:6px;word-break:break-word}.comment-item__meta[data-v-10b7616a]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:8px}.comment-item__author[data-v-10b7616a]{font-weight:500}.comment-item__actions[data-v-10b7616a]{display:flex;gap:6px;justify-content:flex-end}.comment-btn[data-v-10b7616a]{border:none;border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s}.comment-btn--resolve[data-v-10b7616a]{background:#ecfdf5;color:#059669}.comment-btn--resolve[data-v-10b7616a]:hover{background:#d1fae5}.comment-btn--delete[data-v-10b7616a]{background:#fef2f2;color:#dc2626}.comment-btn--delete[data-v-10b7616a]:hover{background:#fee2e2}.dialog-backdrop[data-v-8cbc8293]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.dialog[data-v-8cbc8293]{background:#fff;border-radius:10px;box-shadow:0 20px 60px #00000026,0 4px 12px #00000014;width:460px;max-width:calc(100vw - 32px);overflow:hidden}.dialog__header[data-v-8cbc8293]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #e5e7eb}.dialog__title[data-v-8cbc8293]{margin:0;font-size:15px;font-weight:600;color:#111827}.dialog__close[data-v-8cbc8293]{border:none;background:none;font-size:14px;color:#9ca3af;cursor:pointer;padding:4px 6px;border-radius:4px;line-height:1}.dialog__close[data-v-8cbc8293]:hover{background:#f3f4f6;color:#374151}.dialog__quote[data-v-8cbc8293]{padding:12px 20px 0}.dialog__quote-label[data-v-8cbc8293]{font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.dialog__quote-text[data-v-8cbc8293]{margin:4px 0 0;padding:8px 12px;background:#fef9c3;border-left:3px solid #fbbf24;border-radius:0 4px 4px 0;font-size:13px;color:#374151;line-height:1.5}.dialog__body[data-v-8cbc8293]{padding:16px 20px 0}.dialog__label[data-v-8cbc8293]{display:block;font-size:12px;font-weight:500;color:#374151;margin-bottom:6px}.dialog__textarea[data-v-8cbc8293]{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;outline:none;color:#111827;line-height:1.5}.dialog__textarea[data-v-8cbc8293]:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.dialog__hint[data-v-8cbc8293]{margin:6px 0 0;font-size:11px;color:#9ca3af}.dialog__footer[data-v-8cbc8293]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px}.dialog__btn[data-v-8cbc8293]{border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.dialog__btn--cancel[data-v-8cbc8293]{background:#f3f4f6;color:#374151}.dialog__btn--cancel[data-v-8cbc8293]:hover{background:#e5e7eb}.dialog__btn--confirm[data-v-8cbc8293]{background:#f59e0b;color:#fff}.dialog__btn--confirm[data-v-8cbc8293]:hover:not(:disabled){background:#d97706}.dialog__btn--confirm[data-v-8cbc8293]:disabled{opacity:.45;cursor:not-allowed}.comment-gutter[data-v-ac6164bd]{position:absolute;top:12px;right:-300px;width:280px;pointer-events:none;display:flex;flex-direction:column}.gutter-item-wrapper[data-v-ac6164bd]{pointer-events:auto}.gutter-item[data-v-ac6164bd]{position:relative;width:100%;background:#fff;border:1px solid #e5e7eb;border-left-width:4px;border-radius:8px;padding:8px 10px;box-shadow:0 8px 18px #0000000f;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition:transform .12s,box-shadow .12s,border-color .12s}.gutter-item[data-v-ac6164bd]:hover{transform:translateY(-1px);box-shadow:0 10px 22px #00000014}.gutter-item--active[data-v-ac6164bd]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b38,0 10px 22px #00000014}.gutter-item--resolved[data-v-ac6164bd]{opacity:.6}.gutter-item__quote[data-v-ac6164bd]{font-size:12px;color:#6b7280;margin-bottom:4px}.gutter-item__note[data-v-ac6164bd]{font-size:13px;color:#374151;line-height:1.35;margin-bottom:6px;word-break:break-word}.gutter-item__meta[data-v-ac6164bd]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af}.gutter-item--c0[data-v-ac6164bd]{border-left-color:#f97316}.gutter-item--c1[data-v-ac6164bd]{border-left-color:#22c55e}.gutter-item--c2[data-v-ac6164bd]{border-left-color:#3b82f6}.gutter-item--c3[data-v-ac6164bd]{border-left-color:#a855f7}.gutter-item--c4[data-v-ac6164bd]{border-left-color:#ec4899}.gutter-item--c5[data-v-ac6164bd]{border-left-color:#14b8a6}.gutter-item--c6[data-v-ac6164bd]{border-left-color:#eab308}.gutter-item--c7[data-v-ac6164bd]{border-left-color:#f43f5e}.gutter-item--c8[data-v-ac6164bd]{border-left-color:#6366f1}.gutter-item--c9[data-v-ac6164bd]{border-left-color:#84cc16}.gutter-item--c10[data-v-ac6164bd]{border-left-color:#06b6d4}.gutter-item--c11[data-v-ac6164bd]{border-left-color:#10b981}.gutter-item--c12[data-v-ac6164bd]{border-left-color:#8b5cf6}.gutter-item--c13[data-v-ac6164bd]{border-left-color:#d946ef}.gutter-item--c14[data-v-ac6164bd]{border-left-color:#0ea5e9}.gutter-item--c15[data-v-ac6164bd]{border-left-color:#ea580c}.gutter-item--c16[data-v-ac6164bd]{border-left-color:#ca8a04}.gutter-item--c17[data-v-ac6164bd]{border-left-color:#dc2626}.gutter-item--c18[data-v-ac6164bd]{border-left-color:#0d9488}.gutter-item--c19[data-v-ac6164bd]{border-left-color:#64748b}.umo-editor-content table:has(colgroup[data-word-col-layout]) td,.umo-editor-content table:has(colgroup[data-word-col-layout]) th,.umo-editor-content table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.umo-editor-content table:has(colgroup col:nth-child(2)){table-layout:fixed}.umo-editor-content ul[type=disc] li>p:before,.umo-editor-content ul[type=circle] li>p:before,.umo-editor-content ul[type=square] li>p:before{content:none}.auth-page[data-v-17559b0a]{min-height:100%;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.auth-card[data-v-17559b0a]{background:#fff;border-radius:12px;padding:40px 36px;width:340px;box-shadow:0 4px 24px #0000001a}.auth-title[data-v-17559b0a]{font-size:20px;font-weight:700;color:#111827;text-align:center;margin:0 0 24px}.auth-tabs[data-v-17559b0a]{display:flex;gap:0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-bottom:20px}.auth-tab[data-v-17559b0a]{flex:1;padding:8px;border:none;background:transparent;cursor:pointer;font-size:14px;color:#6b7280;transition:background .15s,color .15s}.auth-tab--active[data-v-17559b0a]{background:#3b82f6;color:#fff}.auth-form[data-v-17559b0a]{display:flex;flex-direction:column;gap:12px}.auth-input[data-v-17559b0a]{padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}.auth-input[data-v-17559b0a]:focus{border-color:#3b82f6}.auth-submit[data-v-17559b0a]{padding:10px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.auth-submit[data-v-17559b0a]:hover:not(:disabled){background:#2563eb}.auth-submit[data-v-17559b0a]:disabled{opacity:.6;cursor:not-allowed}.auth-error[data-v-17559b0a]{color:#ef4444;font-size:13px;margin:0}.app-layout[data-v-17559b0a]{display:flex;width:100%;height:100%;overflow:hidden}.editor-wrapper[data-v-17559b0a]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.app-layout__comment-aside[data-v-17559b0a]{flex:0 1 clamp(280px,36vw,720px);min-width:0;max-width:100%;display:flex;flex-direction:column;overflow:hidden}.comment-toolbar[data-v-17559b0a]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border-bottom:1px solid #e5e7eb;z-index:10;flex-shrink:0}.toolbar-docname[data-v-17559b0a]{flex:1;min-width:0}.toolbar-docname__input[data-v-17559b0a]{width:100%;border:1px solid transparent;border-radius:4px;padding:3px 6px;font-size:14px;font-weight:600;color:#111827;background:transparent;outline:none;transition:border-color .15s,background .15s}.toolbar-docname__input[data-v-17559b0a]:hover,.toolbar-docname__input[data-v-17559b0a]:focus{border-color:#d1d5db;background:#f9fafb}.toolbar-docname--empty[data-v-17559b0a]{font-size:13px;color:#9ca3af}.toolbar-actions[data-v-17559b0a]{display:flex;gap:8px;flex-shrink:0}.toolbar-btn[data-v-17559b0a]{display:inline-flex;align-items:center;gap:5px;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.toolbar-btn[data-v-17559b0a]:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn__icon[data-v-17559b0a]{font-size:15px}.toolbar-btn--save[data-v-17559b0a]{background:#d1fae5;color:#065f46}.toolbar-btn--save[data-v-17559b0a]:hover:not(:disabled){background:#a7f3d0}.toolbar-btn--primary[data-v-17559b0a]{background:#fef3c7;color:#92400e}.toolbar-btn--primary[data-v-17559b0a]:hover:not(:disabled){background:#fde68a}.toolbar-btn--ai[data-v-17559b0a]{background:#ede9fe;color:#5b21b6}.toolbar-btn--ai[data-v-17559b0a]:hover:not(:disabled){background:#ddd6fe}.umo-editor-instance[data-v-17559b0a]{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.umo-editor-stage[data-v-17559b0a]{position:relative;flex:1;min-height:0;overflow:hidden}.umo-editor-stage[data-v-17559b0a]:fullscreen{width:100vw;height:100vh;background:#fff}.editor-placeholder[data-v-17559b0a]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.umo-custom-huge-btn[data-v-17559b0a]{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:auto;height:56px;padding:0 5px;margin:0;border:none;border-radius:var(--umo-radius, 3px);background:transparent;cursor:pointer;transition:background .2s;white-space:nowrap}.umo-custom-huge-btn[data-v-17559b0a]:hover:not(:disabled){background:var(--umo-button-hover-background, rgba(0, 0, 0, .06))}.umo-custom-huge-btn[data-v-17559b0a]:disabled{opacity:.5;cursor:not-allowed}.umo-custom-huge-btn__icon[data-v-17559b0a]{display:flex;align-items:center;justify-content:center;color:var(--umo-text-color, #3d3d3d);margin-top:3px}.umo-custom-huge-btn__icon svg[data-v-17559b0a]{width:24px;height:24px}.umo-custom-huge-btn__text[data-v-17559b0a]{display:block;font-size:12px;color:var(--umo-text-color, #3d3d3d);margin-top:2px;line-height:1.2}.html-dialog-mask[data-v-17559b0a]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.html-dialog[data-v-17559b0a]{background:#1e1e2e;border-radius:10px;width:min(860px,92vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0006}.html-dialog__header[data-v-17559b0a]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__title[data-v-17559b0a]{font-size:14px;font-weight:600;color:#cdd6f4}.html-dialog__close[data-v-17559b0a]{background:none;border:none;color:#6c7086;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.html-dialog__close[data-v-17559b0a]:hover{color:#cdd6f4;background:#313244}.html-dialog__toolbar[data-v-17559b0a]{display:flex;justify-content:flex-end;padding:8px 16px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__copy-btn[data-v-17559b0a]{font-size:12px;padding:4px 14px;border-radius:5px;border:1px solid #45475a;background:#313244;color:#cdd6f4;cursor:pointer;transition:background .15s,border-color .15s}.html-dialog__copy-btn[data-v-17559b0a]:hover{background:#45475a;border-color:#89b4fa;color:#89b4fa}.html-dialog__content[data-v-17559b0a]{flex:1;overflow:auto;margin:0;padding:16px 20px;font-family:Fira Code,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.7;color:#a6e3a1;white-space:pre-wrap;word-break:break-all}[data-v-17559b0a] table:has(colgroup[data-word-col-layout]) td,[data-v-17559b0a] table:has(colgroup[data-word-col-layout]) th,[data-v-17559b0a] table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.complex-comment-panel[data-v-857048b4]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;border-left:1px solid #e5e7eb;background:#f3f4f6;display:flex;flex-direction:column;overflow:hidden}.complex-comment-panel__header[data-v-857048b4]{padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__title[data-v-857048b4]{margin:0 0 10px;font-size:16px;font-weight:600;color:#111827}.complex-comment-panel__toolbar[data-v-857048b4]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.complex-comment-panel__download[data-v-857048b4]{border:none;border-radius:4px;padding:5px 14px;font-size:13px;font-weight:500;cursor:pointer;background:#2563eb;color:#fff}.complex-comment-panel__download[data-v-857048b4]:hover{background:#1d4ed8}.complex-comment-panel__risk-toggle[data-v-857048b4]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none}.complex-comment-panel__risk-toggle input[data-v-857048b4]{width:14px;height:14px;cursor:pointer}.complex-comment-panel__empty[data-v-857048b4]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.complex-comment-panel__tabs[data-v-857048b4]{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__tab[data-v-857048b4]{border:1px solid #e5e7eb;background:#fff;border-radius:4px;padding:4px 10px;font-size:12px;color:#6b7280;cursor:pointer}.complex-comment-panel__tab[data-v-857048b4]:hover{border-color:#93c5fd;color:#2563eb}.complex-comment-panel__tab--active[data-v-857048b4]{border-color:#2563eb;color:#2563eb;background:#eff6ff;font-weight:500}.complex-comment-panel__body[data-v-857048b4]{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.complex-comment-panel__section-head[data-v-857048b4]{margin-bottom:8px}.complex-comment-panel__section-title[data-v-857048b4]{font-size:14px;font-weight:600;color:#111827}.complex-comment-panel__cards[data-v-857048b4]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.audit-card[data-v-857048b4]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.audit-card[data-v-857048b4]:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000f}.audit-card--active[data-v-857048b4]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.audit-card__head[data-v-857048b4]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.audit-card__point[data-v-857048b4]{font-size:14px;font-weight:600;color:#111827;line-height:1.4;flex:1}.audit-card__badge[data-v-857048b4]{flex-shrink:0;font-size:12px;font-weight:500;padding:2px 8px;border-radius:4px;white-space:nowrap}.audit-card__badge--risk[data-v-857048b4]{background:#fee2e2;color:#dc2626}.audit-card__badge--ok[data-v-857048b4]{background:#22c55e;color:#fff}.audit-card__badge--muted[data-v-857048b4]{background:#f3f4f6;color:#6b7280}.audit-card__block[data-v-857048b4]{margin-bottom:4px}.audit-card__label[data-v-857048b4]{font-size:12px;color:#9ca3af;margin-bottom:6px}.audit-card__label--strong[data-v-857048b4]{color:#111827;font-weight:500}.audit-card__quote[data-v-857048b4]{font-size:13px;color:#6b7280;line-height:1.5;padding:8px 10px 8px 12px;border-left:3px solid #d1d5db;background:#f9fafb;border-radius:0 4px 4px 0;word-break:break-word}.audit-card__locate[data-v-857048b4]{margin-top:8px;border:none;background:none;padding:0;font-size:12px;color:#2563eb;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.audit-card__locate[data-v-857048b4]:hover{text-decoration:underline}.audit-card__locate-icon[data-v-857048b4]{font-size:14px;line-height:1;opacity:.85}.audit-card__divider[data-v-857048b4]{height:1px;background:#e5e7eb;margin:12px 0}.audit-card__block--desc[data-v-857048b4]{margin-bottom:0}.audit-card__desc[data-v-857048b4]{margin:0;font-size:13px;color:#374151;line-height:1.55;word-break:break-word}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useUmoEditor as Bi } from "@umoteam/editor";
2
- import { computed as ue, openBlock as O, createElementBlock as J, createElementVNode as p, createTextVNode as Jn, toDisplayString as _, createCommentVNode as Be, Fragment as Je, renderList as xt, normalizeClass as vt, withModifiers as ze, ref as $, onMounted as Dn, createBlock as ft, Teleport as Pn, withDirectives as ro, withKeys as Ln, vModelText as Ji, watch as De, normalizeStyle as Di, defineComponent as Pi, onUnmounted as br, useAttrs as Li, resolveComponent as qi, createVNode as Wi, mergeProps as Vi, withCtx as Cr, renderSlot as ji, unref as Xe, nextTick as Hi, createApp as Ui, h as Gi, vModelCheckbox as Ki } from "vue";
2
+ import { computed as ue, openBlock as O, createElementBlock as J, createElementVNode as p, createTextVNode as Jn, toDisplayString as _, createCommentVNode as Be, Fragment as tt, renderList as xt, normalizeClass as vt, withModifiers as ze, ref as $, onMounted as Dn, createBlock as ft, Teleport as Pn, withDirectives as ro, withKeys as Ln, vModelText as Ji, watch as Je, normalizeStyle as Di, defineComponent as Pi, onUnmounted as br, useAttrs as Li, resolveComponent as qi, createVNode as Wi, mergeProps as Vi, withCtx as Cr, renderSlot as ji, unref as Qe, nextTick as Hi, createApp as Ui, h as Gi, vModelCheckbox as Ki } from "vue";
3
3
  import { e as Qi, a as Tr, b as Xi, c as Mr, s as Er } from "./wordDocxExport-CoHu1Ogg.js";
4
4
  import { parseDocxToJson as Yi, parseDocxToHtml as Zi, parseDocxComments as es } from "./wordDocxImport.js";
5
5
  const Ot = (r, e) => {
@@ -49,7 +49,7 @@ const Ot = (r, e) => {
49
49
  p("p", null, "暂无批注", -1),
50
50
  p("p", { class: "comment-panel__empty-hint" }, "选中文本后点击「添加批注」", -1)
51
51
  ])])) : (O(), J("ul", ls, [
52
- (O(!0), J(Je, null, xt(r.comments, (c) => (O(), J("li", {
52
+ (O(!0), J(tt, null, xt(r.comments, (c) => (O(), J("li", {
53
53
  key: c.id,
54
54
  class: vt(["comment-item", [
55
55
  `comment-item--c${c.colorIndex ?? 0}`,
@@ -85,7 +85,7 @@ const Ot = (r, e) => {
85
85
  ]))
86
86
  ]));
87
87
  }
88
- }, ks = /* @__PURE__ */ Ot(ys, [["__scopeId", "data-v-04c62453"]]), ws = { class: "dialog" }, xs = { class: "dialog__header" }, vs = {
88
+ }, ks = /* @__PURE__ */ Ot(ys, [["__scopeId", "data-v-10b7616a"]]), ws = { class: "dialog" }, xs = { class: "dialog__header" }, vs = {
89
89
  key: 0,
90
90
  class: "dialog__quote"
91
91
  }, Ss = { class: "dialog__quote-text" }, bs = { class: "dialog__body" }, Cs = ["onKeydown"], Ts = { class: "dialog__footer" }, Ms = ["disabled"], Es = {
@@ -701,7 +701,7 @@ let L = class qn {
701
701
  };
702
702
  L.none = [];
703
703
  let rn = class extends Error {
704
- }, T = class Ye {
704
+ }, T = class Xe {
705
705
  /**
706
706
  Create a slice. When specifying a non-zero open depth, you must
707
707
  make sure that there are nodes of at least that depth at the
@@ -728,13 +728,13 @@ let rn = class extends Error {
728
728
  */
729
729
  insertAt(e, t) {
730
730
  let n = lo(this.content, e + this.openStart, t);
731
- return n && new Ye(n, this.openStart, this.openEnd);
731
+ return n && new Xe(n, this.openStart, this.openEnd);
732
732
  }
733
733
  /**
734
734
  @internal
735
735
  */
736
736
  removeBetween(e, t) {
737
- return new Ye(so(this.content, e + this.openStart, t + this.openStart), this.openStart, this.openEnd);
737
+ return new Xe(so(this.content, e + this.openStart, t + this.openStart), this.openStart, this.openEnd);
738
738
  }
739
739
  /**
740
740
  Tests whether this slice is equal to another slice.
@@ -762,11 +762,11 @@ let rn = class extends Error {
762
762
  */
763
763
  static fromJSON(e, t) {
764
764
  if (!t)
765
- return Ye.empty;
765
+ return Xe.empty;
766
766
  let n = t.openStart || 0, o = t.openEnd || 0;
767
767
  if (typeof n != "number" || typeof o != "number")
768
768
  throw new RangeError("Invalid input for Slice.fromJSON");
769
- return new Ye(S.fromJSON(e, t.content), n, o);
769
+ return new Xe(S.fromJSON(e, t.content), n, o);
770
770
  }
771
771
  /**
772
772
  Create a slice from a fragment by taking the maximum possible
@@ -778,7 +778,7 @@ let rn = class extends Error {
778
778
  n++;
779
779
  for (let i = e.lastChild; i && !i.isLeaf && (t || !i.type.spec.isolating); i = i.lastChild)
780
780
  o++;
781
- return new Ye(e, n, o);
781
+ return new Xe(e, n, o);
782
782
  }
783
783
  };
784
784
  T.empty = new T(S.empty, 0, 0);
@@ -815,12 +815,12 @@ function ao(r, e, t, n) {
815
815
  } else if (t.content.size)
816
816
  if (!t.openStart && !t.openEnd && r.depth == n && e.depth == n) {
817
817
  let s = r.parent, l = s.content;
818
- return je(s, l.cut(0, r.parentOffset).append(t.content).append(l.cut(e.parentOffset)));
818
+ return Ve(s, l.cut(0, r.parentOffset).append(t.content).append(l.cut(e.parentOffset)));
819
819
  } else {
820
820
  let { start: s, end: l } = Os(t, r);
821
- return je(i, uo(r, s, l, e, n));
821
+ return Ve(i, uo(r, s, l, e, n));
822
822
  }
823
- else return je(i, on(r, e, n));
823
+ else return Ve(i, on(r, e, n));
824
824
  }
825
825
  function co(r, e) {
826
826
  if (!e.type.compatibleContent(r.type))
@@ -830,29 +830,29 @@ function Wn(r, e, t) {
830
830
  let n = r.node(t);
831
831
  return co(n, e.node(t)), n;
832
832
  }
833
- function Ve(r, e) {
833
+ function We(r, e) {
834
834
  let t = e.length - 1;
835
835
  t >= 0 && r.isText && r.sameMarkup(e[t]) ? e[t] = r.withText(e[t].text + r.text) : e.push(r);
836
836
  }
837
837
  function St(r, e, t, n) {
838
838
  let o = (e || r).node(t), i = 0, s = e ? e.index(t) : o.childCount;
839
- r && (i = r.index(t), r.depth > t ? i++ : r.textOffset && (Ve(r.nodeAfter, n), i++));
839
+ r && (i = r.index(t), r.depth > t ? i++ : r.textOffset && (We(r.nodeAfter, n), i++));
840
840
  for (let l = i; l < s; l++)
841
- Ve(o.child(l), n);
842
- e && e.depth == t && e.textOffset && Ve(e.nodeBefore, n);
841
+ We(o.child(l), n);
842
+ e && e.depth == t && e.textOffset && We(e.nodeBefore, n);
843
843
  }
844
- function je(r, e) {
844
+ function Ve(r, e) {
845
845
  return r.type.checkContent(e), r.copy(e);
846
846
  }
847
847
  function uo(r, e, t, n, o) {
848
848
  let i = r.depth > o && Wn(r, e, o + 1), s = n.depth > o && Wn(t, n, o + 1), l = [];
849
- return St(null, r, o, l), i && s && e.index(o) == t.index(o) ? (co(i, s), Ve(je(i, uo(r, e, t, n, o + 1)), l)) : (i && Ve(je(i, on(r, e, o + 1)), l), St(e, t, o, l), s && Ve(je(s, on(t, n, o + 1)), l)), St(n, null, o, l), new S(l);
849
+ return St(null, r, o, l), i && s && e.index(o) == t.index(o) ? (co(i, s), We(Ve(i, uo(r, e, t, n, o + 1)), l)) : (i && We(Ve(i, on(r, e, o + 1)), l), St(e, t, o, l), s && We(Ve(s, on(t, n, o + 1)), l)), St(n, null, o, l), new S(l);
850
850
  }
851
851
  function on(r, e, t) {
852
852
  let n = [];
853
853
  if (St(null, r, t, n), r.depth > t) {
854
854
  let o = Wn(r, e, t + 1);
855
- Ve(je(o, on(r, e, t + 1)), n);
855
+ We(Ve(o, on(r, e, t + 1)), n);
856
856
  }
857
857
  return St(e, null, t, n), new S(n);
858
858
  }
@@ -1572,7 +1572,7 @@ function fo(r, e) {
1572
1572
  e = r[t].type.name + "(" + e + ")";
1573
1573
  return e;
1574
1574
  }
1575
- class He {
1575
+ class je {
1576
1576
  /**
1577
1577
  @internal
1578
1578
  */
@@ -1585,7 +1585,7 @@ class He {
1585
1585
  static parse(e, t) {
1586
1586
  let n = new $s(e, t);
1587
1587
  if (n.next == null)
1588
- return He.empty;
1588
+ return je.empty;
1589
1589
  let o = ho(n);
1590
1590
  n.next && n.err("Unexpected trailing text");
1591
1591
  let i = Ls(Ps(o));
@@ -1734,7 +1734,7 @@ class He {
1734
1734
  `);
1735
1735
  }
1736
1736
  }
1737
- He.empty = new He(!0);
1737
+ je.empty = new je(!0);
1738
1738
  class $s {
1739
1739
  constructor(e, t) {
1740
1740
  this.string = e, this.nodeTypes = t, this.inline = null, this.pos = 0, this.tokens = e.split(/\s*(?=\b|\W|$)/), this.tokens[this.tokens.length - 1] == "" && this.tokens.pop(), this.tokens[0] == "" && this.tokens.shift();
@@ -1897,7 +1897,7 @@ function Ls(r) {
1897
1897
  });
1898
1898
  });
1899
1899
  });
1900
- let i = e[n.join(",")] = new He(n.indexOf(r.length - 1) > -1);
1900
+ let i = e[n.join(",")] = new je(n.indexOf(r.length - 1) > -1);
1901
1901
  for (let s = 0; s < o.length; s++) {
1902
1902
  let l = o[s][1].sort(po);
1903
1903
  i.next.push({ type: o[s][0], next: e[l.join(",")] || t(l) });
@@ -1980,7 +1980,7 @@ class an {
1980
1980
  True for node types that allow no content.
1981
1981
  */
1982
1982
  get isLeaf() {
1983
- return this.contentMatch == He.empty;
1983
+ return this.contentMatch == je.empty;
1984
1984
  }
1985
1985
  /**
1986
1986
  True when this node is an atom, i.e. when it does not have
@@ -2221,7 +2221,7 @@ class js {
2221
2221
  if (o in this.marks)
2222
2222
  throw new RangeError(o + " can not be both a node and a mark");
2223
2223
  let i = this.nodes[o], s = i.spec.content || "", l = i.spec.marks;
2224
- if (i.contentMatch = n[s] || (n[s] = He.parse(s, this.nodes)), i.inlineContent = i.contentMatch.inlineContent, i.spec.linebreakReplacement) {
2224
+ if (i.contentMatch = n[s] || (n[s] = je.parse(s, this.nodes)), i.inlineContent = i.contentMatch.inlineContent, i.spec.linebreakReplacement) {
2225
2225
  if (this.linebreakReplacement)
2226
2226
  throw new RangeError("Multiple linebreak nodes defined");
2227
2227
  if (!i.isInline || !i.isLeaf)
@@ -2850,15 +2850,15 @@ let Br = class {
2850
2850
  get deletedAcross() {
2851
2851
  return (this.delInfo & Qt) > 0;
2852
2852
  }
2853
- }, Ue = class Ze {
2853
+ }, He = class Ye {
2854
2854
  /**
2855
2855
  Create a position map. The modifications to the document are
2856
2856
  represented as an array of numbers, in which each group of three
2857
2857
  represents a modified chunk as `[start, oldSize, newSize]`.
2858
2858
  */
2859
2859
  constructor(e, t = !1) {
2860
- if (this.ranges = e, this.inverted = t, !e.length && Ze.empty)
2861
- return Ze.empty;
2860
+ if (this.ranges = e, this.inverted = t, !e.length && Ye.empty)
2861
+ return Ye.empty;
2862
2862
  }
2863
2863
  /**
2864
2864
  @internal
@@ -2929,7 +2929,7 @@ let Br = class {
2929
2929
  map positions in the post-step document to the pre-step document.
2930
2930
  */
2931
2931
  invert() {
2932
- return new Ze(this.ranges, !this.inverted);
2932
+ return new Ye(this.ranges, !this.inverted);
2933
2933
  }
2934
2934
  /**
2935
2935
  @internal
@@ -2943,10 +2943,10 @@ let Br = class {
2943
2943
  sub-document to a larger document, or vice-versa.
2944
2944
  */
2945
2945
  static offset(e) {
2946
- return e == 0 ? Ze.empty : new Ze(e < 0 ? [0, -e, 0] : [0, 0, e]);
2946
+ return e == 0 ? Ye.empty : new Ye(e < 0 ? [0, -e, 0] : [0, 0, e]);
2947
2947
  }
2948
2948
  };
2949
- Ue.empty = new Ue([]);
2949
+ He.empty = new He([]);
2950
2950
  const En = /* @__PURE__ */ Object.create(null);
2951
2951
  let te = class {
2952
2952
  /**
@@ -2955,7 +2955,7 @@ let te = class {
2955
2955
  and the new document.
2956
2956
  */
2957
2957
  getMap() {
2958
- return Ue.empty;
2958
+ return He.empty;
2959
2959
  }
2960
2960
  /**
2961
2961
  Try to merge this step with another one, to be applied directly
@@ -3204,7 +3204,7 @@ let it = class Fe extends te {
3204
3204
  return this.structure && Hn(e, this.from, this.to) ? ie.fail("Structure replace would overwrite content") : ie.fromReplace(e, this.from, this.to, this.slice);
3205
3205
  }
3206
3206
  getMap() {
3207
- return new Ue([this.from, this.to - this.from, this.slice.size]);
3207
+ return new He([this.from, this.to - this.from, this.slice.size]);
3208
3208
  }
3209
3209
  invert(e) {
3210
3210
  return new Fe(this.from, this.from + this.slice.size, e.slice(this.from, this.to));
@@ -3259,7 +3259,7 @@ let Se = class Xt extends te {
3259
3259
  return n ? ie.fromReplace(e, this.from, this.to, n) : ie.fail("Content does not fit in gap");
3260
3260
  }
3261
3261
  getMap() {
3262
- return new Ue([
3262
+ return new He([
3263
3263
  this.from,
3264
3264
  this.gapFrom - this.from,
3265
3265
  this.insert,
@@ -3366,7 +3366,7 @@ function Ie(r, e, t = 1, n) {
3366
3366
  let l = o.indexAfter(i), a = n && n[0];
3367
3367
  return o.node(i).canReplaceWith(l, l, a ? a.type : o.node(i + 1).type);
3368
3368
  }
3369
- function Ge(r, e) {
3369
+ function Ue(r, e) {
3370
3370
  let t = r.resolve(e), n = t.index();
3371
3371
  return Ao(t.nodeBefore, t.nodeAfter) && t.parent.canReplace(n, n + 1);
3372
3372
  }
@@ -3599,7 +3599,7 @@ let sl = class Yt extends te {
3599
3599
  return ie.fromReplace(e, this.pos, this.pos + 1, new T(S.from(o), 0, t.isLeaf ? 0 : 1));
3600
3600
  }
3601
3601
  getMap() {
3602
- return Ue.empty;
3602
+ return He.empty;
3603
3603
  }
3604
3604
  invert(e) {
3605
3605
  return new Yt(this.pos, this.attr, e.nodeAt(this.pos).attrs[this.attr]);
@@ -3634,7 +3634,7 @@ let ll = class Un extends te {
3634
3634
  return ie.ok(n);
3635
3635
  }
3636
3636
  getMap() {
3637
- return Ue.empty;
3637
+ return He.empty;
3638
3638
  }
3639
3639
  invert(e) {
3640
3640
  return new Un(this.attr, e.attrs[this.attr]);
@@ -3756,11 +3756,11 @@ let F = class {
3756
3756
  found.
3757
3757
  */
3758
3758
  static findFrom(e, t, n = !1) {
3759
- let o = e.parent.inlineContent ? new H(e) : et(e.node(0), e.parent, e.pos, e.index(), t, n);
3759
+ let o = e.parent.inlineContent ? new H(e) : Ze(e.node(0), e.parent, e.pos, e.index(), t, n);
3760
3760
  if (o)
3761
3761
  return o;
3762
3762
  for (let i = e.depth - 1; i >= 0; i--) {
3763
- let s = t < 0 ? et(e.node(0), e.node(i), e.before(i + 1), e.index(i), t, n) : et(e.node(0), e.node(i), e.after(i + 1), e.index(i) + 1, t, n);
3763
+ let s = t < 0 ? Ze(e.node(0), e.node(i), e.before(i + 1), e.index(i), t, n) : Ze(e.node(0), e.node(i), e.after(i + 1), e.index(i) + 1, t, n);
3764
3764
  if (s)
3765
3765
  return s;
3766
3766
  }
@@ -3781,14 +3781,14 @@ let F = class {
3781
3781
  exists.
3782
3782
  */
3783
3783
  static atStart(e) {
3784
- return et(e, e, 0, 0, 1) || new Re(e);
3784
+ return Ze(e, e, 0, 0, 1) || new Re(e);
3785
3785
  }
3786
3786
  /**
3787
3787
  Find the cursor or leaf node selection closest to the end of the
3788
3788
  given document.
3789
3789
  */
3790
3790
  static atEnd(e) {
3791
- return et(e, e, e.content.size, e.childCount, -1) || new Re(e);
3791
+ return Ze(e, e, e.content.size, e.childCount, -1) || new Re(e);
3792
3792
  }
3793
3793
  /**
3794
3794
  Deserialize the JSON representation of a selection. Must be
@@ -4024,7 +4024,7 @@ const ul = {
4024
4024
  return new Re(r);
4025
4025
  }
4026
4026
  };
4027
- function et(r, e, t, n, o, i = !1) {
4027
+ function Ze(r, e, t, n, o, i = !1) {
4028
4028
  if (e.inlineContent)
4029
4029
  return H.create(r, t);
4030
4030
  for (let s = n - (o > 0 ? 0 : 1); o > 0 ? s < e.childCount : s >= 0; s += o) {
@@ -4033,7 +4033,7 @@ function et(r, e, t, n, o, i = !1) {
4033
4033
  if (!i && W.isSelectable(l))
4034
4034
  return W.create(r, t - (o < 0 ? l.nodeSize : 0));
4035
4035
  } else {
4036
- let a = et(r, l, t + o, o < 0 ? l.childCount : 0, o, i);
4036
+ let a = Ze(r, l, t + o, o < 0 ? l.childCount : 0, o, i);
4037
4037
  if (a)
4038
4038
  return a;
4039
4039
  }
@@ -4097,7 +4097,7 @@ function Fo(r, e, t) {
4097
4097
  }
4098
4098
  return t;
4099
4099
  }
4100
- let Ke = class {
4100
+ let Ge = class {
4101
4101
  /**
4102
4102
  Create a plugin.
4103
4103
  */
@@ -4115,7 +4115,7 @@ const An = /* @__PURE__ */ Object.create(null);
4115
4115
  function Bo(r) {
4116
4116
  return r in An ? r + "$" + ++An[r] : (An[r] = 0, r + "$");
4117
4117
  }
4118
- let Qe = class {
4118
+ let Ke = class {
4119
4119
  /**
4120
4120
  Create a plugin key.
4121
4121
  */
@@ -4290,7 +4290,7 @@ function er(r) {
4290
4290
  const hl = (r, e) => {
4291
4291
  let t = r.selection, n = t instanceof W, o;
4292
4292
  if (n) {
4293
- if (t.node.isTextblock || !Ge(r.doc, t.from))
4293
+ if (t.node.isTextblock || !Ue(r.doc, t.from))
4294
4294
  return !1;
4295
4295
  o = t.from;
4296
4296
  } else if (o = hn(r.doc, t.from, -1), o == null)
@@ -4303,7 +4303,7 @@ const hl = (r, e) => {
4303
4303
  }, pl = (r, e) => {
4304
4304
  let t = r.selection, n;
4305
4305
  if (t instanceof W) {
4306
- if (t.node.isTextblock || !Ge(r.doc, t.to))
4306
+ if (t.node.isTextblock || !Ue(r.doc, t.to))
4307
4307
  return !1;
4308
4308
  n = t.to;
4309
4309
  } else if (n = hn(r.doc, t.to, 1), n == null)
@@ -4396,7 +4396,7 @@ const kl = yl(), wl = (r, e) => {
4396
4396
  };
4397
4397
  function xl(r, e, t) {
4398
4398
  let n = e.nodeBefore, o = e.nodeAfter, i = e.index();
4399
- return !n || !o || !n.type.compatibleContent(o.type) ? !1 : !n.content.size && e.parent.canReplace(i - 1, i) ? (t && t(r.tr.delete(e.pos - n.nodeSize, e.pos).scrollIntoView()), !0) : !e.parent.canReplace(i, i + 1) || !(o.isTextblock || Ge(r.doc, e.pos)) ? !1 : (t && t(r.tr.join(e.pos).scrollIntoView()), !0);
4399
+ return !n || !o || !n.type.compatibleContent(o.type) ? !1 : !n.content.size && e.parent.canReplace(i - 1, i) ? (t && t(r.tr.delete(e.pos - n.nodeSize, e.pos).scrollIntoView()), !0) : !e.parent.canReplace(i, i + 1) || !(o.isTextblock || Ue(r.doc, e.pos)) ? !1 : (t && t(r.tr.join(e.pos).scrollIntoView()), !0);
4400
4400
  }
4401
4401
  function Go(r, e, t, n) {
4402
4402
  let o = e.nodeBefore, i = e.nodeAfter, s, l, a = o.type.spec.isolating || i.type.spec.isolating;
@@ -4410,7 +4410,7 @@ function Go(r, e, t, n) {
4410
4410
  h = S.from(s[v].create(null, h));
4411
4411
  h = S.from(o.copy(h));
4412
4412
  let g = r.tr.step(new Se(e.pos - 1, d, e.pos, d, new T(h, 1, 0), s.length, !0)), x = g.doc.resolve(d + 2 * s.length);
4413
- x.nodeAfter && x.nodeAfter.type == o.type && Ge(g.doc, x.pos) && g.join(x.pos), t(g.scrollIntoView());
4413
+ x.nodeAfter && x.nodeAfter.type == o.type && Ue(g.doc, x.pos) && g.join(x.pos), t(g.scrollIntoView());
4414
4414
  }
4415
4415
  return !0;
4416
4416
  }
@@ -4544,7 +4544,7 @@ function Il(r, e, t, n) {
4544
4544
  return !1;
4545
4545
  o.lift(n, l);
4546
4546
  let a = o.doc.resolve(o.mapping.map(i, -1) - 1);
4547
- return Ge(o.doc, a.pos) && a.nodeBefore.type == a.nodeAfter.type && o.join(a.pos), e(o.scrollIntoView()), !0;
4547
+ return Ue(o.doc, a.pos) && a.nodeBefore.type == a.nodeAfter.type && o.join(a.pos), e(o.scrollIntoView()), !0;
4548
4548
  }
4549
4549
  function Nl(r, e, t) {
4550
4550
  let n = r.tr, o = t.parent;
@@ -4818,8 +4818,8 @@ de.create({
4818
4818
  },
4819
4819
  addProseMirrorPlugins() {
4820
4820
  return [
4821
- new Ke({
4822
- key: new Qe("clipboardTextSerializer"),
4821
+ new Ge({
4822
+ key: new Ke("clipboardTextSerializer"),
4823
4823
  props: {
4824
4824
  clipboardTextSerializer: () => {
4825
4825
  const { editor: r } = this, { state: e, schema: t } = r, { doc: n, selection: o } = e, { ranges: i } = o, s = Math.min(...i.map((u) => u.$from.pos)), l = Math.max(...i.map((u) => u.$to.pos)), a = Bl(t);
@@ -4946,7 +4946,7 @@ const Ql = (r, e = {}) => ({ tr: t, state: n, dispatch: o }) => {
4946
4946
  function Zo(r) {
4947
4947
  return r instanceof H;
4948
4948
  }
4949
- function Pe(r = 0, e = 0, t = 0) {
4949
+ function De(r = 0, e = 0, t = 0) {
4950
4950
  return Math.min(Math.max(r, e), t);
4951
4951
  }
4952
4952
  function Yl(r, e = null) {
@@ -4958,7 +4958,7 @@ function Yl(r, e = null) {
4958
4958
  if (e === "end")
4959
4959
  return n;
4960
4960
  const o = t.from, i = n.to;
4961
- return e === "all" ? H.create(r, Pe(0, o, i), Pe(r.content.size, o, i)) : H.create(r, Pe(e, o, i), Pe(e, o, i));
4961
+ return e === "all" ? H.create(r, De(0, o, i), De(r.content.size, o, i)) : H.create(r, De(e, o, i), De(e, o, i));
4962
4962
  }
4963
4963
  function Zl() {
4964
4964
  return navigator.platform === "Android" || /android/i.test(navigator.userAgent);
@@ -5382,13 +5382,13 @@ const _a = (r, e = {}) => ({ tr: t, state: n, dispatch: o }) => {
5382
5382
  return t.selection.$anchor.sameParent(t.selection.$head) && (s = t.selection.$anchor.parent.attrs), i.isTextblock ? o().command(({ commands: l }) => Wr(i, { ...s, ...e })(t) ? !0 : l.clearNodes()).command(({ state: l }) => Wr(i, { ...s, ...e })(l, n)).run() : (console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'), !1);
5383
5383
  }, Ja = (r) => ({ tr: e, dispatch: t }) => {
5384
5384
  if (t) {
5385
- const { doc: n } = e, o = Pe(r, 0, n.content.size), i = W.create(n, o);
5385
+ const { doc: n } = e, o = De(r, 0, n.content.size), i = W.create(n, o);
5386
5386
  e.setSelection(i);
5387
5387
  }
5388
5388
  return !0;
5389
5389
  }, Da = (r) => ({ tr: e, dispatch: t }) => {
5390
5390
  if (t) {
5391
- const { doc: n } = e, { from: o, to: i } = typeof r == "number" ? { from: r, to: r } : r, s = H.atStart(n).from, l = H.atEnd(n).to, a = Pe(o, s, l), c = Pe(i, s, l), u = H.create(n, a, c);
5391
+ const { doc: n } = e, { from: o, to: i } = typeof r == "number" ? { from: r, to: r } : r, s = H.atStart(n).from, l = H.atEnd(n).to, a = De(o, s, l), c = De(i, s, l), u = H.create(n, a, c);
5392
5392
  e.setSelection(u);
5393
5393
  }
5394
5394
  return !0;
@@ -5492,7 +5492,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
5492
5492
  if (n === void 0)
5493
5493
  return !0;
5494
5494
  const o = r.doc.nodeAt(n);
5495
- return t.node.type === o?.type && Ge(r.doc, t.pos) && r.join(t.pos), !0;
5495
+ return t.node.type === o?.type && Ue(r.doc, t.pos) && r.join(t.pos), !0;
5496
5496
  }, zn = (r, e) => {
5497
5497
  const t = sr((s) => s.type === e)(r.selection);
5498
5498
  if (!t)
@@ -5501,7 +5501,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
5501
5501
  if (n === void 0)
5502
5502
  return !0;
5503
5503
  const o = r.doc.nodeAt(n);
5504
- return t.node.type === o?.type && Ge(r.doc, n) && r.join(n), !0;
5504
+ return t.node.type === o?.type && Ue(r.doc, n) && r.join(n), !0;
5505
5505
  }, Wa = (r, e, t, n = {}) => ({ editor: o, tr: i, state: s, dispatch: l, chain: a, commands: c, can: u }) => {
5506
5506
  const { extensions: f, splittableMarks: y } = o.extensionManager, d = ee(r, s.schema), h = ee(e, s.schema), { selection: g, storedMarks: x } = s, { $from: v, $to: I } = g, A = v.blockRange(I), M = x || g.$to.parentOffset && g.$from.marks();
5507
5507
  if (!A)
@@ -5677,8 +5677,8 @@ de.create({
5677
5677
  name: "drop",
5678
5678
  addProseMirrorPlugins() {
5679
5679
  return [
5680
- new Ke({
5681
- key: new Qe("tiptapDrop"),
5680
+ new Ge({
5681
+ key: new Ke("tiptapDrop"),
5682
5682
  props: {
5683
5683
  handleDrop: (r, e, t, n) => {
5684
5684
  this.editor.emit("drop", {
@@ -5697,8 +5697,8 @@ de.create({
5697
5697
  name: "editable",
5698
5698
  addProseMirrorPlugins() {
5699
5699
  return [
5700
- new Ke({
5701
- key: new Qe("editable"),
5700
+ new Ge({
5701
+ key: new Ke("editable"),
5702
5702
  props: {
5703
5703
  editable: () => this.editor.options.editable
5704
5704
  }
@@ -5711,8 +5711,8 @@ de.create({
5711
5711
  addProseMirrorPlugins() {
5712
5712
  const { editor: r } = this;
5713
5713
  return [
5714
- new Ke({
5715
- key: new Qe("focusEvents"),
5714
+ new Ge({
5715
+ key: new Ke("focusEvents"),
5716
5716
  props: {
5717
5717
  handleDOMEvents: {
5718
5718
  focus: (e, t) => {
@@ -5785,8 +5785,8 @@ de.create({
5785
5785
  // to a paragraph if necessary.
5786
5786
  // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well
5787
5787
  // with many other commands.
5788
- new Ke({
5789
- key: new Qe("clearDocument"),
5788
+ new Ge({
5789
+ key: new Ke("clearDocument"),
5790
5790
  appendTransaction: (r, e, t) => {
5791
5791
  if (r.some((g) => g.getMeta("composition")))
5792
5792
  return;
@@ -5814,8 +5814,8 @@ de.create({
5814
5814
  name: "paste",
5815
5815
  addProseMirrorPlugins() {
5816
5816
  return [
5817
- new Ke({
5818
- key: new Qe("tiptapPaste"),
5817
+ new Ge({
5818
+ key: new Ke("tiptapPaste"),
5819
5819
  props: {
5820
5820
  handlePaste: (r, e, t) => {
5821
5821
  this.editor.emit("paste", {
@@ -5833,8 +5833,8 @@ de.create({
5833
5833
  name: "tabindex",
5834
5834
  addProseMirrorPlugins() {
5835
5835
  return [
5836
- new Ke({
5837
- key: new Qe("tabindex"),
5836
+ new Ge({
5837
+ key: new Ke("tabindex"),
5838
5838
  props: {
5839
5839
  attributes: () => this.editor.isEditable ? { tabindex: "0" } : {}
5840
5840
  }
@@ -6079,7 +6079,7 @@ const Kr = [
6079
6079
  const c = String(l);
6080
6080
  return c.length > a ? c.slice(0, a) + "…" : c;
6081
6081
  }, n = $([]);
6082
- De(
6082
+ Je(
6083
6083
  () => ({ anchors: e.anchors, commentsLen: (e.comments || []).length }),
6084
6084
  ({ anchors: l, commentsLen: a }) => {
6085
6085
  !l || !l.length || a && (!n.value.length || n.value.length < a) && l.length >= a && (n.value = l.slice());
@@ -6117,7 +6117,7 @@ const Kr = [
6117
6117
  return l;
6118
6118
  });
6119
6119
  return (l, a) => (O(), J("div", ac, [
6120
- (O(!0), J(Je, null, xt(s.value, (c) => (O(), J("div", {
6120
+ (O(!0), J(tt, null, xt(s.value, (c) => (O(), J("div", {
6121
6121
  key: c.id,
6122
6122
  class: "gutter-item-wrapper",
6123
6123
  style: Di({ marginTop: `${c.marginTop}px` })
@@ -6781,7 +6781,7 @@ function lr(r, e, t) {
6781
6781
  }
6782
6782
  return P.fromArray(n);
6783
6783
  }
6784
- class Le extends ne {
6784
+ class Pe extends ne {
6785
6785
  /**
6786
6786
  Create a mark step.
6787
6787
  */
@@ -6793,14 +6793,14 @@ class Le extends ne {
6793
6793
  return V.fromReplace(e, this.from, this.to, i);
6794
6794
  }
6795
6795
  invert() {
6796
- return new qe(this.from, this.to, this.mark);
6796
+ return new Le(this.from, this.to, this.mark);
6797
6797
  }
6798
6798
  map(e) {
6799
6799
  let t = e.mapResult(this.from, 1), n = e.mapResult(this.to, -1);
6800
- return t.deleted && n.deleted || t.pos >= n.pos ? null : new Le(t.pos, n.pos, this.mark);
6800
+ return t.deleted && n.deleted || t.pos >= n.pos ? null : new Pe(t.pos, n.pos, this.mark);
6801
6801
  }
6802
6802
  merge(e) {
6803
- return e instanceof Le && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new Le(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;
6803
+ return e instanceof Pe && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new Pe(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;
6804
6804
  }
6805
6805
  toJSON() {
6806
6806
  return {
@@ -6816,11 +6816,11 @@ class Le extends ne {
6816
6816
  static fromJSON(e, t) {
6817
6817
  if (typeof t.from != "number" || typeof t.to != "number")
6818
6818
  throw new RangeError("Invalid input for AddMarkStep.fromJSON");
6819
- return new Le(t.from, t.to, e.markFromJSON(t.mark));
6819
+ return new Pe(t.from, t.to, e.markFromJSON(t.mark));
6820
6820
  }
6821
6821
  }
6822
- ne.jsonID("addMark", Le);
6823
- class qe extends ne {
6822
+ ne.jsonID("addMark", Pe);
6823
+ class Le extends ne {
6824
6824
  /**
6825
6825
  Create a mark-removing step.
6826
6826
  */
@@ -6832,14 +6832,14 @@ class qe extends ne {
6832
6832
  return V.fromReplace(e, this.from, this.to, n);
6833
6833
  }
6834
6834
  invert() {
6835
- return new Le(this.from, this.to, this.mark);
6835
+ return new Pe(this.from, this.to, this.mark);
6836
6836
  }
6837
6837
  map(e) {
6838
6838
  let t = e.mapResult(this.from, 1), n = e.mapResult(this.to, -1);
6839
- return t.deleted && n.deleted || t.pos >= n.pos ? null : new qe(t.pos, n.pos, this.mark);
6839
+ return t.deleted && n.deleted || t.pos >= n.pos ? null : new Le(t.pos, n.pos, this.mark);
6840
6840
  }
6841
6841
  merge(e) {
6842
- return e instanceof qe && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new qe(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;
6842
+ return e instanceof Le && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new Le(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;
6843
6843
  }
6844
6844
  toJSON() {
6845
6845
  return {
@@ -6855,11 +6855,11 @@ class qe extends ne {
6855
6855
  static fromJSON(e, t) {
6856
6856
  if (typeof t.from != "number" || typeof t.to != "number")
6857
6857
  throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");
6858
- return new qe(t.from, t.to, e.markFromJSON(t.mark));
6858
+ return new Le(t.from, t.to, e.markFromJSON(t.mark));
6859
6859
  }
6860
6860
  }
6861
- ne.jsonID("removeMark", qe);
6862
- class We extends ne {
6861
+ ne.jsonID("removeMark", Le);
6862
+ class qe extends ne {
6863
6863
  /**
6864
6864
  Create a node mark step.
6865
6865
  */
@@ -6880,15 +6880,15 @@ class We extends ne {
6880
6880
  if (n.length == t.marks.length) {
6881
6881
  for (let o = 0; o < t.marks.length; o++)
6882
6882
  if (!t.marks[o].isInSet(n))
6883
- return new We(this.pos, t.marks[o]);
6884
- return new We(this.pos, this.mark);
6883
+ return new qe(this.pos, t.marks[o]);
6884
+ return new qe(this.pos, this.mark);
6885
6885
  }
6886
6886
  }
6887
6887
  return new It(this.pos, this.mark);
6888
6888
  }
6889
6889
  map(e) {
6890
6890
  let t = e.mapResult(this.pos, 1);
6891
- return t.deletedAfter ? null : new We(t.pos, this.mark);
6891
+ return t.deletedAfter ? null : new qe(t.pos, this.mark);
6892
6892
  }
6893
6893
  toJSON() {
6894
6894
  return { stepType: "addNodeMark", pos: this.pos, mark: this.mark.toJSON() };
@@ -6899,10 +6899,10 @@ class We extends ne {
6899
6899
  static fromJSON(e, t) {
6900
6900
  if (typeof t.pos != "number")
6901
6901
  throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");
6902
- return new We(t.pos, e.markFromJSON(t.mark));
6902
+ return new qe(t.pos, e.markFromJSON(t.mark));
6903
6903
  }
6904
6904
  }
6905
- ne.jsonID("addNodeMark", We);
6905
+ ne.jsonID("addNodeMark", qe);
6906
6906
  class It extends ne {
6907
6907
  /**
6908
6908
  Create a mark-removing step.
@@ -6919,7 +6919,7 @@ class It extends ne {
6919
6919
  }
6920
6920
  invert(e) {
6921
6921
  let t = e.nodeAt(this.pos);
6922
- return !t || !this.mark.isInSet(t.marks) ? this : new We(this.pos, this.mark);
6922
+ return !t || !this.mark.isInSet(t.marks) ? this : new qe(this.pos, this.mark);
6923
6923
  }
6924
6924
  map(e) {
6925
6925
  let t = e.mapResult(this.pos, 1);
@@ -7238,11 +7238,11 @@ class K {
7238
7238
  found.
7239
7239
  */
7240
7240
  static findFrom(e, t, n = !1) {
7241
- let o = e.parent.inlineContent ? new xe(e) : tt(e.node(0), e.parent, e.pos, e.index(), t, n);
7241
+ let o = e.parent.inlineContent ? new xe(e) : et(e.node(0), e.parent, e.pos, e.index(), t, n);
7242
7242
  if (o)
7243
7243
  return o;
7244
7244
  for (let i = e.depth - 1; i >= 0; i--) {
7245
- let s = t < 0 ? tt(e.node(0), e.node(i), e.before(i + 1), e.index(i), t, n) : tt(e.node(0), e.node(i), e.after(i + 1), e.index(i) + 1, t, n);
7245
+ let s = t < 0 ? et(e.node(0), e.node(i), e.before(i + 1), e.index(i), t, n) : et(e.node(0), e.node(i), e.after(i + 1), e.index(i) + 1, t, n);
7246
7246
  if (s)
7247
7247
  return s;
7248
7248
  }
@@ -7263,14 +7263,14 @@ class K {
7263
7263
  exists.
7264
7264
  */
7265
7265
  static atStart(e) {
7266
- return tt(e, e, 0, 0, 1) || new Ne(e);
7266
+ return et(e, e, 0, 0, 1) || new Ne(e);
7267
7267
  }
7268
7268
  /**
7269
7269
  Find the cursor or leaf node selection closest to the end of the
7270
7270
  given document.
7271
7271
  */
7272
7272
  static atEnd(e) {
7273
- return tt(e, e, e.content.size, e.childCount, -1) || new Ne(e);
7273
+ return et(e, e, e.content.size, e.childCount, -1) || new Ne(e);
7274
7274
  }
7275
7275
  /**
7276
7276
  Deserialize the JSON representation of a selection. Must be
@@ -7509,7 +7509,7 @@ const vc = {
7509
7509
  return new Ne(r);
7510
7510
  }
7511
7511
  };
7512
- function tt(r, e, t, n, o, i = !1) {
7512
+ function et(r, e, t, n, o, i = !1) {
7513
7513
  if (e.inlineContent)
7514
7514
  return xe.create(r, t);
7515
7515
  for (let s = n - (o > 0 ? 0 : 1); o > 0 ? s < e.childCount : s >= 0; s += o) {
@@ -7518,7 +7518,7 @@ function tt(r, e, t, n, o, i = !1) {
7518
7518
  if (!i && ge.isSelectable(l))
7519
7519
  return ge.create(r, t - (o < 0 ? l.nodeSize : 0));
7520
7520
  } else {
7521
- let a = tt(r, l, t + o, o < 0 ? l.childCount : 0, o, i);
7521
+ let a = et(r, l, t + o, o < 0 ? l.childCount : 0, o, i);
7522
7522
  if (a)
7523
7523
  return a;
7524
7524
  }
@@ -7719,7 +7719,10 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
7719
7719
  "stroke-width": "1.5",
7720
7720
  "stroke-linecap": "round",
7721
7721
  "stroke-linejoin": "round"
7722
- }, Pc = { class: "umo-custom-huge-btn__text" }, Lc = ["disabled"], qc = { class: "umo-custom-huge-btn__text" }, Wc = { class: "html-dialog" }, Vc = { class: "html-dialog__header" }, jc = { class: "html-dialog__toolbar" }, Hc = { class: "html-dialog__content" }, Uc = { class: "html-dialog" }, Gc = { class: "html-dialog__header" }, Kc = { class: "html-dialog__toolbar" }, Qc = { class: "html-dialog__content" }, Xc = /* @__PURE__ */ Pi({
7722
+ }, Pc = { class: "umo-custom-huge-btn__text" }, Lc = ["disabled"], qc = { class: "umo-custom-huge-btn__text" }, Wc = {
7723
+ key: 0,
7724
+ class: "app-layout__comment-aside"
7725
+ }, Vc = { class: "html-dialog" }, jc = { class: "html-dialog__header" }, Hc = { class: "html-dialog__toolbar" }, Uc = { class: "html-dialog__content" }, Gc = { class: "html-dialog" }, Kc = { class: "html-dialog__header" }, Qc = { class: "html-dialog__toolbar" }, Xc = { class: "html-dialog__content" }, Yc = /* @__PURE__ */ Pi({
7723
7726
  __name: "App",
7724
7727
  props: {
7725
7728
  /**
@@ -7822,11 +7825,11 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
7822
7825
  ));
7823
7826
  }, I = $(null);
7824
7827
  let A = null;
7825
- De(
7828
+ Je(
7826
7829
  () => I.value,
7827
7830
  () => y(),
7828
7831
  { immediate: !0 }
7829
- ), De(
7832
+ ), Je(
7830
7833
  () => l.editable,
7831
7834
  () => y(),
7832
7835
  { immediate: !0 }
@@ -7844,7 +7847,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
7844
7847
  queueDelete: gi,
7845
7848
  cancelPendingDelete: yi
7846
7849
  } = sc();
7847
- De(j, (m) => {
7850
+ Je(j, (m) => {
7848
7851
  a("activeCommentChange", m);
7849
7852
  });
7850
7853
  const _e = $(null), kn = $([]), ki = () => _e.value, wi = () => _e.value?.querySelector?.(".umo-scrollable-container") || _e.value?.querySelector?.(".umo-scrollable") || _e.value, xi = (m, k) => {
@@ -8309,7 +8312,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8309
8312
  E instanceof HTMLElement && E.scrollIntoView({ behavior: "smooth", block: "nearest" });
8310
8313
  }));
8311
8314
  };
8312
- return De(
8315
+ return Je(
8313
8316
  () => I.value,
8314
8317
  () => {
8315
8318
  const k = Q()?.view?.dom;
@@ -8581,46 +8584,46 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8581
8584
  ], 512)
8582
8585
  ])
8583
8586
  ]),
8584
- c.value ? (O(), J(Je, { key: 0 }, [
8587
+ c.value ? (O(), J("div", Wc, [
8585
8588
  m.$slots["comment-panel"] ? ji(m.$slots, "comment-panel", {
8586
8589
  key: 0,
8587
- comments: Xe(M),
8588
- activeCommentId: Xe(j),
8589
- formatTime: Xe(yn),
8590
+ comments: Qe(M),
8591
+ activeCommentId: Qe(j),
8592
+ formatTime: Qe(yn),
8590
8593
  activate: kr,
8591
8594
  deleteComment: gr,
8592
8595
  resolveComment: yr
8593
8596
  }, void 0, !0) : (O(), ft(ks, {
8594
8597
  key: 1,
8595
- comments: Xe(M),
8596
- "active-comment-id": Xe(j),
8597
- "format-time": Xe(yn),
8598
+ comments: Qe(M),
8599
+ "active-comment-id": Qe(j),
8600
+ "format-time": Qe(yn),
8598
8601
  onActivate: kr,
8599
8602
  onDelete: gr,
8600
8603
  onResolve: yr
8601
8604
  }, null, 8, ["comments", "active-comment-id", "format-time"]))
8602
- ], 64)) : Be("", !0),
8605
+ ])) : Be("", !0),
8603
8606
  (O(), ft(Pn, { to: "body" }, [
8604
8607
  zt.value ? (O(), J("div", {
8605
8608
  key: 0,
8606
8609
  class: "html-dialog-mask",
8607
8610
  onClick: k[1] || (k[1] = ze((b) => zt.value = !1, ["self"]))
8608
8611
  }, [
8609
- p("div", Wc, [
8610
- p("div", Vc, [
8612
+ p("div", Vc, [
8613
+ p("div", jc, [
8611
8614
  k[13] || (k[13] = p("span", { class: "html-dialog__title" }, "导出 HTML", -1)),
8612
8615
  p("button", {
8613
8616
  class: "html-dialog__close",
8614
8617
  onClick: k[0] || (k[0] = (b) => zt.value = !1)
8615
8618
  }, "✕")
8616
8619
  ]),
8617
- p("div", jc, [
8620
+ p("div", Hc, [
8618
8621
  p("button", {
8619
8622
  class: "html-dialog__copy-btn",
8620
8623
  onClick: Ni
8621
8624
  }, _($t.value ? "✓ 已复制" : "复制"), 1)
8622
8625
  ]),
8623
- p("pre", Hc, [
8626
+ p("pre", Uc, [
8624
8627
  p("code", null, _(vn.value), 1)
8625
8628
  ])
8626
8629
  ])
@@ -8632,21 +8635,21 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8632
8635
  class: "html-dialog-mask",
8633
8636
  onClick: k[3] || (k[3] = ze((b) => Ft.value = !1, ["self"]))
8634
8637
  }, [
8635
- p("div", Uc, [
8636
- p("div", Gc, [
8638
+ p("div", Gc, [
8639
+ p("div", Kc, [
8637
8640
  k[14] || (k[14] = p("span", { class: "html-dialog__title" }, "导出 JSON", -1)),
8638
8641
  p("button", {
8639
8642
  class: "html-dialog__close",
8640
8643
  onClick: k[2] || (k[2] = (b) => Ft.value = !1)
8641
8644
  }, "✕")
8642
8645
  ]),
8643
- p("div", Kc, [
8646
+ p("div", Qc, [
8644
8647
  p("button", {
8645
8648
  class: "html-dialog__copy-btn",
8646
8649
  onClick: Ri
8647
8650
  }, _(Bt.value ? "✓ 已复制" : "复制"), 1)
8648
8651
  ]),
8649
- p("pre", Qc, [
8652
+ p("pre", Xc, [
8650
8653
  p("code", null, _(Sn.value), 1)
8651
8654
  ])
8652
8655
  ])
@@ -8662,13 +8665,13 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8662
8665
  ]);
8663
8666
  };
8664
8667
  }
8665
- }), Yc = /* @__PURE__ */ Ot(Xc, [["__scopeId", "data-v-b26905a7"]]), Zc = { class: "complex-comment-panel" }, eu = { class: "complex-comment-panel__header" }, tu = { class: "complex-comment-panel__title" }, nu = { class: "complex-comment-panel__toolbar" }, ru = { class: "complex-comment-panel__risk-toggle" }, ou = {
8668
+ }), Zc = /* @__PURE__ */ Ot(Yc, [["__scopeId", "data-v-17559b0a"]]), eu = { class: "complex-comment-panel" }, tu = { class: "complex-comment-panel__header" }, nu = { class: "complex-comment-panel__title" }, ru = { class: "complex-comment-panel__toolbar" }, ou = { class: "complex-comment-panel__risk-toggle" }, iu = {
8666
8669
  key: 0,
8667
8670
  class: "complex-comment-panel__empty"
8668
- }, iu = {
8671
+ }, su = {
8669
8672
  class: "complex-comment-panel__tabs",
8670
8673
  role: "tablist"
8671
- }, su = ["onClick"], lu = { class: "complex-comment-panel__body" }, au = { class: "complex-comment-panel__section-head" }, cu = { class: "complex-comment-panel__section-title" }, uu = { class: "complex-comment-panel__cards" }, fu = ["onClick"], du = { class: "audit-card__head" }, hu = { class: "audit-card__point" }, pu = { class: "audit-card__block" }, mu = { class: "audit-card__quote" }, gu = ["onClick"], yu = { class: "audit-card__block audit-card__block--desc" }, ku = { class: "audit-card__desc" }, ut = "__all__", wu = {
8674
+ }, lu = ["onClick"], au = { class: "complex-comment-panel__body" }, cu = { class: "complex-comment-panel__section-head" }, uu = { class: "complex-comment-panel__section-title" }, fu = { class: "complex-comment-panel__cards" }, du = ["onClick"], hu = { class: "audit-card__head" }, pu = { class: "audit-card__point" }, mu = { class: "audit-card__block" }, gu = { class: "audit-card__quote" }, yu = ["onClick"], ku = { class: "audit-card__block audit-card__block--desc" }, wu = { class: "audit-card__desc" }, ut = "__all__", xu = {
8672
8675
  __name: "ComplexCommentPanel",
8673
8676
  props: {
8674
8677
  items: {
@@ -8687,12 +8690,12 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8687
8690
  emits: ["activate", "download"],
8688
8691
  setup(r, { emit: e }) {
8689
8692
  const t = r, n = e, o = $(!1), i = $(ut);
8690
- De(
8693
+ Je(
8691
8694
  () => t.items,
8692
8695
  () => {
8693
8696
  i.value = ut;
8694
8697
  }
8695
- ), De(o, () => {
8698
+ ), Je(o, () => {
8696
8699
  i.value = ut;
8697
8700
  });
8698
8701
  const s = ue(() => {
@@ -8730,16 +8733,16 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8730
8733
  }, y = (d) => {
8731
8734
  n("activate", d);
8732
8735
  };
8733
- return (d, h) => (O(), J("aside", Zc, [
8734
- p("div", eu, [
8735
- p("h3", tu, _(r.title), 1),
8736
- p("div", nu, [
8736
+ return (d, h) => (O(), J("aside", eu, [
8737
+ p("div", tu, [
8738
+ p("h3", nu, _(r.title), 1),
8739
+ p("div", ru, [
8737
8740
  p("button", {
8738
8741
  type: "button",
8739
8742
  class: "complex-comment-panel__download",
8740
8743
  onClick: h[0] || (h[0] = (g) => n("download"))
8741
8744
  }, " 下载 "),
8742
- p("label", ru, [
8745
+ p("label", ou, [
8743
8746
  ro(p("input", {
8744
8747
  "onUpdate:modelValue": h[1] || (h[1] = (g) => o.value = g),
8745
8748
  type: "checkbox"
@@ -8750,41 +8753,41 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8750
8753
  ])
8751
8754
  ])
8752
8755
  ]),
8753
- r.items.length === 0 ? (O(), J("div", ou, [...h[3] || (h[3] = [
8756
+ r.items.length === 0 ? (O(), J("div", iu, [...h[3] || (h[3] = [
8754
8757
  p("p", null, "暂无审查结果", -1)
8755
- ])])) : (O(), J(Je, { key: 1 }, [
8756
- p("div", iu, [
8757
- (O(!0), J(Je, null, xt(l.value, (g) => (O(), J("button", {
8758
+ ])])) : (O(), J(tt, { key: 1 }, [
8759
+ p("div", su, [
8760
+ (O(!0), J(tt, null, xt(l.value, (g) => (O(), J("button", {
8758
8761
  key: g.key,
8759
8762
  type: "button",
8760
8763
  role: "tab",
8761
8764
  class: vt(["complex-comment-panel__tab", { "complex-comment-panel__tab--active": i.value === g.key }]),
8762
8765
  onClick: (x) => i.value = g.key
8763
- }, _(g.label) + " (" + _(g.count) + ") ", 11, su))), 128))
8766
+ }, _(g.label) + " (" + _(g.count) + ") ", 11, lu))), 128))
8764
8767
  ]),
8765
- p("div", lu, [
8766
- (O(!0), J(Je, null, xt(c.value, (g) => (O(), J("section", {
8768
+ p("div", au, [
8769
+ (O(!0), J(tt, null, xt(c.value, (g) => (O(), J("section", {
8767
8770
  key: g.category,
8768
8771
  class: "complex-comment-panel__section"
8769
8772
  }, [
8770
- p("div", au, [
8771
- p("span", cu, _(g.category), 1)
8773
+ p("div", cu, [
8774
+ p("span", uu, _(g.category), 1)
8772
8775
  ]),
8773
- p("ul", uu, [
8774
- (O(!0), J(Je, null, xt(g.rows, (x) => (O(), J("li", {
8776
+ p("ul", fu, [
8777
+ (O(!0), J(tt, null, xt(g.rows, (x) => (O(), J("li", {
8775
8778
  key: x.id,
8776
8779
  class: vt(["audit-card", { "audit-card--active": r.activeCommentId === x.id }]),
8777
8780
  onClick: (v) => y(x.id)
8778
8781
  }, [
8779
- p("div", du, [
8780
- p("span", hu, _(x.reviewPoint || "(无审查点)"), 1),
8782
+ p("div", hu, [
8783
+ p("span", pu, _(x.reviewPoint || "(无审查点)"), 1),
8781
8784
  p("span", {
8782
8785
  class: vt(["audit-card__badge", f(x.reviewStatus)])
8783
8786
  }, _(u(x.reviewStatus)), 3)
8784
8787
  ]),
8785
- p("div", pu, [
8788
+ p("div", mu, [
8786
8789
  h[5] || (h[5] = p("div", { class: "audit-card__label" }, "原文内容", -1)),
8787
- p("div", mu, _(x.originalText || "无原文"), 1),
8790
+ p("div", gu, _(x.originalText || "无原文"), 1),
8788
8791
  p("button", {
8789
8792
  type: "button",
8790
8793
  class: "audit-card__locate",
@@ -8795,35 +8798,35 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
8795
8798
  "aria-hidden": "true"
8796
8799
  }, "⌖", -1),
8797
8800
  Jn(" 原文定位 ", -1)
8798
- ])], 8, gu)
8801
+ ])], 8, yu)
8799
8802
  ]),
8800
8803
  h[7] || (h[7] = p("div", { class: "audit-card__divider" }, null, -1)),
8801
- p("div", yu, [
8804
+ p("div", ku, [
8802
8805
  h[6] || (h[6] = p("div", { class: "audit-card__label audit-card__label--strong" }, "审查说明", -1)),
8803
- p("p", ku, _(x.auditDescription || "—"), 1)
8806
+ p("p", wu, _(x.auditDescription || "—"), 1)
8804
8807
  ])
8805
- ], 10, fu))), 128))
8808
+ ], 10, du))), 128))
8806
8809
  ])
8807
8810
  ]))), 128))
8808
8811
  ])
8809
8812
  ], 64))
8810
8813
  ]));
8811
8814
  }
8812
- }, _u = /* @__PURE__ */ Ot(wu, [["__scopeId", "data-v-9c5ef905"]]);
8813
- function Fu() {
8815
+ }, Fu = /* @__PURE__ */ Ot(xu, [["__scopeId", "data-v-857048b4"]]);
8816
+ function Bu() {
8814
8817
  }
8815
- const Bu = {
8818
+ const Ju = {
8816
8819
  install(r, e) {
8817
8820
  const t = { ...e ?? {} };
8818
8821
  for (const n of ["onFileUpload", "onFileDelete", "onSave"])
8819
8822
  n in t && typeof t[n] != "function" && delete t[n];
8820
- r.use(Bi, t), r.component("UmoEditorApp", Yc);
8823
+ r.use(Bi, t), r.component("UmoEditorApp", Zc);
8821
8824
  }
8822
8825
  };
8823
8826
  export {
8824
8827
  ks as CommentPanel,
8825
- _u as ComplexCommentPanel,
8826
- Yc as UmoEditorApp,
8827
- Bu as UmoEditorAppPlugin,
8828
- Fu as ensureUmoEditorGlobals
8828
+ Fu as ComplexCommentPanel,
8829
+ Zc as UmoEditorApp,
8830
+ Ju as UmoEditorAppPlugin,
8831
+ Bu as ensureUmoEditorGlobals
8829
8832
  };
@@ -1 +1 @@
1
- {"version":3,"file":"App.vue.d.ts","sourceRoot":"","sources":["../../src/App.vue"],"names":[],"mappings":"AA81DA,OAAO,KAAK,EAAyD,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AA6EjH,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAuvDjH,QAAA,IAAuB,QAAQ;;;;;;;CAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AASxD,QAAA,MAAM,UAAU;IAId;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;OAEG;;;;;IAKH;;;OAGG;;;;;;;;cA5xD0B,OAAO;iBAAW,MAAM;;;cAClB,IAAI;;;YACN,GAAG;aAAO,GAAG;;;;IAgwD9C;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;OAEG;;;;;IAKH;;;OAGG;;;;;;;;cA5xD0B,OAAO;iBAAW,MAAM;;;cAClB,IAAI;;;YACN,GAAG;aAAO,GAAG;;;;;;;;4EAgyD9C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"App.vue.d.ts","sourceRoot":"","sources":["../../src/App.vue"],"names":[],"mappings":"AAu2DA,OAAO,KAAK,EAAyD,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AA6EjH,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AA4vDjH,QAAA,IAAuB,QAAQ;;;;;;;CAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AASxD,QAAA,MAAM,UAAU;IAId;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;OAEG;;;;;IAKH;;;OAGG;;;;;;;;cAjyD0B,OAAO;iBAAW,MAAM;;;cAClB,IAAI;;;YACN,GAAG;aAAO,GAAG;;;;IAqwD9C;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;OAEG;;;;;IAKH;;;OAGG;;;;;;;;cAjyD0B,OAAO;iBAAW,MAAM;;;cAClB,IAAI;;;YACN,GAAG;aAAO,GAAG;;;;;;;;4EAqyD9C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/CommentPanel.vue"],"names":[],"mappings":"wBAwmBqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
1
+ {"version":3,"file":"CommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/CommentPanel.vue"],"names":[],"mappings":"wBA0mBqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexCommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ComplexCommentPanel.vue"],"names":[],"mappings":"wBAi0BqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
1
+ {"version":3,"file":"ComplexCommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ComplexCommentPanel.vue"],"names":[],"mappings":"wBAo0BqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ai-word-editor",
3
3
  "private": false,
4
- "version": "0.0.54",
4
+ "version": "0.0.55",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",