velaris-richtext-editor
Version:
A modern WYSIWYG rich text editor based on tiptap and shadcn ui for React
2 lines (1 loc) • 1.61 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-COecBbaE.cjs"),n=require("./RichTextEditor-CWm5KSvH.cjs"),s=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,u=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,l=r.Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:t=>t.getAttribute("data-color")||t.style.backgroundColor,renderHTML:t=>t.color?{"data-color":t.color,style:`background-color: ${t.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:t}){return["mark",r.mergeAttributes(this.options.HTMLAttributes,t),0]},addCommands(){return{setHighlight:t=>({commands:e})=>e.setMark(this.name,t),toggleHighlight:t=>({commands:e})=>e.toggleMark(this.name,t),unsetHighlight:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[r.markInputRule({find:s,type:this.type})]},addPasteRules(){return[r.markPasteRule({find:u,type:this.type})]}}),a=l.extend({addOptions(){var t;return{...(t=this.parent)==null?void 0:t.call(this),multicolor:!0,button:({editor:e,t:o})=>({component:n.HighlightActionButton,componentProps:{action:i=>{typeof i=="string"&&e.chain().focus().setHighlight({color:i}).run(),i===void 0&&e.chain().focus().unsetHighlight().run()},editor:e,isActive:()=>e.isActive("highlight")||!1,disabled:!1,shortcutKeys:["⇧","mod","H"],tooltip:o("editor.highlight.tooltip")}})}}});exports.Highlight=a;