edu360-web-ui 1.0.111 → 1.0.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.css CHANGED
@@ -1,4 +1,4 @@
1
- @charset "UTF-8";[data-v-4036ce0f]:root{--clnpmel-color-primary: #fc5b08 !important}.code-block-view[data-v-4036ce0f]{margin:10px 0}.code-block-view .code-block-view-cont[data-v-4036ce0f]{margin:0 30px;border-radius:6px;border:1px solid #ccc}.code-toolbar[data-v-4036ce0f]{display:flex;gap:6px;align-items:center;justify-content:space-between;padding:4px 8px;font-size:12px;background:#f8fafe;border-bottom:1px solid #ddd;height:36px;border-radius:6px 6px 0 0}.code-toolbar .code-toolbar-right[data-v-4036ce0f]{display:flex;align-items:center;gap:20px}.code-toolbar .el-dropdown-link[data-v-4036ce0f]{cursor:pointer;display:flex;align-items:center}.hljs[data-v-4036ce0f]{border-radius:0 0 6px 6px}.hljs.no-toolbar[data-v-4036ce0f]{border-radius:6px}.dark .code-toolbar[data-v-4036ce0f]{background:#272822;color:#ddd}.dark .code-toolbar .el-dropdown[data-v-4036ce0f]{color:#ddd}pre[data-v-4036ce0f]{margin:0!important;padding:10px!important;font-size:14px;overflow-x:auto}.code-content[data-v-4036ce0f]{font-family:Courier New,Courier,monospace;white-space:pre-wrap;word-wrap:break-word}[data-v-244d909d]:root{--clnpmel-color-primary: #fc5b08 !important}.ai-popup[data-v-244d909d]{margin:8px 30px;background:#fff;font-size:14px;box-shadow:0 0 0 .5px #6b729447,0 2px 4px #565b760a,0 4px 24px -2px #565b7614;border-radius:12px;position:relative;z-index:2}.ai-input[data-v-244d909d]{border-radius:12px 12px 0 0;padding:16px 16px 12px;width:100%;box-sizing:border-box}.ai-input[data-v-244d909d] .el-textarea__inner{box-shadow:none;resize:none;padding:0}.ai-btns[data-v-244d909d]{display:flex;justify-content:flex-end;align-items:center;padding:0 16px 16px;border-radius:0 0 12px 12px}.ai-btns .ai-btns-send[data-v-244d909d]{width:32px;height:32px;background-color:var(--el-color-primary);border-radius:50%;color:#fff;display:flex;justify-content:center;align-items:center;font-size:18px;cursor:pointer}.ai-btns .ai-btns-send.is-disabled[data-v-244d909d]{background-color:#6b729452;cursor:not-allowed}.ai-quick-actions[data-v-244d909d]{padding:20px;top:calc(100% + 6px);left:0;position:absolute!important;width:160px;max-height:46vh;overflow-y:auto;background:#fff;border-radius:12px;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);box-shadow:#565b7647 0 0 0 .5px,#00000014 0 2px 4px,#00000014 0 4px 12px -4px,#00000029 0 16px 24px -4px;gap:10px}.ai-quick-actions .ai-quick-actions-item[data-v-244d909d]{height:32px;display:flex;justify-content:space-between;align-items:center;font-size:14px;cursor:pointer}.ai-quick-actions .ai-quick-actions-item>div[data-v-244d909d]{display:flex;align-items:center;gap:4px}.tone-list[data-v-244d909d]{display:flex;flex-direction:column;font-size:14px;gap:10px}.tone-list>p[data-v-244d909d]{cursor:pointer}.ai-result .result-answer[data-v-244d909d]{padding:0 18px;height:45px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #EEEEEE;font-size:14px;border-radius:12px 12px 0 0}.ai-result .result-text[data-v-244d909d]{padding:20px 18px 0;font-size:14px;white-space:pre-wrap;max-height:300px;overflow-y:auto}.ai-result .result-image[data-v-244d909d]{padding:10px;display:flex;justify-content:flex-start;gap:10px}.ai-result .result-image>div[data-v-244d909d]{flex:1;width:0;position:relative}.ai-result .result-image>div>img[data-v-244d909d]{object-fit:cover;width:100%}.ai-result .result-image>div .result-image-checkbox[data-v-244d909d]{position:absolute;top:10px;right:10px}.ai-result .result-actions[data-v-244d909d]{display:flex;align-items:center;gap:8px;padding:10px 20px 20px;border-radius:0 0 12px 12px}.result-text[data-v-244d909d]{margin-bottom:8px;white-space:pre-wrap}.result-actions[data-v-244d909d]{display:flex;gap:8px}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
1
+ @charset "UTF-8";[data-v-4036ce0f]:root{--clnpmel-color-primary: #fc5b08 !important}.code-block-view[data-v-4036ce0f]{margin:10px 0}.code-block-view .code-block-view-cont[data-v-4036ce0f]{margin:0 30px;border-radius:6px;border:1px solid #ccc}.code-toolbar[data-v-4036ce0f]{display:flex;gap:6px;align-items:center;justify-content:space-between;padding:4px 8px;font-size:12px;background:#f8fafe;border-bottom:1px solid #ddd;height:36px;border-radius:6px 6px 0 0}.code-toolbar .code-toolbar-right[data-v-4036ce0f]{display:flex;align-items:center;gap:20px}.code-toolbar .el-dropdown-link[data-v-4036ce0f]{cursor:pointer;display:flex;align-items:center}.hljs[data-v-4036ce0f]{border-radius:0 0 6px 6px}.hljs.no-toolbar[data-v-4036ce0f]{border-radius:6px}.dark .code-toolbar[data-v-4036ce0f]{background:#272822;color:#ddd}.dark .code-toolbar .el-dropdown[data-v-4036ce0f]{color:#ddd}pre[data-v-4036ce0f]{margin:0!important;padding:10px!important;font-size:14px;overflow-x:auto}.code-content[data-v-4036ce0f]{font-family:Courier New,Courier,monospace;white-space:pre-wrap;word-wrap:break-word}[data-v-8ffeb4e4]:root{--clnpmel-color-primary: #fc5b08 !important}.ai-popup[data-v-8ffeb4e4]{margin:8px 30px;background:#fff;font-size:14px;box-shadow:0 0 0 .5px #6b729447,0 2px 4px #565b760a,0 4px 24px -2px #565b7614;border-radius:12px;position:relative;z-index:2}.ai-input[data-v-8ffeb4e4]{border-radius:12px 12px 0 0;padding:16px 16px 12px;width:100%;box-sizing:border-box}.ai-input[data-v-8ffeb4e4] .el-textarea__inner{box-shadow:none;resize:none;padding:0}.ai-btns[data-v-8ffeb4e4]{display:flex;justify-content:flex-end;align-items:center;padding:0 16px 16px;border-radius:0 0 12px 12px}.ai-btns .ai-btns-send[data-v-8ffeb4e4]{width:32px;height:32px;background-color:var(--el-color-primary);border-radius:50%;color:#fff;display:flex;justify-content:center;align-items:center;font-size:18px;cursor:pointer}.ai-btns .ai-btns-send.is-disabled[data-v-8ffeb4e4]{background-color:#6b729452;cursor:not-allowed}.ai-quick-actions[data-v-8ffeb4e4]{padding:20px;top:calc(100% + 6px);left:0;position:absolute!important;width:160px;max-height:46vh;overflow-y:auto;background:#fff;border-radius:12px;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);box-shadow:#565b7647 0 0 0 .5px,#00000014 0 2px 4px,#00000014 0 4px 12px -4px,#00000029 0 16px 24px -4px;gap:10px}.ai-quick-actions .ai-quick-actions-item[data-v-8ffeb4e4]{height:32px;display:flex;justify-content:space-between;align-items:center;font-size:14px;cursor:pointer}.ai-quick-actions .ai-quick-actions-item>div[data-v-8ffeb4e4]{display:flex;align-items:center;gap:4px}.tone-list[data-v-8ffeb4e4]{display:flex;flex-direction:column;font-size:14px;gap:10px}.tone-list>p[data-v-8ffeb4e4]{cursor:pointer}.ai-result .result-answer[data-v-8ffeb4e4]{padding:0 18px;height:45px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #EEEEEE;font-size:14px;border-radius:12px 12px 0 0}.ai-result .result-text[data-v-8ffeb4e4]{padding:20px 18px 0;font-size:14px;white-space:pre-wrap;max-height:300px;overflow-y:auto}.ai-result .result-image[data-v-8ffeb4e4]{padding:10px;display:flex;justify-content:flex-start;gap:10px}.ai-result .result-image>div[data-v-8ffeb4e4]{flex:1;width:0;position:relative}.ai-result .result-image>div>img[data-v-8ffeb4e4]{object-fit:cover;width:100%}.ai-result .result-image>div .result-image-checkbox[data-v-8ffeb4e4]{position:absolute;top:10px;right:10px}.ai-result .result-actions[data-v-8ffeb4e4]{display:flex;align-items:center;gap:8px;padding:10px 20px 20px;border-radius:0 0 12px 12px}.result-text[data-v-8ffeb4e4]{margin-bottom:8px;white-space:pre-wrap}.result-actions[data-v-8ffeb4e4]{display:flex;gap:8px}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
2
2
  Theme: GitHub
3
3
  Description: Light theme as seen on github.com
4
4
  Author: github.com
@@ -7,4 +7,4 @@
7
7
 
8
8
  Outdated base version: https://github.com/primer/github-syntax-light
9
9
  Current colors taken from GitHub's CSS
10
- */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.link-bubble[data-v-547694a0]{position:absolute;width:300px}.unlink-btn[data-v-547694a0]{color:#f56c6c;border-color:#f56c6c;display:flex;align-items:center;transition:all .2s}.unlink-btn[data-v-547694a0]:hover{background-color:#f56c6c;color:#fff;border-color:#f56c6c}.unlink-btn svg[data-v-547694a0]{flex-shrink:0}.flex[data-v-547694a0]{display:flex}.justify-between[data-v-547694a0]{justify-content:space-between}.items-center[data-v-547694a0]{align-items:center}.ml-1[data-v-547694a0]{margin-left:4px}.mt-2[data-v-547694a0]{margin-top:8px}.text-right[data-v-547694a0]{text-align:right}[data-v-c0c6a2ad]:root{--clnpmel-color-primary: #fc5b08 !important}.jupyter-icon[data-v-c0c6a2ad]{display:inline-block;vertical-align:middle;fill:#333}.sudoku-div[data-v-d94a94d9]{background-color:#fff;display:inline-block}.sudoku-row[data-v-d94a94d9]{height:20px;display:flex;gap:2px}.sudoku-col[data-v-d94a94d9]{display:inline-block;width:16px;height:16px;margin-right:2px;background-color:#171a1d1a;cursor:pointer}.sudoku-col.active[data-v-d94a94d9]{background-color:#256cfb!important}[data-v-df6b62d1]:root{--clnpmel-color-primary: #fc5b08 !important}.floating-menu[data-v-df6b62d1]{position:relative;height:25px;z-index:999}.floating-menu .floating-menu-btn[data-v-df6b62d1]{border-radius:4px;border:1px solid #eee;background-color:#fff;padding:4px}.floating-menu .floating-menu-btn>p[data-v-df6b62d1]{line-height:14px;height:14px;margin:0}.floating-menu-cont[data-v-df6b62d1]{display:flex;flex-direction:column;gap:4px;position:absolute;border-radius:4px;border:1px solid #eee;background-color:#fff;padding:0 20px 20px;width:220px;box-sizing:border-box}.floating-menu-cont .floating-menu-tit[data-v-df6b62d1]{padding:8px 8px 4px 0;margin-left:4px;font-size:14px;line-height:16px;color:#9a9dac}.floating-menu-cont .floating-menu-top[data-v-df6b62d1]{padding-bottom:20px;width:100%;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid #EEEEEE}.floating-menu-cont .floating-menu-top .floating-menu-top-btns[data-v-df6b62d1]{display:flex;flex-wrap:wrap;gap:10px}.floating-menu-cont .floating-menu-top .floating-menu-top-btns>svg[data-v-df6b62d1]{cursor:pointer}.floating-menu-cont .floating-menu-common[data-v-df6b62d1]{margin-top:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list[data-v-df6b62d1]{margin-top:10px;display:flex;flex-direction:column;gap:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item[data-v-df6b62d1]{display:flex;align-items:center;gap:10px;cursor:pointer}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-l[data-v-df6b62d1]{width:42px;height:42px;border:1px solid #EEEEEE;display:flex;align-items:center;justify-content:center;border-radius:4px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r[data-v-df6b62d1]{width:100%;display:flex;flex-direction:column;gap:4px;font-size:14px;color:#333}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r>p[data-v-df6b62d1]{margin:0}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r .desc[data-v-df6b62d1]{color:#9a9dac;font-size:12px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .flex-justify-between[data-v-df6b62d1]{flex-direction:row;justify-content:space-between;align-items:center}.icon-gray[data-v-df6b62d1]{color:#999!important;cursor:not-allowed!important}.icon-gray .floating-menu-common-item-r[data-v-df6b62d1]{color:#999!important}.block-menu-item[data-v-df6b62d1]{padding:.25rem;display:flex;align-items:center;gap:1rem;cursor:pointer;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:#4b5563}.block-menu-item .block-menu-item-icon[data-v-df6b62d1]{background-color:#f3f4f6;display:flex;justify-content:center;align-items:center;height:24px;width:24px;border-radius:4px;--tw-bg-opacity: 1;padding:4px;font-size:20px}.block-menu-item[data-v-df6b62d1]:hover{background-color:#f3f4f6;font-weight:500;--tw-text-opacity: 1;color:#111827}.block-menu-item:hover .block-menu-item-icon[data-v-df6b62d1]{background-color:#fff}.tiptap-vue .tiptap-upload-file>div{width:100%}.tiptap-vue .tiptap-upload-file .block-menu-item{width:100%}[data-v-be715d1d]:root{--clnpmel-color-primary: #fc5b08 !important}.my-drawer .dialog-header[data-v-be715d1d]{display:flex;justify-content:flex-start;align-items:center;gap:6px}.my-drawer .dialog-header div[data-v-be715d1d]{color:var(--text-color);font-size:18px;font-style:normal;font-weight:400;line-height:25px}.my-drawer .close[data-v-be715d1d]{position:absolute;top:14px;right:14px;cursor:pointer}.my-drawer .el-drawer__header{margin-bottom:0}[data-v-146ec70a]:root{--clnpmel-color-primary: #fc5b08 !important}.el-dropdown-link[data-v-146ec70a]{display:flex;align-items:center;cursor:pointer}.toolbar[data-v-146ec70a]{display:flex;gap:8px;flex-wrap:wrap;padding:8px 20px;align-items:center}.toolbar .flex-center[data-v-146ec70a],.toolbar .flex-center .upload-demo[data-v-146ec70a]{display:flex;align-items:center;justify-content:center}.toolbar svg[data-v-146ec70a]{color:#333}.toolbar .el-dropdown[data-v-146ec70a]{height:22px}.is-active[data-v-146ec70a]{color:#256cfb}.icon-gray[data-v-146ec70a]{color:#999!important;cursor:not-allowed!important}.tiptap-upload-demo[data-v-146ec70a]{height:18px;display:flex;justify-content:center;align-items:center}.align-item[data-v-146ec70a]{display:flex;align-items:center;gap:4px}.table-content[data-v-146ec70a]{display:flex;justify-content:center;align-items:center;position:relative}.el-dropdown-menu__item>p[data-v-146ec70a]{margin:0!important}.el-dropdown-link.disabled[data-v-146ec70a]{opacity:.5;cursor:not-allowed!important;pointer-events:none}.tiptap-drop-down .el-dropdown-menu__item:not(.is-disabled):hover{background-color:#171a1d0f!important;color:inherit!important}.tiptap-drop-down .el-button--primary.is-link,.tiptap-drop-down .el-button--primary.is-plain,.tiptap-drop-down .el-button--primary.is-text{color:#256cfb!important}.tiptap-drop-down .el-button--primary.is-link svg,.tiptap-drop-down .el-button--primary.is-plain svg,.tiptap-drop-down .el-button--primary.is-text svg{color:#256cfb!important}.bubble-menu[data-v-dc69236f]{background:#fff;border-radius:12px;box-shadow:0 0 0 .5px #565b7647,0 2px 4px #00000014,0 4px 12px -4px #00000014,0 16px 24px -4px #00000029;z-index:999;display:flex}[data-v-1f02baea]:root{--clnpmel-color-primary: #fc5b08 !important}.floating-menu[data-v-1f02baea]{position:absolute;left:-44px;top:-14px;height:40px}.floating-menu-cont[data-v-1f02baea]{display:flex;flex-direction:column;gap:4px}.floating-menu-cont .floating-menu-tit[data-v-1f02baea]{padding:8px 8px 4px 0;margin-left:4px;font-size:14px;line-height:16px;color:#9a9dac}.floating-menu-cont .floating-menu-top[data-v-1f02baea]{padding-bottom:20px;width:100%;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid #EEEEEE}.floating-menu-cont .floating-menu-top .floating-menu-top-btns[data-v-1f02baea]{display:flex;flex-wrap:wrap;gap:10px}.floating-menu-cont .floating-menu-top .floating-menu-top-btns>svg[data-v-1f02baea]{cursor:pointer}.floating-menu-cont .floating-menu-common[data-v-1f02baea]{margin-top:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list[data-v-1f02baea]{margin-top:10px;display:flex;flex-direction:column;gap:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item[data-v-1f02baea]{display:flex;align-items:center;gap:10px;cursor:pointer}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-l[data-v-1f02baea]{width:42px;height:42px;border:1px solid #EEEEEE;display:flex;align-items:center;justify-content:center;border-radius:4px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r[data-v-1f02baea]{width:100%;display:flex;flex-direction:column;gap:4px;font-size:14px;color:#333}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r .desc[data-v-1f02baea]{color:#9a9dac;font-size:12px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .flex-justify-between[data-v-1f02baea]{flex-direction:row;justify-content:space-between;align-items:center}[data-v-61adf0aa]:root{--clnpmel-color-primary: #fc5b08 !important}.table-toolbar-wrapper[data-v-61adf0aa]{position:relative}.table-side-icon[data-v-61adf0aa]{width:24px;height:24px;border-radius:4px;background:#fff;box-shadow:0 2px 8px #0000001f;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#333;transition:transform .12s ease,background .12s ease}.table-side-icon[data-v-61adf0aa]:hover{transform:translateY(-2px);background:#f5f7ff}.table-toolbar-btns[data-v-61adf0aa]{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px}.table-toolbar-btns>div[data-v-61adf0aa]{cursor:pointer;padding:4px 8px;border-radius:4px}.table-toolbar-btns>div[data-v-61adf0aa]:hover{background-color:#f5f7fa}.table-toolbar-btns .danger[data-v-61adf0aa]{color:#f56c6c}.merge-control-panel[data-v-61adf0aa]{position:absolute;background:#fff;border-radius:6px;box-shadow:0 4px 12px #00000026;padding:8px;min-width:160px;z-index:1001}.merge-control-panel .merge-panel-header[data-v-61adf0aa]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #ebeef5;font-size:12px;color:#606266}.merge-control-panel .merge-panel-header svg[data-v-61adf0aa]{cursor:pointer;color:#909399}.merge-control-panel .merge-panel-header svg[data-v-61adf0aa]:hover{color:#409eff}.merge-control-panel .merge-panel-content[data-v-61adf0aa]{display:flex;flex-direction:column;gap:4px}.merge-control-panel .merge-option[data-v-61adf0aa]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:13px}.merge-control-panel .merge-option[data-v-61adf0aa]:hover{background-color:#f5f7fa}.merge-control-panel .merge-option.disabled[data-v-61adf0aa]{opacity:.5;cursor:not-allowed}.merge-control-panel .merge-option.disabled[data-v-61adf0aa]:hover{background-color:transparent}[data-v-39837116]:root{--clnpmel-color-primary: #fc5b08 !important}.ai-content[data-v-39837116]{position:absolute;width:calc(100% - 40px)}[data-v-0c8620c3]:root{--clnpmel-color-primary: #fc5b08 !important}.el-dropdown-link[data-v-0c8620c3]{display:flex;align-items:center;gap:4px;cursor:pointer}[data-v-0c8620c3] .el-dropdown-menu__item.active{color:var(--el-color-primary)}.editor-wrapper[data-v-0c8620c3]{border:1px solid #eeeeee;border-radius:6px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.editor-wrapper .editor-wrapper-toolbar[data-v-0c8620c3]{border-bottom:1px solid #eeeeee}.editor-wrapper .editor-bottom[data-v-0c8620c3]{display:flex;justify-content:space-between;align-items:center;padding:0 20px;height:40px;border-top:1px solid #eeeeee}.editor-wrapper .editor-bottom .editor-bottom-r[data-v-0c8620c3]{color:#999;font-size:12px}.editor-content-container[data-v-0c8620c3]{flex:1;height:0;position:relative}.editor-content[data-v-0c8620c3]{padding:20px 0;position:relative;box-sizing:border-box;height:100%;overflow-y:auto}.editor-content .editor-loading[data-v-0c8620c3]{width:100%;height:100%;position:absolute;top:0;left:0;z-index:100000}.upload-demo[data-v-0c8620c3]{display:flex;align-items:center}.bubble-menu[data-v-0c8620c3]{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:0 8px;z-index:999}.floating-menu[data-v-0c8620c3]{position:absolute;left:-50px;top:-14px;height:40px}.floating-menu .floating-menu-cont[data-v-0c8620c3]{display:flex;flex-direction:column}.table-toolbar[data-v-0c8620c3]{position:absolute;z-index:2}.table-toolbar .table-toolbar-btns[data-v-0c8620c3]{display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:0 8px;z-index:999}:root{--clnpmel-color-primary: #fc5b08 !important}.tiptap-vue .editor-content table{border-collapse:collapse;margin:10px 0;overflow:hidden;table-layout:fixed;width:100%;border:1px solid #ccc}.tiptap-vue .editor-content table td,.tiptap-vue .editor-content table th{border:1px solid #ccc;box-sizing:border-box;min-width:1em;padding:10px;position:relative;vertical-align:top}.tiptap-vue .editor-content table td>*,.tiptap-vue .editor-content table th>*{margin-bottom:0}.tiptap-vue .editor-content table td ul[data-type=taskList],.tiptap-vue .editor-content table th ul[data-type=taskList]{padding-left:0!important}.tiptap-vue .editor-content table td ul.bullet-list,.tiptap-vue .editor-content table th ul.bullet-list,.tiptap-vue .editor-content table td ol.ordered-list,.tiptap-vue .editor-content table th ol.ordered-list{padding-left:18px!important}.tiptap-vue .editor-content table th{background-color:var(--gray-1);font-weight:700;text-align:left}.tiptap-vue .editor-content table .selectedCell:after{background:#b7dcfb4d;content:"";left:0;right:0;top:0;bottom:0;pointer-events:none;position:absolute;z-index:2}.tiptap-vue .editor-content table .column-resize-handle,.tiptap-vue .editor-content table .row-resize-handle{background-color:#000;bottom:-2px;pointer-events:none;position:absolute;right:-2px;top:0;width:4px}.tiptap-vue .editor-content.resize-cursor{cursor:ew-resize;cursor:col-resize}.tiptap-vue .editor-content ul[data-type=taskList]{list-style:none;padding-left:30px;margin:10px 0}.tiptap-vue .editor-content ul[data-type=taskList] li{display:flex;align-items:baseline;-webkit-box-align:baseline}.tiptap-vue .editor-content ul[data-type=taskList] li>label{flex:0 0 auto;margin-right:.5rem;margin-top:.15em;-webkit-user-select:none;user-select:none;display:flex;align-items:center;line-height:1.5}.tiptap-vue .editor-content ul[data-type=taskList] li>div{flex:1 1 auto;word-wrap:break-word;word-break:break-word;line-height:1.5}.tiptap-vue .editor-content ul[data-type=taskList] li>div>p{margin:0!important;line-height:1.5}.tiptap-vue .editor-content ul[data-type=taskList] input[type=checkbox]{cursor:pointer;margin:0;flex-shrink:0}.tiptap-vue .editor-content ul[data-type=taskList] ul[data-type=taskList]{margin:0}.tiptap-vue .editor-content img,.tiptap-vue .editor-content p,.tiptap-vue .editor-content ol,.tiptap-vue .editor-content h1,.tiptap-vue .editor-content h2,.tiptap-vue .editor-content h3,.tiptap-vue .editor-content h4,.tiptap-vue .editor-content h5,.tiptap-vue .editor-content h6{margin:10px 0}.tiptap-vue .editor-content .ProseMirror{height:calc(100% - 10px)}.tiptap-vue .editor-content .ProseMirror p.is-empty:before{padding-left:30px;content:attr(data-placeholder);position:absolute;top:0;left:0;color:#999;pointer-events:none;font-size:inherit;font-style:italic;-webkit-user-select:none;user-select:none}.tiptap-vue .editor-content .ProseMirror>*{padding:0 30px}.tiptap-vue .editor-content .code-block-view,.tiptap-vue .editor-content .ai-assistant-card{padding:0!important}.tiptap-vue .editor-content ul[data-type=taskList] li>p{margin:0!important}.tiptap-vue .editor-content .bullet-list{padding-left:50px}.tiptap-vue .editor-content .bullet-list li>p{margin:0!important}.tiptap-vue .editor-content .ordered-list li>p{margin:0!important}.tiptap-vue .editor-content h1{font-size:2em!important}.tiptap-vue .editor-content h2{font-size:1.5em!important}.tiptap-vue .editor-content h3{font-size:1.17em!important}.tiptap-vue .editor-content h4{font-size:inherit!important}.tiptap-vue .editor-content h5{font-size:.83em!important}.tiptap-vue .editor-content h6{font-size:.67em!important}.is-inline .bullet-list,.is-inline .ordered-list,.is-inline ol,.is-inline ul[data-type=taskList]{padding-left:0!important}.tiptap-vue .el-form-item{margin-bottom:10px!important}.tiptap-vue .noPadding{padding:0}.tiptap-vue .noPadding .ProseMirror>*{padding:0}.tiptap-vue .noPadding .code-block-view-cont{margin:0!important}:focus{outline:none!important}:focus-visible{outline:none!important}.tiptap ol{padding-left:50px!important;list-style-type:decimal;margin:.5em 0}.tiptap ol ol{list-style-type:lower-alpha}.tiptap ol ol ol{list-style-type:lower-roman}.tiptap ol ol ol ol{list-style-type:upper-alpha}.tiptap ol ol ol ol ol{list-style-type:upper-roman}.tiptap li{position:relative}.tiptap ol[data-level="2"]{background-color:#00000005}.tiptap ol[data-level="3"]{background-color:#0000000a}.source-dialog-content{width:100%;height:100%}.source-dialog-content :deep(.el-textarea){width:100%}.source-dialog-content :deep(.el-textarea__inner){font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.5;resize:none}.tiptap-vue .editor-content :deep(u),.tiptap-vue .editor-content :deep(.underline){text-decoration:underline!important}.tiptap-vue .editor-content :deep(s),.tiptap-vue .editor-content :deep(del),.tiptap-vue .editor-content :deep(strike){text-decoration:line-through!important}.tiptap-vue .editor-content :deep([style*="text-align"]){text-align:inherit}@font-face{font-family:iconfont;src:url(iconfont.woff2?t=1761630666591) format("woff2"),url(iconfont.woff?t=1761630666591) format("woff"),url(iconfont.ttf?t=1761630666591) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-logos--jupyter:before{content:""}
10
+ */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.link-bubble[data-v-547694a0]{position:absolute;width:300px}.unlink-btn[data-v-547694a0]{color:#f56c6c;border-color:#f56c6c;display:flex;align-items:center;transition:all .2s}.unlink-btn[data-v-547694a0]:hover{background-color:#f56c6c;color:#fff;border-color:#f56c6c}.unlink-btn svg[data-v-547694a0]{flex-shrink:0}.flex[data-v-547694a0]{display:flex}.justify-between[data-v-547694a0]{justify-content:space-between}.items-center[data-v-547694a0]{align-items:center}.ml-1[data-v-547694a0]{margin-left:4px}.mt-2[data-v-547694a0]{margin-top:8px}.text-right[data-v-547694a0]{text-align:right}[data-v-c0c6a2ad]:root{--clnpmel-color-primary: #fc5b08 !important}.jupyter-icon[data-v-c0c6a2ad]{display:inline-block;vertical-align:middle;fill:#333}.sudoku-div[data-v-d94a94d9]{background-color:#fff;display:inline-block}.sudoku-row[data-v-d94a94d9]{height:20px;display:flex;gap:2px}.sudoku-col[data-v-d94a94d9]{display:inline-block;width:16px;height:16px;margin-right:2px;background-color:#171a1d1a;cursor:pointer}.sudoku-col.active[data-v-d94a94d9]{background-color:#256cfb!important}[data-v-d72f0e9a]:root{--clnpmel-color-primary: #fc5b08 !important}.floating-menu[data-v-d72f0e9a]{position:relative;height:25px;z-index:999}.floating-menu .floating-menu-btn[data-v-d72f0e9a]{border-radius:4px;border:1px solid #eee;background-color:#fff;padding:4px}.floating-menu .floating-menu-btn>p[data-v-d72f0e9a]{line-height:14px;height:14px;margin:0}.floating-menu-cont[data-v-d72f0e9a]{display:flex;flex-direction:column;gap:4px;position:absolute;border-radius:4px;border:1px solid #eee;background-color:#fff;padding:0 20px 20px;width:220px;box-sizing:border-box}.floating-menu-cont .floating-menu-tit[data-v-d72f0e9a]{padding:8px 8px 4px 0;margin-left:4px;font-size:14px;line-height:16px;color:#9a9dac}.floating-menu-cont .floating-menu-top[data-v-d72f0e9a]{padding-bottom:20px;width:100%;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid #EEEEEE}.floating-menu-cont .floating-menu-top .floating-menu-top-btns[data-v-d72f0e9a]{display:flex;flex-wrap:wrap;gap:10px}.floating-menu-cont .floating-menu-top .floating-menu-top-btns>svg[data-v-d72f0e9a]{cursor:pointer}.floating-menu-cont .floating-menu-common[data-v-d72f0e9a]{margin-top:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list[data-v-d72f0e9a]{margin-top:10px;display:flex;flex-direction:column;gap:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item[data-v-d72f0e9a]{display:flex;align-items:center;gap:10px;cursor:pointer}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-l[data-v-d72f0e9a]{width:42px;height:42px;border:1px solid #EEEEEE;display:flex;align-items:center;justify-content:center;border-radius:4px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r[data-v-d72f0e9a]{width:100%;display:flex;flex-direction:column;gap:4px;font-size:14px;color:#333}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r>p[data-v-d72f0e9a]{margin:0}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r .desc[data-v-d72f0e9a]{color:#9a9dac;font-size:12px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .flex-justify-between[data-v-d72f0e9a]{flex-direction:row;justify-content:space-between;align-items:center}.icon-gray[data-v-d72f0e9a]{color:#999!important;cursor:not-allowed!important}.icon-gray .floating-menu-common-item-r[data-v-d72f0e9a]{color:#999!important}.block-menu-item[data-v-d72f0e9a]{padding:.25rem;display:flex;align-items:center;gap:1rem;cursor:pointer;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:#4b5563}.block-menu-item .block-menu-item-icon[data-v-d72f0e9a]{background-color:#f3f4f6;display:flex;justify-content:center;align-items:center;height:24px;width:24px;border-radius:4px;--tw-bg-opacity: 1;padding:4px;font-size:20px}.block-menu-item[data-v-d72f0e9a]:hover{background-color:#f3f4f6;font-weight:500;--tw-text-opacity: 1;color:#111827}.block-menu-item:hover .block-menu-item-icon[data-v-d72f0e9a]{background-color:#fff}.tiptap-vue .tiptap-upload-file>div{width:100%}.tiptap-vue .tiptap-upload-file .block-menu-item{width:100%}[data-v-be715d1d]:root{--clnpmel-color-primary: #fc5b08 !important}.my-drawer .dialog-header[data-v-be715d1d]{display:flex;justify-content:flex-start;align-items:center;gap:6px}.my-drawer .dialog-header div[data-v-be715d1d]{color:var(--text-color);font-size:18px;font-style:normal;font-weight:400;line-height:25px}.my-drawer .close[data-v-be715d1d]{position:absolute;top:14px;right:14px;cursor:pointer}.my-drawer .el-drawer__header{margin-bottom:0}[data-v-8a153055]:root{--clnpmel-color-primary: #fc5b08 !important}.el-dropdown-link[data-v-8a153055]{display:flex;align-items:center;cursor:pointer}.toolbar[data-v-8a153055]{display:flex;gap:8px;flex-wrap:wrap;padding:8px 20px;align-items:center}.toolbar .flex-center[data-v-8a153055],.toolbar .flex-center .upload-demo[data-v-8a153055]{display:flex;align-items:center;justify-content:center}.toolbar svg[data-v-8a153055]{color:#333}.toolbar .el-dropdown[data-v-8a153055]{height:22px}.is-active[data-v-8a153055]{color:#256cfb}.icon-gray[data-v-8a153055]{color:#999!important;cursor:not-allowed!important}.tiptap-upload-demo[data-v-8a153055]{height:18px;display:flex;justify-content:center;align-items:center}.align-item[data-v-8a153055]{display:flex;align-items:center;gap:4px}.table-content[data-v-8a153055]{display:flex;justify-content:center;align-items:center;position:relative}.el-dropdown-menu__item>p[data-v-8a153055]{margin:0!important}.el-dropdown-link.disabled[data-v-8a153055]{opacity:.5;cursor:not-allowed!important;pointer-events:none}.tiptap-drop-down .el-dropdown-menu__item:not(.is-disabled):hover{background-color:#171a1d0f!important;color:inherit!important}.tiptap-drop-down .el-button--primary.is-link,.tiptap-drop-down .el-button--primary.is-plain,.tiptap-drop-down .el-button--primary.is-text{color:#256cfb!important}.tiptap-drop-down .el-button--primary.is-link svg,.tiptap-drop-down .el-button--primary.is-plain svg,.tiptap-drop-down .el-button--primary.is-text svg{color:#256cfb!important}.bubble-menu[data-v-dc69236f]{background:#fff;border-radius:12px;box-shadow:0 0 0 .5px #565b7647,0 2px 4px #00000014,0 4px 12px -4px #00000014,0 16px 24px -4px #00000029;z-index:999;display:flex}[data-v-1f02baea]:root{--clnpmel-color-primary: #fc5b08 !important}.floating-menu[data-v-1f02baea]{position:absolute;left:-44px;top:-14px;height:40px}.floating-menu-cont[data-v-1f02baea]{display:flex;flex-direction:column;gap:4px}.floating-menu-cont .floating-menu-tit[data-v-1f02baea]{padding:8px 8px 4px 0;margin-left:4px;font-size:14px;line-height:16px;color:#9a9dac}.floating-menu-cont .floating-menu-top[data-v-1f02baea]{padding-bottom:20px;width:100%;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid #EEEEEE}.floating-menu-cont .floating-menu-top .floating-menu-top-btns[data-v-1f02baea]{display:flex;flex-wrap:wrap;gap:10px}.floating-menu-cont .floating-menu-top .floating-menu-top-btns>svg[data-v-1f02baea]{cursor:pointer}.floating-menu-cont .floating-menu-common[data-v-1f02baea]{margin-top:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list[data-v-1f02baea]{margin-top:10px;display:flex;flex-direction:column;gap:10px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item[data-v-1f02baea]{display:flex;align-items:center;gap:10px;cursor:pointer}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-l[data-v-1f02baea]{width:42px;height:42px;border:1px solid #EEEEEE;display:flex;align-items:center;justify-content:center;border-radius:4px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r[data-v-1f02baea]{width:100%;display:flex;flex-direction:column;gap:4px;font-size:14px;color:#333}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .floating-menu-common-item-r .desc[data-v-1f02baea]{color:#9a9dac;font-size:12px}.floating-menu-cont .floating-menu-common .floating-menu-common-list .floating-menu-common-item .flex-justify-between[data-v-1f02baea]{flex-direction:row;justify-content:space-between;align-items:center}[data-v-61adf0aa]:root{--clnpmel-color-primary: #fc5b08 !important}.table-toolbar-wrapper[data-v-61adf0aa]{position:relative}.table-side-icon[data-v-61adf0aa]{width:24px;height:24px;border-radius:4px;background:#fff;box-shadow:0 2px 8px #0000001f;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#333;transition:transform .12s ease,background .12s ease}.table-side-icon[data-v-61adf0aa]:hover{transform:translateY(-2px);background:#f5f7ff}.table-toolbar-btns[data-v-61adf0aa]{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px}.table-toolbar-btns>div[data-v-61adf0aa]{cursor:pointer;padding:4px 8px;border-radius:4px}.table-toolbar-btns>div[data-v-61adf0aa]:hover{background-color:#f5f7fa}.table-toolbar-btns .danger[data-v-61adf0aa]{color:#f56c6c}.merge-control-panel[data-v-61adf0aa]{position:absolute;background:#fff;border-radius:6px;box-shadow:0 4px 12px #00000026;padding:8px;min-width:160px;z-index:1001}.merge-control-panel .merge-panel-header[data-v-61adf0aa]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #ebeef5;font-size:12px;color:#606266}.merge-control-panel .merge-panel-header svg[data-v-61adf0aa]{cursor:pointer;color:#909399}.merge-control-panel .merge-panel-header svg[data-v-61adf0aa]:hover{color:#409eff}.merge-control-panel .merge-panel-content[data-v-61adf0aa]{display:flex;flex-direction:column;gap:4px}.merge-control-panel .merge-option[data-v-61adf0aa]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:13px}.merge-control-panel .merge-option[data-v-61adf0aa]:hover{background-color:#f5f7fa}.merge-control-panel .merge-option.disabled[data-v-61adf0aa]{opacity:.5;cursor:not-allowed}.merge-control-panel .merge-option.disabled[data-v-61adf0aa]:hover{background-color:transparent}[data-v-39837116]:root{--clnpmel-color-primary: #fc5b08 !important}.ai-content[data-v-39837116]{position:absolute;width:calc(100% - 40px)}[data-v-b4519289]:root{--clnpmel-color-primary: #fc5b08 !important}.el-dropdown-link[data-v-b4519289]{display:flex;align-items:center;gap:4px;cursor:pointer}[data-v-b4519289] .el-dropdown-menu__item.active{color:var(--el-color-primary)}.editor-wrapper[data-v-b4519289]{border:1px solid #eeeeee;border-radius:6px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.editor-wrapper .editor-wrapper-toolbar[data-v-b4519289]{border-bottom:1px solid #eeeeee}.editor-wrapper .editor-bottom[data-v-b4519289]{display:flex;justify-content:space-between;align-items:center;padding:0 20px;height:40px;border-top:1px solid #eeeeee}.editor-wrapper .editor-bottom .editor-bottom-r[data-v-b4519289]{color:#999;font-size:12px}.editor-content-container[data-v-b4519289]{flex:1;height:0;position:relative}.editor-content[data-v-b4519289]{padding:20px 0;position:relative;box-sizing:border-box;height:100%;overflow-y:auto}.editor-content .editor-loading[data-v-b4519289]{width:100%;height:100%;position:absolute;top:0;left:0;z-index:100000}.upload-demo[data-v-b4519289]{display:flex;align-items:center}.bubble-menu[data-v-b4519289]{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:0 8px;z-index:999}.floating-menu[data-v-b4519289]{position:absolute;left:-50px;top:-14px;height:40px}.floating-menu .floating-menu-cont[data-v-b4519289]{display:flex;flex-direction:column}.table-toolbar[data-v-b4519289]{position:absolute;z-index:2}.table-toolbar .table-toolbar-btns[data-v-b4519289]{display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:0 8px;z-index:999}:root{--clnpmel-color-primary: #fc5b08 !important}.tiptap-vue .editor-content table{border-collapse:collapse;margin:10px 0;overflow:hidden;table-layout:fixed;width:100%;border:1px solid #ccc}.tiptap-vue .editor-content table td,.tiptap-vue .editor-content table th{border:1px solid #ccc;box-sizing:border-box;min-width:1em;padding:10px;position:relative;vertical-align:top}.tiptap-vue .editor-content table td>*,.tiptap-vue .editor-content table th>*{margin-bottom:0}.tiptap-vue .editor-content table td ul[data-type=taskList],.tiptap-vue .editor-content table th ul[data-type=taskList]{padding-left:0!important}.tiptap-vue .editor-content table td ul.bullet-list,.tiptap-vue .editor-content table th ul.bullet-list,.tiptap-vue .editor-content table td ol.ordered-list,.tiptap-vue .editor-content table th ol.ordered-list{padding-left:18px!important}.tiptap-vue .editor-content table th{background-color:var(--gray-1);font-weight:700;text-align:left}.tiptap-vue .editor-content table .selectedCell:after{background:#b7dcfb4d;content:"";left:0;right:0;top:0;bottom:0;pointer-events:none;position:absolute;z-index:2}.tiptap-vue .editor-content table .column-resize-handle,.tiptap-vue .editor-content table .row-resize-handle{background-color:#000;bottom:-2px;pointer-events:none;position:absolute;right:-2px;top:0;width:4px}.tiptap-vue .editor-content.resize-cursor{cursor:ew-resize;cursor:col-resize}.tiptap-vue .editor-content ul[data-type=taskList]{list-style:none;padding-left:30px;margin:10px 0}.tiptap-vue .editor-content ul[data-type=taskList] li{display:flex;align-items:baseline;-webkit-box-align:baseline}.tiptap-vue .editor-content ul[data-type=taskList] li>label{flex:0 0 auto;margin-right:.5rem;margin-top:.15em;-webkit-user-select:none;user-select:none;display:flex;align-items:center;line-height:1.5}.tiptap-vue .editor-content ul[data-type=taskList] li>div{flex:1 1 auto;word-wrap:break-word;word-break:break-word;line-height:1.5}.tiptap-vue .editor-content ul[data-type=taskList] li>div>p{margin:0!important;line-height:1.5}.tiptap-vue .editor-content ul[data-type=taskList] input[type=checkbox]{cursor:pointer;margin:0;flex-shrink:0}.tiptap-vue .editor-content ul[data-type=taskList] ul[data-type=taskList]{margin:0}.tiptap-vue .editor-content img,.tiptap-vue .editor-content p,.tiptap-vue .editor-content ol,.tiptap-vue .editor-content h1,.tiptap-vue .editor-content h2,.tiptap-vue .editor-content h3,.tiptap-vue .editor-content h4,.tiptap-vue .editor-content h5,.tiptap-vue .editor-content h6{margin:10px 0}.tiptap-vue .editor-content .ProseMirror{height:calc(100% - 10px)}.tiptap-vue .editor-content .ProseMirror p.is-empty:before{padding-left:30px;content:attr(data-placeholder);position:absolute;top:0;left:0;color:#999;pointer-events:none;font-size:inherit;font-style:italic;-webkit-user-select:none;user-select:none}.tiptap-vue .editor-content .ProseMirror>*{padding:0 30px}.tiptap-vue .editor-content .code-block-view,.tiptap-vue .editor-content .ai-assistant-card{padding:0!important}.tiptap-vue .editor-content ul[data-type=taskList] li>p{margin:0!important}.tiptap-vue .editor-content .bullet-list{padding-left:50px}.tiptap-vue .editor-content .bullet-list li>p{margin:0!important}.tiptap-vue .editor-content .ordered-list li>p{margin:0!important}.tiptap-vue .editor-content h1{font-size:2em!important}.tiptap-vue .editor-content h2{font-size:1.5em!important}.tiptap-vue .editor-content h3{font-size:1.17em!important}.tiptap-vue .editor-content h4{font-size:inherit!important}.tiptap-vue .editor-content h5{font-size:.83em!important}.tiptap-vue .editor-content h6{font-size:.67em!important}.is-inline .bullet-list,.is-inline .ordered-list,.is-inline ol,.is-inline ul[data-type=taskList]{padding-left:0!important}.tiptap-vue .el-form-item{margin-bottom:10px!important}.tiptap-vue .noPadding{padding:0}.tiptap-vue .noPadding .ProseMirror>*{padding:0}.tiptap-vue .noPadding .code-block-view-cont{margin:0!important}:focus{outline:none!important}:focus-visible{outline:none!important}.tiptap ol{padding-left:50px!important;list-style-type:decimal;margin:.5em 0}.tiptap ol ol{list-style-type:lower-alpha}.tiptap ol ol ol{list-style-type:lower-roman}.tiptap ol ol ol ol{list-style-type:upper-alpha}.tiptap ol ol ol ol ol{list-style-type:upper-roman}.tiptap li{position:relative}.tiptap ol[data-level="2"]{background-color:#00000005}.tiptap ol[data-level="3"]{background-color:#0000000a}.source-dialog-content{width:100%;height:100%}.source-dialog-content :deep(.el-textarea){width:100%}.source-dialog-content :deep(.el-textarea__inner){font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.5;resize:none}.tiptap-vue .editor-content :deep(u),.tiptap-vue .editor-content :deep(.underline){text-decoration:underline!important}.tiptap-vue .editor-content :deep(s),.tiptap-vue .editor-content :deep(del),.tiptap-vue .editor-content :deep(strike){text-decoration:line-through!important}.tiptap-vue .editor-content :deep([style*="text-align"]){text-align:inherit}.tiptap-vue .editor-content :deep(mark){font-size:inherit!important;font-weight:inherit!important;font-style:inherit!important;color:inherit!important;line-height:inherit!important}@font-face{font-family:iconfont;src:url(iconfont.woff2?t=1761630666591) format("woff2"),url(iconfont.woff?t=1761630666591) format("woff"),url(iconfont.ttf?t=1761630666591) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-logos--jupyter:before{content:""}
@@ -137034,23 +137034,95 @@ function loadContentInChunks({
137034
137034
  }
137035
137035
  let index = 0;
137036
137036
  const total = blocks.length;
137037
+ let cancelled = false;
137038
+ let timeoutId = null;
137039
+ const startTime2 = performance.now();
137040
+ const DIRECT_INSERT_THRESHOLD = 300;
137041
+ let actualChunkSize;
137042
+ if (total <= DIRECT_INSERT_THRESHOLD) {
137043
+ actualChunkSize = total;
137044
+ } else {
137045
+ actualChunkSize = 300;
137046
+ }
137047
+ const totalBatches = Math.ceil(total / actualChunkSize);
137048
+ console.log(`[分块加载] 总块数: ${total}, 每次插入: ${actualChunkSize} 块, 预计批次: ${totalBatches}`);
137049
+ const wasEditable = editor.isEditable;
137050
+ const originalUpdate = editor.options.onUpdate;
137051
+ if (wasEditable) {
137052
+ editor.setEditable(false);
137053
+ }
137054
+ editor.options.onUpdate = () => {
137055
+ };
137037
137056
  const { from: from2, to } = editor.state.selection;
137038
137057
  const insertPos = to || from2;
137058
+ let lastProgressUpdate = 0;
137059
+ let batchCount = 0;
137039
137060
  function insertChunk(pos) {
137040
- const chunk = blocks.slice(index, index + chunkSize);
137061
+ if (cancelled) {
137062
+ return;
137063
+ }
137064
+ if (!editor || !editor.view || editor.isDestroyed) {
137065
+ console.warn("[分块插入] 编辑器已销毁,停止插入");
137066
+ cancelled = true;
137067
+ if (originalUpdate && editor) {
137068
+ editor.options.onUpdate = originalUpdate;
137069
+ }
137070
+ if (wasEditable && editor && !editor.isDestroyed) {
137071
+ editor.setEditable(true);
137072
+ }
137073
+ onComplete == null ? void 0 : onComplete();
137074
+ return;
137075
+ }
137076
+ const chunk = blocks.slice(index, index + actualChunkSize);
137041
137077
  if (!chunk.length) {
137078
+ if (originalUpdate) {
137079
+ editor.options.onUpdate = originalUpdate;
137080
+ }
137081
+ if (wasEditable) {
137082
+ editor.setEditable(true);
137083
+ }
137084
+ editor.view.updateState(editor.state);
137085
+ const elapsed = performance.now() - startTime2;
137086
+ console.log(`[分块插入] 完成,总耗时: ${elapsed.toFixed(2)}ms,共 ${total} 个块`);
137042
137087
  onProgress == null ? void 0 : onProgress(1);
137043
137088
  onComplete == null ? void 0 : onComplete();
137044
137089
  return;
137045
137090
  }
137046
137091
  try {
137092
+ if (!editor || !editor.view || editor.isDestroyed) {
137093
+ console.warn("[分块插入] 编辑器在插入过程中被销毁");
137094
+ cancelled = true;
137095
+ if (originalUpdate && editor) {
137096
+ editor.options.onUpdate = originalUpdate;
137097
+ }
137098
+ if (wasEditable && editor && !editor.isDestroyed) {
137099
+ editor.setEditable(true);
137100
+ }
137101
+ onComplete == null ? void 0 : onComplete();
137102
+ return;
137103
+ }
137047
137104
  const beforeSize = editor.state.doc.content.size;
137048
137105
  if (pos < 0 || pos > beforeSize) {
137049
137106
  pos = beforeSize;
137050
137107
  }
137051
- editor.chain().focus().insertContentAt(pos, chunk).run();
137052
- index += chunkSize;
137053
- onProgress == null ? void 0 : onProgress(Math.min(index / total, 1));
137108
+ const isFirstChunk = index === 0;
137109
+ const isLastChunk = index + actualChunkSize >= total;
137110
+ batchCount++;
137111
+ if (total <= DIRECT_INSERT_THRESHOLD && isFirstChunk) {
137112
+ editor.chain().focus().insertContentAt(pos, chunk).run();
137113
+ } else if (isFirstChunk || isLastChunk) {
137114
+ editor.chain().focus().insertContentAt(pos, chunk).run();
137115
+ } else {
137116
+ editor.chain().insertContentAt(pos, chunk).run();
137117
+ }
137118
+ index += actualChunkSize;
137119
+ const now = performance.now();
137120
+ if (now - lastProgressUpdate > 100 || index >= total) {
137121
+ lastProgressUpdate = now;
137122
+ const elapsed = now - startTime2;
137123
+ console.log(`[分块进度] 批次 ${batchCount}/${totalBatches}, 已插入 ${index}/${total} 块, 耗时: ${elapsed.toFixed(2)}ms`);
137124
+ onProgress == null ? void 0 : onProgress(Math.min(index / total, 1));
137125
+ }
137054
137126
  let nextPos;
137055
137127
  if (isPaste) {
137056
137128
  const afterSize = editor.state.doc.content.size;
@@ -137063,17 +137135,43 @@ function loadContentInChunks({
137063
137135
  } else {
137064
137136
  nextPos = editor.state.doc.content.size;
137065
137137
  }
137066
- if ("requestIdleCallback" in window) {
137067
- requestIdleCallback(() => insertChunk(nextPos), { timeout: 50 });
137138
+ if (total <= DIRECT_INSERT_THRESHOLD) {
137139
+ timeoutId = setTimeout(() => insertChunk(nextPos), 0);
137068
137140
  } else {
137069
- setTimeout(() => insertChunk(nextPos), 0);
137141
+ timeoutId = requestAnimationFrame(() => insertChunk(nextPos));
137070
137142
  }
137071
137143
  } catch (error2) {
137072
- console.error("[分块插入] 插入失败:", error2);
137144
+ console.warn("[分块插入] 插入失败:", error2.message || error2);
137145
+ cancelled = true;
137146
+ if (originalUpdate && editor) {
137147
+ editor.options.onUpdate = originalUpdate;
137148
+ }
137149
+ if (wasEditable && editor && !editor.isDestroyed) {
137150
+ editor.setEditable(true);
137151
+ }
137073
137152
  onComplete == null ? void 0 : onComplete();
137074
137153
  }
137075
137154
  }
137076
137155
  insertChunk(insertPos);
137156
+ return {
137157
+ cancel: () => {
137158
+ cancelled = true;
137159
+ if (timeoutId) {
137160
+ try {
137161
+ clearTimeout(timeoutId);
137162
+ cancelAnimationFrame(timeoutId);
137163
+ } catch (e) {
137164
+ }
137165
+ timeoutId = null;
137166
+ }
137167
+ if (originalUpdate && editor && !editor.isDestroyed) {
137168
+ editor.options.onUpdate = originalUpdate;
137169
+ }
137170
+ if (wasEditable && editor && !editor.isDestroyed) {
137171
+ editor.setEditable(true);
137172
+ }
137173
+ }
137174
+ };
137077
137175
  }
137078
137176
  function extend(destination) {
137079
137177
  for (var i = 1; i < arguments.length; i++) {
@@ -137879,7 +137977,7 @@ const _hoisted_6$3 = {
137879
137977
  const _hoisted_7$3 = ["onClick"];
137880
137978
  const _hoisted_8$3 = ["src"];
137881
137979
  const _hoisted_9$3 = { class: "result-image-checkbox" };
137882
- const _hoisted_10$2 = { class: "result-text" };
137980
+ const _hoisted_10$1 = { class: "result-text" };
137883
137981
  const _hoisted_11 = { class: "result-actions" };
137884
137982
  const _sfc_main$b = {
137885
137983
  __name: "AiComponent",
@@ -137906,6 +138004,13 @@ const _sfc_main$b = {
137906
138004
  }
137907
138005
  };
137908
138006
  onBeforeUnmount(() => {
138007
+ if (currentChunkLoader && currentChunkLoader.cancel) {
138008
+ currentChunkLoader.cancel();
138009
+ currentChunkLoader = null;
138010
+ }
138011
+ if (sse) {
138012
+ sse.close();
138013
+ }
137909
138014
  document.removeEventListener("mousedown", handleClickOutside);
137910
138015
  });
137911
138016
  const aiInput = ref(null);
@@ -138037,6 +138142,7 @@ const _sfc_main$b = {
138037
138142
  scene.value = "text-to-text";
138038
138143
  send2();
138039
138144
  };
138145
+ let currentChunkLoader = null;
138040
138146
  const insert = () => {
138041
138147
  if (scene.value == "text-to-image") {
138042
138148
  let arr = imageArr.value.filter((item) => item.checked).map((item) => item.img);
@@ -138050,16 +138156,20 @@ const _sfc_main$b = {
138050
138156
  const { to: to2 } = props.editor.state.selection;
138051
138157
  console.log(answer.value, "==============");
138052
138158
  props.editor.chain().focus().setTextSelection(to2);
138053
- loadContentInChunks({
138159
+ currentChunkLoader = loadContentInChunks({
138054
138160
  editor: props.editor,
138055
138161
  content: answer.value,
138056
138162
  type: "html",
138057
138163
  extensions: commonExtensions(),
138058
- chunkSize: 5,
138164
+ chunkSize: 10,
138165
+ // AI 生成内容通常较小,使用 10 个块即可
138059
138166
  onProgress: (p) => {
138060
138167
  if (p > 0) {
138061
138168
  emit("toggleLoading", false);
138062
138169
  }
138170
+ },
138171
+ onComplete: () => {
138172
+ currentChunkLoader = null;
138063
138173
  }
138064
138174
  });
138065
138175
  }
@@ -138295,7 +138405,7 @@ const _sfc_main$b = {
138295
138405
  ], 8, _hoisted_7$3);
138296
138406
  }), 128))
138297
138407
  ])) : createCommentVNode("", true),
138298
- createElementVNode("div", _hoisted_10$2, [
138408
+ createElementVNode("div", _hoisted_10$1, [
138299
138409
  unref(previewEditor) ? (openBlock(), createBlock(unref(EditorContent), {
138300
138410
  key: 0,
138301
138411
  editor: unref(previewEditor)
@@ -138341,7 +138451,7 @@ const _sfc_main$b = {
138341
138451
  };
138342
138452
  }
138343
138453
  };
138344
- const AiComponent = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-244d909d"]]);
138454
+ const AiComponent = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-8ffeb4e4"]]);
138345
138455
  const _sfc_main$a = {
138346
138456
  __name: "AiAssistantView",
138347
138457
  props: {
@@ -147596,11 +147706,10 @@ const _hoisted_2$4 = { class: "floating-menu-top-btns" };
147596
147706
  const _hoisted_3$4 = { class: "floating-menu-common" };
147597
147707
  const _hoisted_4$2 = { class: "floating-menu-common-list" };
147598
147708
  const _hoisted_5$2 = { class: "block-menu-item-icon" };
147599
- const _hoisted_6$2 = { class: "block-menu-item" };
147709
+ const _hoisted_6$2 = { class: "block-menu-item-icon" };
147600
147710
  const _hoisted_7$2 = { class: "block-menu-item-icon" };
147601
147711
  const _hoisted_8$2 = { class: "block-menu-item-icon" };
147602
147712
  const _hoisted_9$2 = { class: "block-menu-item-icon" };
147603
- const _hoisted_10$1 = { class: "block-menu-item-icon" };
147604
147713
  const _sfc_main$6 = {
147605
147714
  __name: "BlockMenu",
147606
147715
  props: {
@@ -148064,18 +148173,21 @@ const _sfc_main$6 = {
148064
148173
  },
148065
148174
  accept: ".jpg,.png,.jpeg,.gif",
148066
148175
  "before-upload": handleImageUpload,
148067
- "on-success": uploadFileSuccess
148176
+ "on-success": uploadFileSuccess,
148177
+ disabled: isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList")
148068
148178
  }, {
148069
148179
  default: withCtx(() => [
148070
- createElementVNode("div", _hoisted_6$2, [
148071
- createElementVNode("div", _hoisted_7$2, [
148180
+ createElementVNode("div", {
148181
+ class: normalizeClass(["block-menu-item", { "icon-gray": isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList") }])
148182
+ }, [
148183
+ createElementVNode("div", _hoisted_6$2, [
148072
148184
  createVNode(unref(Icon), { icon: "material-symbols:imagesmode-outline-sharp" })
148073
148185
  ]),
148074
148186
  _cache[25] || (_cache[25] = createElementVNode("div", null, "上传本地图片", -1))
148075
- ])
148187
+ ], 2)
148076
148188
  ]),
148077
148189
  _: 1
148078
- }, 8, ["action", "headers"]), [
148190
+ }, 8, ["action", "headers", "disabled"]), [
148079
148191
  [vShow, unref(isShowMenu)("image", __props.showMenu)]
148080
148192
  ]),
148081
148193
  withDirectives(createElementVNode("div", null, [
@@ -148091,7 +148203,7 @@ const _sfc_main$6 = {
148091
148203
  class: normalizeClass(["block-menu-item", { "icon-gray": isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList") }]),
148092
148204
  ref: "tableRef"
148093
148205
  }, [
148094
- createElementVNode("div", _hoisted_8$2, [
148206
+ createElementVNode("div", _hoisted_7$2, [
148095
148207
  createVNode(unref(Icon), {
148096
148208
  icon: "material-symbols:table-outline-sharp",
148097
148209
  width: "20"
@@ -148129,7 +148241,7 @@ const _sfc_main$6 = {
148129
148241
  createElementVNode("div", {
148130
148242
  class: normalizeClass(["block-menu-item", { "icon-gray": isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList") }])
148131
148243
  }, [
148132
- createElementVNode("div", _hoisted_9$2, [
148244
+ createElementVNode("div", _hoisted_8$2, [
148133
148245
  createVNode(unref(Icon), { icon: "tabler:file-word" })
148134
148246
  ]),
148135
148247
  _cache[27] || (_cache[27] = createElementVNode("div", null, "上传word文件", -1))
@@ -148158,7 +148270,7 @@ const _sfc_main$6 = {
148158
148270
  createElementVNode("div", {
148159
148271
  class: normalizeClass(["block-menu-item", { "icon-gray": isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList") }])
148160
148272
  }, [
148161
- createElementVNode("div", _hoisted_10$1, [
148273
+ createElementVNode("div", _hoisted_9$2, [
148162
148274
  createVNode(JupyterSvg, {
148163
148275
  width: 20,
148164
148276
  height: 20,
@@ -148184,7 +148296,7 @@ const _sfc_main$6 = {
148184
148296
  };
148185
148297
  }
148186
148298
  };
148187
- const BlockMenu = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-df6b62d1"]]);
148299
+ const BlockMenu = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-d72f0e9a"]]);
148188
148300
  function BlockMenuPlugin(editor, options) {
148189
148301
  const PLUGIN_KEY = new PluginKey("blockMenu");
148190
148302
  let wrapperEl = options.wrapperEl || null;
@@ -148854,9 +148966,7 @@ const createEditor = ({ content = "", info = {}, limit = 50, isInline: isInline2
148854
148966
  ]
148855
148967
  }),
148856
148968
  EnhancedOrderedList,
148857
- index_default$5,
148858
- index_default$3,
148859
- index_default$4,
148969
+ // TableRow, TableHeader, TableCell 已在 TableKit.extensions 中配置,移除重复
148860
148970
  CodeBlockCustom.configure({
148861
148971
  isInline: isInline2
148862
148972
  }),
@@ -148938,6 +149048,20 @@ const createEditor = ({ content = "", info = {}, limit = 50, isInline: isInline2
148938
149048
  const items = Array.from(((_a3 = event.clipboardData) == null ? void 0 : _a3.items) || []);
148939
149049
  const imageItem = items.find((item) => item.type.startsWith("image/"));
148940
149050
  if (imageItem) {
149051
+ const { selection } = view.state;
149052
+ const { $from } = selection;
149053
+ let inTableCell = false;
149054
+ for (let i = $from.depth; i > 0; i--) {
149055
+ if ($from.node(i).type.name === "tableCell" || $from.node(i).type.name === "tableHeader") {
149056
+ inTableCell = true;
149057
+ break;
149058
+ }
149059
+ }
149060
+ if (inTableCell) {
149061
+ event.preventDefault();
149062
+ ElMessage.warning("表格中不支持粘贴图片");
149063
+ return true;
149064
+ }
148941
149065
  event.preventDefault();
148942
149066
  const file = imageItem.getAsFile();
148943
149067
  if (!file) {
@@ -149111,6 +149235,62 @@ const createEditor = ({ content = "", info = {}, limit = 50, isInline: isInline2
149111
149235
  return true;
149112
149236
  }
149113
149237
  return false;
149238
+ },
149239
+ // 全局粘贴转换,过滤表格中的图片、表格、代码块
149240
+ transformPasted: (slice2, view) => {
149241
+ const { selection } = view.state;
149242
+ const { $from } = selection;
149243
+ let inTableCell = false;
149244
+ for (let i = $from.depth; i > 0; i--) {
149245
+ if ($from.node(i).type.name === "tableCell" || $from.node(i).type.name === "tableHeader") {
149246
+ inTableCell = true;
149247
+ break;
149248
+ }
149249
+ }
149250
+ if (!inTableCell) {
149251
+ return slice2;
149252
+ }
149253
+ let hasFilteredContent = false;
149254
+ const filteredTypes = /* @__PURE__ */ new Set();
149255
+ const filterNode = (node) => {
149256
+ if (node.type.name === "image" || node.type.name === "table" || node.type.name === "codeBlock" || node.type.name === "codeBlockCustom") {
149257
+ hasFilteredContent = true;
149258
+ if (node.type.name === "image") {
149259
+ filteredTypes.add("图片");
149260
+ } else if (node.type.name === "table") {
149261
+ filteredTypes.add("表格");
149262
+ } else if (node.type.name === "codeBlock" || node.type.name === "codeBlockCustom") {
149263
+ filteredTypes.add("代码块");
149264
+ }
149265
+ return null;
149266
+ }
149267
+ if (node.content && node.content.size > 0) {
149268
+ const newContent2 = [];
149269
+ node.content.forEach((child) => {
149270
+ const filtered = filterNode(child);
149271
+ if (filtered) {
149272
+ newContent2.push(filtered);
149273
+ }
149274
+ });
149275
+ if (newContent2.length === 0 && node.type.name !== "paragraph") {
149276
+ return null;
149277
+ }
149278
+ return node.copy(Fragment.from(newContent2));
149279
+ }
149280
+ return node;
149281
+ };
149282
+ const newContent = [];
149283
+ slice2.content.forEach((node) => {
149284
+ const filtered = filterNode(node);
149285
+ if (filtered) {
149286
+ newContent.push(filtered);
149287
+ }
149288
+ });
149289
+ if (hasFilteredContent) {
149290
+ const types = Array.from(filteredTypes).join("、");
149291
+ ElMessage.warning(`表格中不支持粘贴${types},已自动过滤`);
149292
+ }
149293
+ return new Slice(Fragment.from(newContent), slice2.openStart, slice2.openEnd);
149114
149294
  }
149115
149295
  },
149116
149296
  editable: !isInline2,
@@ -150257,16 +150437,18 @@ const _sfc_main$4 = {
150257
150437
  },
150258
150438
  accept: ".jpg,.png,.jpeg,.gif",
150259
150439
  "before-upload": handleImageUpload,
150260
- "on-success": uploadFileSuccess
150440
+ "on-success": uploadFileSuccess,
150441
+ disabled: isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList")
150261
150442
  }, {
150262
150443
  default: withCtx(() => [
150263
150444
  createVNode(unref(Icon), {
150264
150445
  icon: "mdi:file-image-box",
150265
- width: "20"
150266
- })
150446
+ width: "20",
150447
+ class: normalizeClass(isActive2("codeBlock") || isActive2("table") || isActive2("bulletList") || isActive2("orderedList") || isActive2("taskList") ? "icon-gray" : "")
150448
+ }, null, 8, ["class"])
150267
150449
  ]),
150268
150450
  _: 1
150269
- }, 8, ["action", "headers"])
150451
+ }, 8, ["action", "headers", "disabled"])
150270
150452
  ]),
150271
150453
  _: 1
150272
150454
  })) : createCommentVNode("", true)
@@ -150536,7 +150718,7 @@ const _sfc_main$4 = {
150536
150718
  };
150537
150719
  }
150538
150720
  };
150539
- const EditorToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-146ec70a"]]);
150721
+ const EditorToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-8a153055"]]);
150540
150722
  const _hoisted_1$2 = { class: "bubble-menu" };
150541
150723
  const _sfc_main$3 = {
150542
150724
  __name: "BubbleMenu",
@@ -152211,21 +152393,32 @@ const _sfc_main = {
152211
152393
  linkRef.value.open();
152212
152394
  };
152213
152395
  ref(0);
152396
+ const activeChunkLoaders = [];
152214
152397
  onMounted(() => {
152215
152398
  if (props.content) {
152216
152399
  isLoading.value = true;
152217
- loadContentInChunks({
152400
+ const loader = loadContentInChunks({
152218
152401
  editor,
152219
152402
  content: props.content,
152220
152403
  type: "html",
152221
152404
  extensions: commonExtensions(),
152222
- chunkSize: 5,
152405
+ chunkSize: 20,
152406
+ // 🚀 性能优化:使用较小批次避免主线程阻塞(函数内部会自动限制为 20-30)
152223
152407
  onProgress: (p) => {
152224
152408
  if (p > 0) {
152225
152409
  isLoading.value = false;
152226
152410
  }
152411
+ },
152412
+ onComplete: () => {
152413
+ const index = activeChunkLoaders.indexOf(loader);
152414
+ if (index > -1) {
152415
+ activeChunkLoaders.splice(index, 1);
152416
+ }
152227
152417
  }
152228
152418
  });
152419
+ if (loader) {
152420
+ activeChunkLoaders.push(loader);
152421
+ }
152229
152422
  }
152230
152423
  window.addEventListener("tiptap-image-click", onImageClick);
152231
152424
  document.addEventListener("click", handleDocumentClick);
@@ -152246,18 +152439,28 @@ const _sfc_main = {
152246
152439
  try {
152247
152440
  isLoading.value = true;
152248
152441
  editor.commands.clearContent();
152249
- loadContentInChunks({
152442
+ const loader = loadContentInChunks({
152250
152443
  editor,
152251
152444
  content: sourceCode.value,
152252
152445
  type: "html",
152253
152446
  extensions: commonExtensions(),
152254
- chunkSize: 5,
152447
+ chunkSize: 20,
152448
+ // 🚀 性能优化:使用较小批次避免主线程阻塞
152255
152449
  onProgress: (p) => {
152256
152450
  if (p > 0) {
152257
152451
  isLoading.value = false;
152258
152452
  }
152453
+ },
152454
+ onComplete: () => {
152455
+ const index = activeChunkLoaders.indexOf(loader);
152456
+ if (index > -1) {
152457
+ activeChunkLoaders.splice(index, 1);
152458
+ }
152259
152459
  }
152260
152460
  });
152461
+ if (loader) {
152462
+ activeChunkLoaders.push(loader);
152463
+ }
152261
152464
  sourceDialogVisible.value = false;
152262
152465
  ElMessage.success("源代码已应用");
152263
152466
  } catch (error2) {
@@ -152269,6 +152472,12 @@ const _sfc_main = {
152269
152472
  isLoading.value = data;
152270
152473
  };
152271
152474
  onBeforeUnmount(() => {
152475
+ activeChunkLoaders.forEach((loader) => {
152476
+ if (loader && loader.cancel) {
152477
+ loader.cancel();
152478
+ }
152479
+ });
152480
+ activeChunkLoaders.length = 0;
152272
152481
  if (editor) {
152273
152482
  editor.destroy();
152274
152483
  }
@@ -152425,7 +152634,7 @@ const _sfc_main = {
152425
152634
  };
152426
152635
  }
152427
152636
  };
152428
- const TiptapVue = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0c8620c3"]]);
152637
+ const TiptapVue = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b4519289"]]);
152429
152638
  const components = [
152430
152639
  {
152431
152640
  name: "TiptapVue",