@xuanmo/aieditor 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ :root,:root .aie-theme-light{--aie-text-color: #333;--aie-text-placeholder-color: #adb5bd;--aie-bg-color: #fff;--aie-container-border: #eee;--aie-pre-bg-color: #f6f6f7;--aie-blockquote-bg-color: #f6f6f7;--aie-blockquote-border-color: #e3e3e3;--aie-blockquote-text-color: #888888;--aie-dropdown-container-bg-color: #ffffff;--aie-dropdown-container-border-color: #e9e9e9;--aie-dropdown-container-item-hover-color: #efefef;--aie-dropdown-color-panel-title-color: #666;--aie-dropdown-color-panel-button-border-color: #eaeaea;--aie-aie-popover-border-color: #eee;--aie-aie-popover-text-color: #333;--aie-suggestion-selected-border-color: #eee;--aie-suggestion-selected-bg-color: #eee;--aie-menus-text-color: var(--aie-text-color);--aie-menus-bg-color: #ffffff;--aie-menus-svg-color: #353535;--aie-menus-item-hover-color: #eee;--aie-menus-divider-color: #eaeaea;--aie-menus-ai-bg-color: var(--aie-menus-svg-color);--aie-menus-ai-color: #ffffff;--aie-menus-tip-bg-color: #333;--aie-menus-tip-text-color: #eee;--aie-menus-table-cell-border-color: #ccc;--aie-menus-table-cell-border-active-color: #000;--aie-content-container-info-color: #eff1f3;--aie-content-container-warning-color: #fcf5e4;--aie-content-container-danger-color: #ffe7ea;--aie-content-table-th-bg-color: #efefef;--aie-content-table-selected-bg-color: rgba(200, 200, 255, .3);--aie-content-table-border-color: #ced4da;--aie-content-table-handler-color: #adf;--aie-content-scrollbar-track-piece: #f1f1f1;--aie-content-scrollbar-thumb: #c1c1c1;--aie-content-scrollbar-thumb-hover: #a9a9a9;--aie-content-scrollbar-thumb-active: #787878;--aie-content-link-a-color: blue;--aie-content-link-a-hover-color: red;--aie-content-link-a-visited-color: purple;--aie-content-link-a-active-color: green;--aie-ai-panel-bg-color: #fff;--aie-ai-panel-border: #e9e9e9;--aie-textarea-border: #eaeaea;--aie-textarea-bg-color: #e9e9e9;--aie-actions-button-bg-color: #eaeaea;--aie-actions-button-color: #666;--aie-input-bg-color: #fff;--aie-input-border-color: #e9e9e9;--aie-input-button-bg-color: #e9e9e9}:root .aie-theme-dark{--aie-text-color: #ccc;--aie-text-placeholder-color: #5d5d5d;--aie-bg-color: #1e2022;--aie-container-border: #333;--aie-pre-bg-color: #282c34;--aie-blockquote-bg-color: #282c34;--aie-blockquote-border-color: #505050;--aie-blockquote-text-color: #888888;--aie-dropdown-container-bg-color: #505050;--aie-dropdown-container-border-color: #606060;--aie-dropdown-container-item-hover-color: #696969;--aie-dropdown-color-panel-title-color: #ccc;--aie-dropdown-color-panel-button-border-color: #606060;--aie-aie-popover-border-color: #606060;--aie-aie-popover-text-color: #ccc;--aie-suggestion-selected-border-color: #444;--aie-suggestion-selected-bg-color: #444;--aie-menus-text-color: var(--aie-text-color);--aie-menus-bg-color: #1a1b1e;--aie-menus-svg-color: #cccccc;--aie-menus-item-hover-color: #333;--aie-menus-divider-color: #2c2c2c;--aie-menus-ai-bg-color: var(--aie-menus-svg-color);--aie-menus-ai-color: #000;--aie-menus-tip-bg-color: #eee;--aie-menus-tip-text-color: #333;--aie-menus-table-cell-border-color: #888;--aie-menus-table-cell-border-active-color: #ccc;--aie-content-container-info-color: #2a2c30;--aie-content-container-warning-color: #40361d;--aie-content-container-danger-color: #46222a;--aie-content-table-th-bg-color: #2c2c2c;--aie-content-table-selected-bg-color: rgba(200, 200, 255, .2);--aie-content-table-border-color: #353535;--aie-content-table-handler-color: #566a77;--aie-content-scrollbar-track-piece: #404040;--aie-content-scrollbar-thumb: #dddddd50;--aie-content-scrollbar-thumb-hover: #dddddd70;--aie-content-scrollbar-thumb-active: #dddddda0;--aie-content-link-a-color: #4ca3f5;--aie-content-link-a-hover-color: #ff4f4f;--aie-content-link-a-visited-color: #ff00ff;--aie-content-link-a-active-color: #00ff00;--aie-ai-panel-bg-color: #505050;--aie-ai-panel-border: #444;--aie-textarea-border: #666;--aie-textarea-bg-color: #505050;--aie-actions-button-bg-color: #999;--aie-actions-button-color: #444;--aie-input-bg-color: #505050;--aie-input-border-color: #666;--aie-input-button-bg-color: #999}.aie-container{display:flex;flex-direction:column;height:100%;border:1px solid;border-color:var(--aie-container-border);background:var(--aie-bg-color)}.aie-container *,.aie-container :before,.aie-container :after{box-sizing:content-box}.aie-container .aie-translate-panel{margin-top:-5px}.aie-container .aie-translate-panel-body{width:fit-content;border:solid 1px;border-color:var(--aie-ai-panel-border);background:var(--aie-ai-panel-bg-color);border-radius:5px;box-shadow:0 0 7px #00000026;display:flex;flex-direction:column;overflow:hidden}.aie-container .aie-translate-panel-body p{width:100%;margin:0;cursor:pointer;display:flex;align-items:center;box-sizing:border-box;height:40px;line-height:40px;font-weight:600;font-size:14px;padding:0 20px;color:var(--aie-text-color);text-decoration:none;font-family:Arial,Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.aie-container .aie-translate-panel-body p:hover{background:var(--aie-menus-item-hover-color)}.aie-container .aie-translate-result-panel{width:fit-content;height:fit-content;border:solid 1px;border-color:var(--aie-ai-panel-border);background:var(--aie-ai-panel-bg-color);border-radius:5px;box-shadow:0 0 7px #00000040;overflow:hidden}.aie-container .aie-translate-result-panel textarea{width:500px;padding:5px;box-sizing:border-box;font-size:14px;font-family:Arial,Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;border:none;margin:10px 10px 0;background:var(--aie-input-bg-color);color:var(--aie-aie-popover-text-color);resize:none;max-height:300px}.aie-container .aie-translate-result-panel textarea:focus-visible{outline:0}.aie-container .aie-translate-result-panel div{display:flex;justify-content:end;border-top:solid 1px var();padding:10px;background-color:#fafafa}.aie-container .aie-translate-result-panel div button{margin-left:10px;background:var(--aie-input-bg-color);color:var(--aie-text-color);border:solid 1px #eaeaea;padding:5px 15px;font-size:14px;border-radius:3px;display:flex;align-items:center}.aie-container .aie-translate-result-panel div button svg{width:16px;height:16px;margin-right:3px}.aie-container .aie-translate-result-panel div button:hover{background-color:var(--aie-menus-item-hover-color);cursor:pointer}.aie-container .aie-ai-panel-body{width:500px;border:solid 1px;border-color:var(--aie-ai-panel-border);background:var(--aie-ai-panel-bg-color);border-radius:5px;box-shadow:0 0 7px #00000026;display:flex;flex-direction:column;overflow:hidden}.aie-container .aie-ai-panel-body-tips{width:100%;padding:10px;color:#999;background-color:#fafafa;box-sizing:border-box;display:flex;align-items:center}.aie-container .aie-ai-panel-body-tips svg{width:16px;height:16px;margin-right:5px}.aie-container .aie-ai-panel-body-content{width:100%;position:relative}.aie-container .aie-ai-panel-body-content .loader{position:absolute;top:10px;right:10px;display:none}.aie-container .aie-ai-panel-body-content .loader svg{width:16px;color:#999;animation:rotate 2s linear infinite}.aie-container .aie-ai-panel-body-content textarea{width:100%;height:100%;max-height:300px;padding:15px;box-sizing:border-box;font-size:14px;line-height:1.6em;font-family:Arial,Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;border:none;resize:none}.aie-container .aie-ai-panel-body-content textarea:focus-visible{outline:none}.aie-container .aie-ai-panel-body-input{display:flex;justify-content:space-between;box-sizing:border-box;border-bottom:1px solid;border-bottom-color:var(--aie-input-border-color);align-items:center;padding:10px 20px 10px 10px}.aie-container .aie-ai-panel-body-input input{width:92%;height:100%;border:none;margin:0;background:var(--aie-input-bg-color);font-size:14px;font-family:Arial,Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background-color:#edf0f5;padding:10px;box-sizing:border-box;border-radius:4px}.aie-container .aie-ai-panel-body-input input::-webkit-input-placeholder{color:#ccc;font-size:14px}.aie-container .aie-ai-panel-body-input input:focus-visible{outline:none}.aie-container .aie-ai-panel-body-input button{border:none;border-radius:50%;padding:0;background:#609eec}.aie-container .aie-ai-panel-body-input button svg{fill:#fff;width:18px;margin-left:2px;margin-top:2px}.aie-container .aie-ai-panel-body-input button:hover{background:var(--aie-menus-item-hover-color);cursor:pointer}.aie-container .aie-ai-panel-footer{width:fit-content;border:solid 1px;border-color:var(--aie-ai-panel-border);background:var(--aie-ai-panel-bg-color);border-radius:5px;box-shadow:0 0 7px #00000026;display:flex;padding:10px 0;flex-direction:column;margin-top:5px}.aie-container .aie-ai-panel-footer-tips{padding:5px 10px;color:#999;margin-bottom:5px}.aie-container .aie-ai-panel-footer hr{height:1px;width:100%;margin:5px 0;background-color:#eaeaea;border:none}.aie-container .aie-ai-panel-footer p{width:100%;margin:0}.aie-container .aie-ai-panel-footer p{cursor:pointer;display:flex;align-items:center;width:100%;box-sizing:border-box;height:40px;line-height:40px;font-weight:600;font-size:14px;padding:0 20px;color:#666;text-decoration:none;font-family:Arial,Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.aie-container .aie-ai-panel-footer p:hover{background:var(--aie-menus-item-hover-color)}.aie-container .aie-ai-panel-footer svg{width:20px;height:20px;margin-right:10px}.aie-container aie-header{color:var(--aie-menus-text-color);background:var(--aie-menus-bg-color);z-index:1}.aie-container aie-header>div{border-bottom:1px solid var(--aie-container-border)}.aie-container aie-header .aie-menu-divider{background:var(--aie-menus-divider-color);width:1px;height:16px;margin:auto}.aie-container aie-header .aie-menu-item{height:fit-content;padding:5px 1px;display:flex;align-items:center}.aie-container aie-header .aie-menu-item #text{font-size:14px}.aie-container aie-header .aie-menu-item svg{fill:var(--aie-menus-svg-color);width:16px;height:16px}.aie-container aie-header .aie-menu-item .menu-ai{display:flex;align-items:center;font-size:14px;text-align:center;background:var(--aie-menus-ai-bg-color);color:var(--aie-menus-ai-color);border-radius:3px;width:30px;padding:0 1px 0 5px;white-space:nowrap}.aie-container aie-header .aie-menu-item .menu-ai svg{fill:var(--aie-menus-ai-color)}.aie-container aie-header .aie-menu-item .colors-menu{display:flex;padding-right:0}.aie-container aie-header .aie-menu-item .colors-menu .currentColor{width:16px;height:16px}.aie-container aie-header .aie-menu-item .colors-menu .currentColor .colors-menu-icon{height:calc(100% - 3px);width:100%;display:flex}.aie-container aie-header .aie-menu-item .colors-menu .currentColor .colors-menu-icon svg{width:100%;height:100%}.aie-container aie-header .aie-menu-item .colors-menu .currentColor .colors-menu-status{width:100%;height:3px;background:#333}.aie-container aie-header .aie-menu-item .colors-menu #dropdown{display:flex}.aie-container aie-header .aie-menu-item .active{background:var(--aie-menus-item-hover-color)}.aie-container aie-header .aie-menu-item[data-size=medium] #text{font-size:16px}.aie-container aie-header .aie-menu-item[data-size=medium] svg{width:20px;height:20px}.aie-container aie-header .aie-menu-item[data-size=medium] .menu-ai svg{width:16px;height:16px}.aie-container aie-header .aie-menu-item[data-size=medium] .colors-menu .currentColor{width:18px;height:18px}.aie-container aie-header .aie-menu-item[data-size=large] #text{font-size:17px}.aie-container aie-header .aie-menu-item[data-size=large] #text svg{width:20px;height:20px}.aie-container aie-header .aie-menu-item[data-size=large] svg{width:24px;height:24px}.aie-container aie-header .aie-menu-item[data-size=large] .menu-ai svg{width:18px;height:18px}.aie-container aie-header .aie-menu-item[data-size=large] .colors-menu .currentColor{width:20px;height:20px}.aie-container aie-header .aie-menu-item>div{height:18px;padding:5px;display:flex;justify-content:center;align-items:center}.aie-container aie-header .aie-menu-item>div:hover:not([no-hover]){background:var(--aie-menus-item-hover-color);cursor:pointer}.aie-container .aie-content:focus-visible{outline:none}.aie-container .aie-content ::selection{background:#88c6ff66}.aie-container .aie-content [contenteditable=true]::selection{background:#88c6ff66}.aie-container .aie-content [contenteditable=true]:focus-visible{outline:none}.aie-container .aie-content .selection-marker{background:#88c6ff66;padding:0}.aie-container .suggestion{background:var(--aie-menus-bg-color);border-radius:5px}.aie-container .suggestion .items{box-shadow:0 0 7px #0000001a;overflow:hidden;border-radius:5px;border:solid 1px;border-color:var(--aie-ai-panel-border);background:var(--aie-ai-panel-bg-color)}.aie-container .suggestion .items .item{display:block;height:20px;width:150px;margin:0;color:var(--aie-text-color);background:var(--aie-menus-bg-color);border:none;text-align:left;padding:10px 20px;cursor:pointer}.aie-container .suggestion .items .item-selected{background:var(--aie-suggestion-selected-bg-color)}.aie-container .aie-bubble-menu{height:30px;background:var(--aie-dropdown-container-bg-color);border:solid 1px var(--aie-dropdown-container-border-color);border-radius:3px;box-shadow:0 2px 5px 2px #0000001a;display:flex;align-items:center;padding:5px;color:var(--aie-text-color)}.aie-container .aie-bubble-menu .active{background:var(--aie-menus-item-hover-color)}.aie-container .aie-bubble-menu-item{height:20px;margin:3px;padding:5px;cursor:pointer}.aie-container .aie-bubble-menu-item svg{width:20px;height:20px;fill:var(--aie-text-color)}.aie-container .aie-bubble-menu-item:hover{background:var(--aie-menus-item-hover-color)}.aie-container .aie-dropdown-container{background:var(--aie-dropdown-container-bg-color);border:solid 1px var(--aie-dropdown-container-border-color);overflow:auto;box-shadow:0 2px 5px 2px #0000001a;padding:5px 0;border-radius:3px;color:var(--aie-menus-text-color)}.aie-container .aie-dropdown-container svg{fill:var(--aie-menus-text-color);width:16px;height:16px}.aie-container .aie-dropdown-container .aie-dropdown-item{display:flex;padding:3px 0}.aie-container .aie-dropdown-container .aie-dropdown-item .text{padding:2px 15px 0 0;overflow:hidden;font-size:14px;display:flex}.aie-container .aie-dropdown-container .aie-dropdown-item .text svg{width:18px;height:18px}.aie-container .aie-dropdown-container .aie-dropdown-item .text h1,.aie-container .aie-dropdown-container .aie-dropdown-item .text h2,.aie-container .aie-dropdown-container .aie-dropdown-item .text h3,.aie-container .aie-dropdown-container .aie-dropdown-item .text h4,.aie-container .aie-dropdown-container .aie-dropdown-item .text h5,.aie-container .aie-dropdown-container .aie-dropdown-item .text h6{padding:0;margin:0;border:none}.aie-container .aie-dropdown-container .aie-dropdown-item .text h1{font-size:1.7em}.aie-container .aie-dropdown-container .aie-dropdown-item .text h2{font-size:1.6em}.aie-container .aie-dropdown-container .aie-dropdown-item .text h3{font-size:1.5em}.aie-container .aie-dropdown-container .aie-dropdown-item .text h4{font-size:1.4em}.aie-container .aie-dropdown-container .aie-dropdown-item .text h5{font-size:1.3em}.aie-container .aie-dropdown-container .aie-dropdown-item .text h6{font-size:1.2em}.aie-container .aie-dropdown-container .aie-dropdown-item .red-dot-container{display:flex;width:30px;overflow:hidden;padding-bottom:5px}.aie-container .aie-dropdown-container .aie-dropdown-item .red-dot-container .red-dot{width:10px;height:6px;border-left:2px solid var(--aie-text-color);border-bottom:2px solid var(--aie-text-color);rotate:-45deg;margin:auto}.aie-container .aie-dropdown-container .aie-dropdown-item:hover{background:var(--aie-dropdown-container-item-hover-color);cursor:pointer}.aie-container .aie-dropdown-container .emoji-cells{display:flex;flex-wrap:wrap;align-items:center;margin:0 3px}.aie-container .aie-dropdown-container .emoji-cells .emoji-cell{width:20px;height:20px;margin:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px 1px}.aie-container .aie-dropdown-container .emoji-cells .emoji-cell span{margin-top:2px}.aie-container .aie-dropdown-container .emoji-cells .emoji-cell:hover{background:#efefef}.aie-container .aie-dropdown-container #table-cells .table-cell{border:solid 1px var(--aie-menus-table-cell-border-color)}.aie-container .aie-dropdown-container #table-cells .active{background:var(--aie-dropdown-container-item-hover-color)}.aie-container .aie-dropdown-container .color-panel{margin:0 5px}.aie-container .aie-dropdown-container .color-panel-title{padding-top:5px;font-size:14px;color:var(--aie-dropdown-color-panel-title-color)}.aie-container .aie-dropdown-container .color-panel-default-button{text-align:center;border:1px solid var(--aie-dropdown-color-panel-button-border-color);color:var(--aie-dropdown-color-panel-title-color);line-height:24px;font-size:14px;border-radius:3px}.aie-container .aie-resize-wrapper{position:relative;display:inline-flex}.aie-container .aie-resize-wrapper img{position:relative}.aie-container .aie-resize-wrapper:hover .aie-resize{display:inline-block}.aie-container .aie-resize-wrapper .aie-resize{display:none;position:absolute;top:-2px;left:-2px;border:2px solid #609eec;width:100%;height:100%}.aie-container .aie-resize-wrapper .aie-resize div{position:absolute;display:flex;width:20px;height:20px;z-index:1}.aie-container .aie-resize-wrapper .aie-resize div:after{content:"";display:block;margin:auto;width:8px;height:8px;background:#609eec;border-radius:50%}.aie-container .aie-resize-wrapper .aie-resize .aie-resize-btn-top-left{left:-10px;top:-10px;cursor:nwse-resize}.aie-container .aie-resize-wrapper .aie-resize .aie-resize-btn-top-right{right:-10px;top:-10px;cursor:nesw-resize}.aie-container .aie-resize-wrapper .aie-resize .aie-resize-btn-bottom-left{left:-10px;bottom:-10px;cursor:nesw-resize}.aie-container .aie-resize-wrapper .aie-resize .aie-resize-btn-bottom-right{right:-10px;bottom:-10px;cursor:nwse-resize}.aie-container .aie-loader-placeholder{width:200px;height:200px;background:#efefef;display:flex}.aie-container .aie-loader-placeholder svg{margin:auto;width:80px;fill:#ccc;animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.aie-container .aie-codeblock-wrapper{background:var(--aie-pre-bg-color);word-wrap:normal;white-space:normal;padding-top:5px;border-radius:5px}.aie-container .aie-codeblock-wrapper:hover .aie-codeblock-tools{display:flex}.aie-container .aie-codeblock-wrapper .aie-codeblock-tools{display:flex;justify-content:flex-end}.aie-container .aie-codeblock-wrapper .aie-codeblock-tools div{color:var(--aie-text-color);display:flex;cursor:pointer;align-items:center;font-size:14px;margin:0 3px}.aie-container .aie-codeblock-wrapper .aie-codeblock-tools-lang svg{fill:var(--aie-text-color);margin:2px;height:16px;width:16px}.aie-container .aie-codeblock-wrapper .aie-codeblock-tools-autowrap{margin:0 10px}.aie-container .aie-codeblock-wrapper .aie-codeblock-tools-autowrap svg{fill:var(--aie-text-color);margin:2px;height:14px;width:14px}.aie-container .aie-codeblock-langs{background:var(--aie-dropdown-container-bg-color);width:150px;max-height:300px;overflow:auto;border:solid 1px var(--aie-dropdown-container-border-color);color:var(--aie-menus-text-color)}.aie-container .aie-codeblock-langs-item{padding:5px;font-size:14px;height:20px;line-height:20px;cursor:pointer}.aie-container .aie-codeblock-langs-item:hover{background:var(--aie-dropdown-container-item-hover-color)}.aie-container aie-footer>div{border-top:solid 1px var(--aie-container-border);height:20px;line-height:20px;font-size:14px;text-align:right;color:#666}.aie-container aie-footer>div span{margin-left:auto}.aie-container aie-footer>div svg{fill:#666;rotate:-45deg;transform:translateY(5px);cursor:nwse-resize}.aie-container .tippy-box{max-width:1000px!important}.aie-container .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}.aie-container [data-tippy-root]{max-width:calc(100vw - 10px)}.aie-container .tippy-box{position:relative;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.aie-container .tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.aie-container .tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.aie-container .tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.aie-container .tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.aie-container .tippy-box[data-placement^=left]>.tippy-arrow{right:0}.aie-container .tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.aie-container .tippy-box[data-placement^=right]>.tippy-arrow{left:0}.aie-container .tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.aie-container .tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.aie-container .tippy-arrow{width:16px;height:16px}.aie-container .tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.aie-container .tippy-content{position:relative;padding:5px 9px;z-index:1}.aie-container .tippy-box[data-theme~=aietip]{background-color:var(--aie-menus-tip-bg-color);color:var(--aie-menus-tip-text-color)}.aie-container .tippy-box[data-theme~=aietip][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--aie-menus-tip-bg-color)}.aie-container .tippy-box[data-theme~=aietip][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--aie-menus-tip-bg-color)}.aie-container .tippy-box[data-theme~=aietip][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--aie-menus-tip-bg-color)}.aie-container .tippy-box[data-theme~=aietip][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--aie-menus-tip-bg-color)}.aie-theme-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.aie-theme-light code.hljs{padding:3px 5px}.aie-theme-light .hljs{color:#383a42;background:#fafafa}.aie-theme-light .hljs-comment,.aie-theme-light .hljs-quote{color:#a0a1a7;font-style:italic}.aie-theme-light .hljs-doctag,.aie-theme-light .hljs-keyword,.aie-theme-light .hljs-formula{color:#a626a4}.aie-theme-light .hljs-section,.aie-theme-light .hljs-name,.aie-theme-light .hljs-selector-tag,.aie-theme-light .hljs-deletion,.aie-theme-light .hljs-subst{color:#e45649}.aie-theme-light .hljs-literal{color:#0184bb}.aie-theme-light .hljs-string,.aie-theme-light .hljs-regexp,.aie-theme-light .hljs-addition,.aie-theme-light .hljs-attribute,.aie-theme-light .hljs-meta .hljs-string{color:#50a14f}.aie-theme-light .hljs-attr,.aie-theme-light .hljs-variable,.aie-theme-light .hljs-template-variable,.aie-theme-light .hljs-type,.aie-theme-light .hljs-selector-class,.aie-theme-light .hljs-selector-attr,.aie-theme-light .hljs-selector-pseudo,.aie-theme-light .hljs-number{color:#986801}.aie-theme-light .hljs-symbol,.aie-theme-light .hljs-bullet,.aie-theme-light .hljs-link,.aie-theme-light .hljs-meta,.aie-theme-light .hljs-selector-id,.aie-theme-light .hljs-title{color:#4078f2}.aie-theme-light .hljs-built_in,.aie-theme-light .hljs-title.class_,.aie-theme-light .hljs-class .hljs-title{color:#c18401}.aie-theme-light .hljs-emphasis{font-style:italic}.aie-theme-light .hljs-strong{font-weight:700}.aie-theme-light .hljs-link{text-decoration:underline}.aie-theme-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.aie-theme-dark code.hljs{padding:3px 5px}.aie-theme-dark .hljs{color:#abb2bf;background:#282c34}.aie-theme-dark .hljs-comment,.aie-theme-dark .hljs-quote{color:#5c6370;font-style:italic}.aie-theme-dark .hljs-doctag,.aie-theme-dark .hljs-keyword,.aie-theme-dark .hljs-formula{color:#c678dd}.aie-theme-dark .hljs-section,.aie-theme-dark .hljs-name,.aie-theme-dark .hljs-selector-tag,.aie-theme-dark .hljs-deletion,.aie-theme-dark .hljs-subst{color:#e06c75}.aie-theme-dark .hljs-literal{color:#56b6c2}.aie-theme-dark .hljs-string,.aie-theme-dark .hljs-regexp,.aie-theme-dark .hljs-addition,.aie-theme-dark .hljs-attribute,.aie-theme-dark .hljs-meta .hljs-string{color:#98c379}.aie-theme-dark .hljs-attr,.aie-theme-dark .hljs-variable,.aie-theme-dark .hljs-template-variable,.aie-theme-dark .hljs-type,.aie-theme-dark .hljs-selector-class,.aie-theme-dark .hljs-selector-attr,.aie-theme-dark .hljs-selector-pseudo,.aie-theme-dark .hljs-number{color:#d19a66}.aie-theme-dark .hljs-symbol,.aie-theme-dark .hljs-bullet,.aie-theme-dark .hljs-link,.aie-theme-dark .hljs-meta,.aie-theme-dark .hljs-selector-id,.aie-theme-dark .hljs-title{color:#61aeee}.aie-theme-dark .hljs-built_in,.aie-theme-dark .hljs-title.class_,.aie-theme-dark .hljs-class .hljs-title{color:#e6c07b}.aie-theme-dark .hljs-emphasis{font-style:italic}.aie-theme-dark .hljs-strong{font-weight:700}.aie-theme-dark .hljs-link{text-decoration:underline}.aie-popover{min-width:100px;min-height:100px;background:#fff;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 5px 2px #0000001a;background:var(--aie-dropdown-container-bg-color);border:1px solid var(--aie-aie-popover-border-color);border-radius:3px}.aie-popover-header{height:20px;display:flex;padding:5px 5px 0}.aie-popover-header-close{height:20px;width:20px;margin-left:auto;cursor:pointer}.aie-popover-header svg{fill:var(--aie-aie-popover-text-color)}.aie-popover-content{flex-grow:1;padding:0 10px}.aie-popover-content>div{color:var(--aie-aie-popover-text-color);font-size:14px}.aie-popover-content input,.aie-popover-content select,.aie-popover-content textarea{border:solid 1px #ccc;height:25px;padding-inline:5px;border-radius:3px}.aie-popover-content input:focus-visible,.aie-popover-content select:focus-visible,.aie-popover-content textarea:focus-visible{outline:0;border:solid 1px #999999}.aie-popover-content select{height:30px}.aie-popover-footer{display:flex;padding:10px}.aie-popover-footer-confirm{margin-left:auto;background:#fff;border:solid 1px #ccc;padding:5px 10px;font-size:14px;border-radius:3px}.aie-popover-footer-confirm:hover{border-color:#999;color:#333;cursor:pointer}.ai-command-container{width:200px;border:solid 1px;border-color:var(--aie-ai-panel-border);background:var(--aie-ai-panel-bg-color);border-radius:5px;box-shadow:0 0 7px #0000001a;display:flex;padding:10px 0;flex-direction:column}.ai-command-container .active{background:#eee}.ai-command-container-title,.ai-command-container hr{width:100%;height:1px;background-color:#eaeaea;border:none;margin:5px 0}.ai-command-container-header{display:flex;flex-wrap:wrap;align-items:center;padding:0 10px}.ai-command-container-header-item{width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer}.ai-command-container-header-item:hover{background-color:#eee}.ai-command-container-header svg{fill:#666;width:18px;height:18px}.ai-command-container-item{padding:10px 20px;font-family:Arial,Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;color:#333;display:flex;align-items:center;cursor:pointer}.ai-command-container-item svg{width:16px;height:16px;margin-right:10px}.ai-command-container-item:hover{background-color:#eee}.aie-content{overflow:auto;padding:10px;margin:0;color:var(--aie-text-color)}.aie-content>:first-child{margin-top:0}.aie-content::-webkit-scrollbar{width:4px}.aie-content::-webkit-scrollbar-track-piece{background-color:var(--aie-content-scrollbar-track-piece)}.aie-content::-webkit-scrollbar-thumb{background-color:var(--aie-content-scrollbar-thumb)}.aie-content::-webkit-scrollbar-thumb:hover{background-color:var(--aie-content-scrollbar-thumb-hover)}.aie-content::-webkit-scrollbar-thumb:active{background-color:var(--aie-content-scrollbar-thumb-active)}.aie-content a{color:var(--aie-content-link-a-color)}.aie-content a :visited{color:var(--aie-content-link-a-visited-color)}.aie-content a :active{color:var(--aie-content-link-a-active-color)}.aie-content p{margin:16px 0;line-height:26px;min-height:26px}.aie-content ul,.aie-content ol{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;padding-inline-start:20px}.aie-content li p{padding:0;margin:5px 0}.aie-content ul[data-type=taskList]{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;padding-inline-start:0px}.aie-content ul[data-type=taskList] li{display:flex;align-items:baseline}.aie-content ul[data-type=taskList] li p{padding-left:2px}.aie-content blockquote{margin:16px 0;padding:5px 10px;border-left:2px solid var(--aie-blockquote-border-color);background:var(--aie-blockquote-bg-color)}.aie-content blockquote p{margin:5px 0;color:var(--aie-blockquote-text-color)}.aie-content img{border:1px solid #efefef}.aie-content code{border-radius:3px;padding:3px 6px;background:var(--aie-pre-bg-color)}.aie-content pre{margin:0;padding:0 10px 10px;border-radius:5px;background:var(--aie-pre-bg-color);overflow:auto}.aie-content pre code{padding:0;background:var(--aie-pre-bg-color)}.aie-content h1{padding-top:24px;letter-spacing:-.02em;line-height:40px;font-size:32px}.aie-content h2{padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.aie-content h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.aie-content strong{font-weight:600}.aie-content table{border-collapse:collapse;margin:0;overflow:hidden;table-layout:fixed;width:100%}.aie-content table td,.aie-content table th{border:2px solid var(--aie-content-table-border-color);box-sizing:border-box;min-width:1em;padding:3px 5px;position:relative;vertical-align:top}.aie-content table td>*,.aie-content table th>*{margin-bottom:0}.aie-content table th{background-color:var(--aie-content-table-th-bg-color);font-weight:700;text-align:left}.aie-content table .selectedCell:after{background:var(--aie-content-table-selected-bg-color);content:"";left:0;right:0;top:0;bottom:0;pointer-events:none;position:absolute;z-index:2}.aie-content table .column-resize-handle{background-color:var(--aie-content-table-handler-color);bottom:-2px;position:absolute;right:-2px;pointer-events:none;top:0;width:3px}.aie-content table p{margin:0}.aie-content .align-left{text-align:left}.aie-content .align-right{text-align:right}.aie-content .align-center{text-align:center}.aie-content span[data-type=mention]{border:1px solid #cccccc;border-radius:5px;padding:0 3px}.aie-content p.is-editor-empty:first-child:before{color:var(--aie-text-placeholder-color);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.aie-content div.container-wrapper{margin:1rem 0;padding:0 1rem;border:1px solid var(--aie-container-border);border-radius:3px}.aie-content div.info{background:var(--aie-content-container-info-color)}.aie-content div.warning{background:var(--aie-content-container-warning-color)}.aie-content div.danger{background:var(--aie-content-container-danger-color)}.tableWrapper{padding:1rem 0}.resize-cursor{cursor:ew-resize;cursor:col-resize}
package/package.json ADDED
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "@xuanmo/aieditor",
3
+ "author": "D-xuanmo",
4
+ "version": "0.0.1",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite --host",
8
+ "build": "tsc && vite build",
9
+ "preview": "vite preview",
10
+ "prettier": "prettier --write src"
11
+ },
12
+ "main": "./dist/index.cjs",
13
+ "module": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "require": "./dist/index.cjs",
18
+ "import": "./dist/index.js",
19
+ "types": "./dist/index.d.ts"
20
+ },
21
+ "./dist/style.css": {
22
+ "import": "./dist/style.css",
23
+ "require": "./dist/style.css"
24
+ }
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "LICENSE",
29
+ "README.md"
30
+ ],
31
+ "dependencies": {
32
+ "@tiptap/core": "^2.10.1",
33
+ "@tiptap/extension-bubble-menu": "^2.10.1",
34
+ "@tiptap/extension-character-count": "^2.10.1",
35
+ "@tiptap/extension-code-block-lowlight": "^2.10.1",
36
+ "@tiptap/extension-color": "^2.10.1",
37
+ "@tiptap/extension-font-family": "^2.10.1",
38
+ "@tiptap/extension-gapcursor": "^2.10.1",
39
+ "@tiptap/extension-heading": "^2.10.1",
40
+ "@tiptap/extension-highlight": "^2.10.1",
41
+ "@tiptap/extension-image": "^2.10.1",
42
+ "@tiptap/extension-link": "^2.10.1",
43
+ "@tiptap/extension-mention": "^2.10.1",
44
+ "@tiptap/extension-placeholder": "^2.10.1",
45
+ "@tiptap/extension-subscript": "^2.10.1",
46
+ "@tiptap/extension-superscript": "^2.10.1",
47
+ "@tiptap/extension-table": "^2.10.1",
48
+ "@tiptap/extension-table-cell": "^2.10.1",
49
+ "@tiptap/extension-table-header": "^2.10.1",
50
+ "@tiptap/extension-table-row": "^2.10.1",
51
+ "@tiptap/extension-task-item": "^2.10.1",
52
+ "@tiptap/extension-task-list": "^2.10.1",
53
+ "@tiptap/extension-text-align": "^2.10.1",
54
+ "@tiptap/extension-text-style": "^2.10.1",
55
+ "@tiptap/extension-underline": "^2.10.1",
56
+ "@tiptap/pm": "^2.10.1",
57
+ "@tiptap/starter-kit": "^2.10.1",
58
+ "@tiptap/suggestion": "^2.10.1",
59
+ "aieditor": "^1.2.7",
60
+ "crypto-js": "^4.2.0",
61
+ "fetch-event-stream": "^0.1.5",
62
+ "i18next": "^23.16.2",
63
+ "lowlight": "^3.1.0",
64
+ "markdown-it": "^14.1.0",
65
+ "markdown-it-container": "^4.0.0",
66
+ "react": "^18.3.1",
67
+ "react-dom": "^18.3.1",
68
+ "tippy.js": "^6.3.7",
69
+ "turndown": "^7.2.0",
70
+ "vue": "^3.5.13"
71
+ },
72
+ "devDependencies": {
73
+ "@types/node": "^20.9.0",
74
+ "@xuanmo/prettier-config": "^0.0.2",
75
+ "eslint-config-xuanmo": "^0.0.2",
76
+ "less": "^4.2.0",
77
+ "prettier": "^3.3.3",
78
+ "typescript": "^5.4.5",
79
+ "vite": "^5.4.6",
80
+ "vite-plugin-dts": "^3.6.3"
81
+ },
82
+ "repository": {
83
+ "type": "git",
84
+ "url": "https://github.com/D-xuanmo"
85
+ },
86
+ "homepage": "https://github.com/D-xuanmo#readme",
87
+ "license": "LGPL",
88
+ "prettier": "@xuanmo/prettier-config",
89
+ "keywords": [
90
+ "editor",
91
+ "ai",
92
+ "ai editor"
93
+ ]
94
+ }
package/readme.ja.md ADDED
@@ -0,0 +1,68 @@
1
+ <h4 align="right"> <a href="./readme.md">English</a> | <a href="./readme.zh.md">简体中文</a> | <strong>日本語</strong></h4>
2
+
3
+ ![](./docs/assets/image/readme-banner.png)
4
+
5
+ <h1 align="center"><a href="https://aieditor.dev" target="_blank">AIEditor.dev</a></h1>
6
+ <h2 align="center">AI駆動のリッチテキストエディタ</h2>
7
+ <h4 align="center">すぐに使える、完全なフレームワークサポート、Markdownフレンドリー</h4>
8
+
9
+ ![](./docs/assets/image/index-banner.png)
10
+
11
+ ## AIEditorをフォローして使用を開始する
12
+
13
+ 新しいバージョンをリリースした際に通知を受け取るために、スターを付けてください。
14
+
15
+ ![](./docs/assets/image/star.gif)
16
+
17
+ ## AIEditorとは
18
+
19
+ AiEditorは、AIのための次世代リッチテキストエディタです。Webコンポーネントに基づいており、Vue、React、Angularなどのほぼすべてのフロントエンドフレームワークをサポートしています。PC Webとモバイルに対応しており、ライトテーマとダークテーマの2つのテーマを提供しています。さらに、柔軟な構成を提供しており、開発者は簡単に任意のテキスト編集アプリケーションを開発することができます。
20
+
21
+ AiEditorの詳細については、公式ウェブサイトをご覧ください: https://aieditor.dev
22
+
23
+ ## AIEditorの特徴
24
+
25
+ ### 1. AI駆動のエディタ
26
+
27
+ AIEditorの目標は、完全にAIによって駆動されるリッチテキストエディタを作成し、プライベートな大規模モデルを含む任意の大規模モデルと連携できるようにすることです。ユーザーが自分のプライベートな大規模モデルのApiKeyを使用できるようにします。
28
+ それだけでなく、AIEditorのすべてのAI機能は、ユーザーが独自のプロンプトと拡張AIメニューをカスタマイズできるようにします。
29
+
30
+ ### 2. シンプルで使いやすい
31
+
32
+ AIEditorはWebコンポーネントに基づいて開発されており、任意の主流のフロントエンドフレームワークと統合できます。AIEditorは、より友好的なLGPLオープンソースプロトコルを使用しており、`npm i aieditor`を使用して、GPLプロトコルによって引き起こされる可能性のあるGPL感染の問題を心配することなく使用できます。
33
+
34
+ ### 3. オープンソース版に加えて、商用版も提供
35
+
36
+ オープンソース版に加えて、より強力な商用版も提供しています。商用版は、ユーザー数やアプリケーション数に制限がありません。商用版の詳細な比較については、こちらをご覧ください: https://aieditor.dev/versions.html
37
+
38
+ ## オンラインデモ
39
+
40
+ - クラシック/トラディショナルスタイル: https://aieditor.dev/demo.html
41
+ - モダンスタイル: http://doc.aieditor.com.cn
42
+
43
+ ## 完了済み
44
+
45
+ - [x] **基本機能**: タイトル、本文、フォント、フォントサイズ、太字、斜体、下線、取り消し線、リンク、インラインコード、上付き文字、下付き文字、区切り線、引用、印刷
46
+ - [x] **拡張機能**: 元に戻す、やり直し、フォーマットブラシ、消しゴム、ToDoリスト、フォントカラー、背景色、絵文字、整列、行間、順序付き(順序なし)リスト、段落インデント、強制改行
47
+ - [x] **添付ファイル**: 画像、ビデオ、ファイル機能をサポートし、選択アップロード、貼り付けアップロード、ドラッグアップロード、ドラッグリサイズをサポート...
48
+ - [x] **コード**: インラインコード、コードブロック、言語タイプの選択、**AI自動コメント**、**AIコード説明**...
49
+ - [x] **テーブル**: 左増右増、左減右減、上増下増、上減下減、セルの結合、結合解除
50
+ - [x] **Markdown**: タイトル、引用、テーブル、画像、コードブロック、**ハイライトブロック(vuepressの:::に類似)**、さまざまなリスト、太字、斜体、取り消し線...
51
+ - [x] **AI**: AI継続、AI最適化、AI校正、AI翻訳、カスタムAIメニューとプロンプト
52
+ - [x] **その他**: 国際化、ライトテーマ、ダークテーマ、モバイル対応、全画面編集、@XXX(メンション)...
53
+ - [x] Tencent Documentsに似たモダンなUIスタイル
54
+
55
+ ## 開発中...
56
+
57
+ - [ ] AI画像挿入(AIテキストから画像へ)
58
+ - [ ] AI画像生成(AI画像から画像へ)
59
+ - [ ] AIワンクリックレイアウト
60
+ - [ ] 貼り付け機能のさらなる強化
61
+ - [ ] ビデオアップロード時にサムネイルを自動取得
62
+ - [ ] WORDのインポートとエクスポート
63
+ - [ ] PDFのエクスポート、PDFプレビュー
64
+ - [ ] Notionのようなドラッグアンドドロップ機能
65
+
66
+ ## クイックスタート
67
+
68
+ 公式ウェブサイトをご覧ください: https://aieditor.dev/getting-started.html
package/readme.md ADDED
@@ -0,0 +1,77 @@
1
+ <h4 align="right"><strong>English</strong> | <a href="./readme.zh.md">简体中文</a> | <a href="./readme.ja.md">日本語</a></h4>
2
+
3
+ ![](./docs/assets/image/readme-banner.png)
4
+
5
+ <h1 align="center"><a href="https://aieditor.dev" target="_blank">AIEditor.dev</a></h1>
6
+ <h2 align="center">An AI-Powered rich text editor</h2>
7
+ <h4 align="center">Out-of-the-box, Fully Framework Supported, Markdown Friendly</h4>
8
+
9
+ ![](./docs/assets/image/index-banner.png)
10
+
11
+ ## Start following and using AIEditor
12
+
13
+ Give us a star so that you can be notified in time when we release new versions.
14
+
15
+ ![](./docs/assets/image/star.gif)
16
+
17
+ ## What is AIEditor
18
+
19
+ AiEditor is a next-generation rich text editor for AI. It is based on Web Component and supports almost any front-end framework such as Vue, React, Angular, etc. It is compatible with PC Web
20
+ and mobiles, and provides two themes: light and dark. In addition, it also provides flexible configuration, and developers can easily use it to develop any text editing application.
21
+
22
+ For more information about AiEditor, please visit the official website: https://aieditor.dev
23
+
24
+ ## What makes AIEditor different
25
+
26
+ ### 1. AI-Powered editor
27
+
28
+ The goal of AIEditor is to create a rich text editor that is completely driven by AI, and supports docking with any large model, including private large models. Allow users to use their own private large model ApiKey.
29
+ Not only that, all AI functions of AIEditor allow users to customize their own prompts and extended AI menus.
30
+
31
+ ### 2. Simple, friendly, and easy to use
32
+
33
+ AIEditor is developed based on Web Component and supports integration with any mainstream front-end framework. AIEditor uses the more friendly LGPL open source protocol and is used through `npm i aieditor`,
34
+ without worrying about the GPL infection problem that may be caused by the GPL protocol.
35
+
36
+ ### 3. In addition to the open source version, a commercial version is also available
37
+
38
+ In addition to the open source version, we also provide a more powerful commercial version, which does not limit the number of users or the number of applications. For more comparisons of commercial versions,
39
+ please refer to here: https://aieditor.dev/versions.html
40
+
41
+ ## Online Demo
42
+
43
+ - Classic/traditional style: https://aieditor.dev/demo.html
44
+ - Modern style: http://doc.aieditor.com.cn
45
+
46
+ ## Completed
47
+
48
+ - [x] **Basics**: Title, body, font, font size, bold, italic, underline, strikethrough, link, inline code, superscript, subscript, dividing line, quote, print
49
+ - [x] **Enhanced**: Undo, Redo, Format brush, Eraser, To-do list, font color, background color, Emoji expression, alignment, line height, ordered (unordered) list, paragraph indent, forced line break
50
+ - [x] **Attachment**: Supports image, video, file functions, supports select upload, paste upload, drag upload, support drag resize...
51
+ - [x] **Code**: Inline code, code block, language type selection, **AI automatic comment**, **AI code explanation**...
52
+ - [x] **Table**: Left increase right increase, left decrease right decrease, top increase and bottom increase, top decrease and bottom decrease, merge cells, unmerge
53
+ - [x] **Markdown**: Title, quote, table, image, code block, **Highlight block (similar to vuepress :::)**, various lists, bold, italic, strikethrough...
54
+ - [x] **AI**: AI continuation, AI optimization, AI proofreading, AI translation, custom AI menu and prompts
55
+ - [x] **More**: internationalization, light theme, dark theme, mobile phone adaptation, full screen editing, @XXX (mention)...
56
+ - [x] Modern UI style similar to Tencent Documents
57
+
58
+ ## Commercial version
59
+
60
+ - [x] Notion-like content block dragging function
61
+ - [x] Word import, Word export
62
+ - [x] PDF export
63
+ - [x] Latex mathematical formula editing
64
+ - [x] Team collaboration (multiple people editing a document at the same time)
65
+ - [x] Annotation function, similar to the function of selecting a paragraph of text to annotate and comment on it in Word
66
+
67
+ ## Under development...
68
+
69
+ - [ ] AI image insertion (AI text-to-image)
70
+ - [ ] AI image generation (AI image-to-image)
71
+ - [ ] AI one-click typesetting
72
+ - [ ] Further enhance the paste function
73
+ - [ ] Automatically obtain thumbnails when uploading videos
74
+
75
+ ## Quick start
76
+
77
+ Visit the official website: https://aieditor.dev/getting-started.html
package/readme.zh.md ADDED
@@ -0,0 +1,87 @@
1
+ <h4 align="right"><a href="./readme.md">English</a> | <strong>简体中文</strong> | <a href="./readme.ja.md">日本語</a></h4>
2
+
3
+ ![](./docs/assets/image/readme-banner.png)
4
+
5
+ <h1 align="center"><a href="https://aieditor.dev/zh/" target="_blank">AIEditor.dev</a></h1>
6
+ <h4 align="center"><a href='https://gitee.com/aieditor-team/aieditor/stargazers'><img src='https://gitee.com/aieditor-team/aieditor/badge/star.svg?theme=gvp' alt='star' /></a></h4>
7
+
8
+ <h2 align="center">AI 驱动的开源富文本编辑器</h2>
9
+ <h3 align="center">开箱即用、支持所有前端框架、支持 Markdown 书写模式</h4>
10
+
11
+ ![](./docs/assets/image/index-banner1.png)
12
+
13
+ ## 开始关注并使用 AIEditor
14
+
15
+ 给我们 star,这样,在我们发布新的版本时,您可以及时获得通知。
16
+
17
+ ![](./docs/assets/image/star.gif)
18
+
19
+ ## 什么是 AIEditor
20
+
21
+ AiEditor 是一个面向 AI 的下一代富文本编辑器,她基于 Web Component,因此支持 Layui、Vue、React、Angular 等几乎任何前端框架。她适配了 PC Web
22
+ 端和手机端,并提供了 亮色 和 暗色 两个主题。除此之外,她还提供了灵活的配置,开发者可以方便的使用其开发任何文字编辑的应用。
23
+
24
+ 更多关于 AiEditor,请访问官网: https://aieditor.dev
25
+
26
+ ## AIEditor 的与众不同之处
27
+
28
+ ### 1、AI 驱动的编辑器
29
+
30
+ AIEditor 的目标是打造一个完全由 AI 驱动的富文本编辑器,同时支持对接任意大模型,包括私有的大模型。允许用户使用自己私有的大模型 ApiKey。
31
+ 不仅如此,AIEditor 其所有的 AI 功能,都允许用户自定义自己的 prompt,以及扩展的 AI 菜单。
32
+
33
+ ### 2、简单、友好、易用
34
+
35
+ AIEditor 基于 Web Component 开发,支持与任意主流的前端框架集成。AIEditor 使用更加友好的 LGPL 开源协议,通过 `npm i aieditor` 使用,
36
+ 不用担心 GPL 协议可能带来的 GPL 传染问题。
37
+
38
+ ### 3、除了开源版,还提供商业 Pro 版
39
+
40
+ 除了开源版以外,我们还提供了功能更加强大的商业,商业 Pro 版不限制用户量、不限制应用数量。更多商业 Pro 版的对比,
41
+ 可以参考这里:https://aieditor.dev/versions.html
42
+
43
+ ## 在线演示
44
+
45
+ - 现代风格(类腾讯文档): http://doc.aieditor.com.cn
46
+ - 经典/传统风格: https://aieditor.dev/demo.html
47
+
48
+ ## 已完善
49
+
50
+ - [x] **基础**:标题、正文、字体、字号、加粗、斜体、下划线、删除线、链接、行内代码、上标、下标、分割线、引用、打印
51
+ - [x] **增强**:撤回、重做、格式刷、橡皮擦、待办事项、字体颜色、背景颜色、Emoji 表情、对齐方式、行高、有(无)序列表、段落缩进、强制换行
52
+ - [x] **附件**:支持图片、视频、文件功能,支持选择上传、粘贴上传、拖拽上传、支持拖动调整大小...
53
+ - [x] **代码**:行内代码、代码块、语言类型选择、**AI 自动注释**、**AI 代码解释**...
54
+ - [x] **表格**:左增右增、左减右减、上增下增、上减下减、合并单元格、解除合并
55
+ - [x] **Markdown**:标题、引用、表格、图片、代码块、**高亮块(类似 vuepress 的 :::)**、各种列表、粗体、斜体、删除线...
56
+ - [x] **A I**:AI 续写、AI 优化、AI 校对、AI 翻译、自定义 AI 菜单及其 Prompts
57
+ - [x] **更多**:国际化、亮色主题、暗色主题、手机适配、全屏编辑、@某某某(提及)...
58
+ - [x] 类腾讯文档现代 UI 风格
59
+
60
+ ## 商业 Pro 版
61
+
62
+ - [x] 类 Notion 内容块拖拽功能
63
+ - [x] Word 导入、Word 导出
64
+ - [x] PDF 导出
65
+ - [x] Latex 数学公式编辑
66
+ - [x] 团队协作(多个人同时编辑一份文档)
67
+ - [x] 批注功能,类似 word 选择一段文字进行批注评论的功能
68
+
69
+ 商业 Pro 版演示:http://pro.aieditor.com.cn/
70
+
71
+ ## 开发中...
72
+
73
+ - [ ] AI 插入图片
74
+ - [ ] AI 图生图(AI 图片优化)
75
+ - [ ] AI 一键排版
76
+ - [ ] 进一步增强粘贴功能
77
+ - [ ] 上传视频自动获取缩略图
78
+
79
+ ## 快速开始
80
+
81
+ 访问官网:https://aieditor.dev/zh/getting-started.html
82
+
83
+ ## 交流
84
+
85
+ QQ 群:560291578
86
+
87
+ ![qq-group.png](docs%2Fassets%2Fimage%2Fqq-group.png)