react-lite-rich-text-editor 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/icons.jsx","../src/utils.js","../src/Spinner.jsx","../src/Label.jsx","../node_modules/style-inject/dist/style-inject.es.js","../src/RichTextEditor.jsx"],"sourcesContent":["import React from 'react';\n\nexport const FaImage = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"></path></svg>` }} />\n );\n};\n\nexport const FaArrowDown = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"></path></svg>` }} />\n );\n};\n\nexport const FaBold = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 384 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"></path></svg>` }} />\n );\n};\n\nexport const FaItalic = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 320 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"></path></svg>` }} />\n );\n};\n\nexport const FaUnderline = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaTextHeight = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 576 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignCenter = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignRight = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignJustify = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignLeft = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaListOl = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"></path></svg>` }} />\n );\n};\n\nexport const FaListUl = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaFonticons = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"></path></svg>` }} />\n );\n};\n\nexport const FaFont = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"></path></svg>` }} />\n );\n};\n\nexport const FaLink = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg>` }} />\n );\n};\n\nexport const FaTable = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M64 448c-35.3 0-64-28.7-64-64V128c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64zm96-288H64v64h96v-64zm0 96H64v64h96v-64zm0 96H64c0 17.7 14.3 32 32 32h64v-32zm128-192h-96v64h96v-64zm0 96h-96v64h96v-64zm0 96h-96v96h96v-96zm160-192h-96v64h96v-64zm0 96h-96v64h96v-64zm0 96h-96v64h64c17.7 0 32-14.3 32-32v-32z\"></path></svg>` }} />\n );\n};\n\nexport const FaYoutube = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 576 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.781 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"></path></svg>` }} />\n );\n};\n\nexport const FaObjectGroup = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M480 320h-48v48c0 17.7-14.3 32-32 32h-48v32c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V160c0-26.5 21.5-48 48-48h32v-48c0-17.7 14.3-32 32-32h48V0h32c26.5 0 48 21.5 48 48v48h48c17.7 0 32 14.3 32 32v48h32c26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48z\"></path></svg>` }} />\n );\n};\n\nexport const FaTrash = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"></path></svg>` }} />\n );\n};\n\n","// Basic ID generator\nexport const getRandomId = () => {\n return (\n Math.random().toString(36).substring(2, 15) +\n Math.random().toString(36).substring(2, 15)\n );\n};\n\n// DraftJS helper stubs\n// Since we are removing specific DraftJS dependencies for this package,\n// these serve as placeholders or basic HTML verifiers.\n\nexport const isValidDraftFormat = (content) => {\n if (typeof content !== \"object\" || content === null) return false;\n return !!(content.blocks && content.entityMap);\n};\n\n// A very basic fallback. Ideally, the user should pass HTML strings.\n// Dealing with full DraftJS->HTML conversion without the library is complex.\n// We assume for this package that if the legacy DraftJS format is passed,\n// the user might need to handle it or we expect HTML primarily.\nexport const draftBlocksToHTML = (content) => {\n console.warn(\n \"draftBlocksToHTML: DraftJS object detected but full conversion is simplified in this package.\",\n );\n // Return empty or try to extract text as a fallback\n if (content && content.blocks) {\n return content.blocks.map((b) => `<p>${b.text}</p>`).join(\"\");\n }\n return \"\";\n};\n","import React from 'react';\n\nconst Spinner = () => {\n return (\n <div className=\"rte-spinner-container\">\n <div className=\"rte-spinner\"></div>\n </div>\n );\n};\n\nexport default Spinner;\n","import React from 'react';\n\nconst LabelComponent = ({ children }) => {\n if (!children) return null;\n return (\n <label className=\"rte-label\" style={{ marginBottom: '4px', display: 'block' }}>\n {children}\n </label>\n );\n};\n\nexport default LabelComponent;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { FaImage, FaBold, FaItalic, FaUnderline, FaTextHeight, FaAlignCenter, FaAlignRight, FaAlignJustify, FaAlignLeft, FaListOl, FaListUl, FaFont, FaTable, FaYoutube, FaTrash, FaObjectGroup } from \"./icons\";\nimport { draftBlocksToHTML, isValidDraftFormat } from \"./utils\";\nimport Spinner from \"./Spinner\";\nimport LabelComponent from \"./Label\";\nimport \"./RichTextEditor.css\";\n\n// Helper functions for HTML escaping\nconst escapeHtml = (str) => {\n if (!str) return \"\";\n return String(str)\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\\\"/g, \"&quot;\")\n .replace(/'/g, \"&#039;\");\n};\n\nconst escapeAttr = (str) => escapeHtml(str).replace(/\"/g, \"&quot;\");\n\n// URL detection regex\nconst URL_REGEX = /(https?:\\/\\/[^\\s]+)/g;\n\nexport default function RichTextEditor({\n onChange,\n showEditButton,\n onBlur,\n disabled = false,\n editable: defaultEditable = false,\n value,\n isLoading,\n isList = false,\n label,\n showBorder = true,\n paddingLeft,\n minHeight,\n maxHeight,\n onImageUpload,\n}) {\n\n if (isLoading) {\n return <Spinner />;\n }\n\n const editorRef = useRef(null);\n const fileInputRef = useRef(null);\n const scrollTopRef = useRef(0);\n\n const [html, setHtml] = useState(\"\");\n const [linkModalOpen, setLinkModalOpen] = useState(false);\n const [linkUrl, setLinkUrl] = useState(\"\");\n const [linkText, setLinkText] = useState(\"\");\n const selectionRangeRef = useRef(null);\n const [editable, setEditable] = useState(defaultEditable);\n\n // NEW: Track current list type for dropdown\n const [currentListType, setCurrentListType] = useState(null);\n\n // NEW: Track active styles for toolbar buttons\n const [isBold, setIsBold] = useState(false);\n const [isItalic, setIsItalic] = useState(false);\n const [isUnderline, setIsUnderline] = useState(false);\n\n // NEW: Track current font size\n const [currentFontSize, setCurrentFontSize] = useState(\"16\");\n\n // NEW: Track current line height\n const [currentLineHeight, setCurrentLineHeight] = useState(\"\");\n const [activeAlign, setActiveAlign] = useState(null);\n\n const [imageModalOpen, setImageModalOpen] = useState(false);\n const [selectedImageUrl, setSelectedImageUrl] = useState(\"\");\n const [zoomLevel, setZoomLevel] = useState(1);\n const [isUploading, setIsUploading] = useState(false);\n\n const [youtubeModalOpen, setYoutubeModalOpen] = useState(false);\n const [youtubeUrl, setYoutubeUrl] = useState(\"\");\n const [tableModalOpen, setTableModalOpen] = useState(false);\n const [hoveredTable, setHoveredTable] = useState(null);\n const [tableRows, setTableRows] = useState(3);\n const [tableCols, setTableCols] = useState(3);\n const [selectionVersion, setSelectionVersion] = useState(0);\n\n const [selectedImage, setSelectedImage] = useState(null);\n const [resizeData, setResizeData] = useState(null);\n const openImageModal = (url) => {\n if (editorRef.current) {\n scrollTopRef.current = editorRef.current.scrollTop;\n }\n setSelectedImageUrl(url);\n setImageModalOpen(true);\n };\n\n const closeImageModal = () => {\n setImageModalOpen(false);\n setSelectedImageUrl(\"\");\n setZoomLevel(1);\n };\n\n const handleKeyUp = () => {\n saveSelection();\n setSelectionVersion(v => v + 1);\n };\n\n const handleZoomIn = () => {\n setZoomLevel((prevZoom) => prevZoom + 0.1);\n };\n\n const handleZoomOut = () => {\n setZoomLevel((prevZoom) => Math.max(0.1, prevZoom - 0.1));\n };\n\n // Effect to restore scroll position after modal closes\n useEffect(() => {\n if (!imageModalOpen && editorRef.current) {\n editorRef.current.scrollTop = scrollTopRef.current;\n }\n }, [imageModalOpen]);\n\n useEffect(() => {\n if (!imageModalOpen) return;\n\n const handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n closeImageModal();\n }\n };\n\n const handleWheel = (e) => {\n if (e.ctrlKey) {\n e.preventDefault();\n if (e.deltaY < 0) {\n handleZoomIn();\n } else {\n handleZoomOut();\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n window.addEventListener('wheel', handleWheel, { passive: false });\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('wheel', handleWheel);\n };\n }, [imageModalOpen]);\n\n useEffect(() => {\n const handleClick = (e) => {\n // Trigger selection update for toolbar reactivity\n setSelectionVersion(v => v + 1);\n\n const deleteBtn = e.target.closest('button[title=\"Remove image\"]');\n if (deleteBtn && editable) {\n e.preventDefault();\n e.stopPropagation();\n const wrapper = deleteBtn.closest('.image-container');\n if (wrapper && wrapper.parentNode) {\n wrapper.parentNode.removeChild(wrapper);\n triggerChange();\n }\n }\n };\n\n const editor = editorRef.current;\n if (editor) {\n editor.addEventListener('click', handleClick);\n return () => {\n editor.removeEventListener('click', handleClick);\n };\n }\n }, [editable]);\n\n useEffect(() => {\n if (editorRef.current && value) {\n requestAnimationFrame(() => processExistingImages(editorRef.current));\n }\n }, [value]);\n\n // Runs whenever editable changes (toggles delete icon visibility)\n useEffect(() => {\n processExistingImages(editorRef.current, editable);\n }, [html, editable]);\n useEffect(() => {\n // Only update if value is a string and different from current html\n if (value) {\n try {\n // Check if value is a Draft.js content state (either stringified or object)\n if (value && isValidDraftFormat(value)) {\n const htmlContent = draftBlocksToHTML(value);\n setHtml(htmlContent);\n if (editorRef.current) {\n editorRef.current.innerHTML = htmlContent;\n }\n } else if (typeof value === 'string') {\n // Unescape HTML entities before setting the content\n const unescapedValue = unescapeHtml(value);\n setHtml(unescapedValue);\n if (editorRef.current) {\n editorRef.current.innerHTML = unescapedValue || '';\n }\n }\n } catch (e) {\n console.error('Error processing editor content:', e);\n // Fallback to raw value if parsing fails\n const unescapedValue = typeof value === 'string' ? unescapeHtml(value) : value;\n setHtml(unescapedValue);\n if (editorRef.current) {\n editorRef.current.innerHTML = unescapedValue || '';\n }\n }\n } else {\n setHtml('');\n if (editorRef.current) {\n editorRef.current.innerHTML = '';\n }\n }\n }, [!isList]);\n\n // Call onChange whenever html state updates\n useEffect(() => {\n onChange && onChange(html);\n }, [html, onChange]);\n // Trigger change manually\n const triggerChange = useCallback(() => {\n const next = getCleanHtml();\n setHtml(next);\n }, []);\n\n const handleChange = () => {\n if (!editorRef.current) return;\n\n // Clone editor content\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = editorRef.current.innerHTML;\n\n // Remove delete buttons from the clone\n tempDiv.querySelectorAll('button[title=\"Remove image\"]').forEach(btn => btn.remove());\n\n // Send cleaned HTML to onBlur\n onBlur && onBlur(tempDiv.innerHTML);\n };\n\n // Detect if selection is inside a list (ol or ul)\n const detectListType = () => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) {\n setCurrentListType(null);\n return;\n }\n let node = sel.anchorNode;\n while (node && node !== editorRef.current) {\n if (node.nodeName === \"OL\") {\n setCurrentListType(\"ordered\");\n return;\n }\n if (node.nodeName === \"UL\") {\n setCurrentListType(\"unordered\");\n return;\n }\n node = node.parentNode;\n }\n setCurrentListType(null);\n };\n\n // Helper to walk up DOM to find style tags or CSS style:\n const isParentStyle = (node, ...tagNames) => {\n while (node && node !== editorRef.current) {\n if (node.nodeType === 1 && tagNames.includes(node.tagName)) return true;\n\n // Also check inline style for bold and italic:\n if (node.nodeType === 1 && node.style) {\n const style = node.style;\n if (\n tagNames.includes(\"bold\") &&\n (style.fontWeight === \"bold\" || Number(style.fontWeight) >= 600)\n )\n return true;\n if (tagNames.includes(\"italic\") && style.fontStyle === \"italic\")\n return true;\n if (\n tagNames.includes(\"underline\") &&\n style.textDecoration.includes(\"underline\")\n )\n return true;\n\n if (node.style && node.style.color) {\n return node.style.color;\n }\n\n // 2️⃣ Check for <font color=\"\"> (older HTML)\n if (node.tagName === \"FONT\" && node.getAttribute(\"color\")) {\n return node.getAttribute(\"color\");\n }\n }\n node = node.parentNode;\n }\n return false;\n };\n\n // Update style states based on selection or cursor position\n const updateStyleStates = () => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) {\n setIsBold(false);\n setIsItalic(false);\n setIsUnderline(false);\n setFontColor(\"#000000\"); // default\n return;\n }\n const container =\n sel.anchorNode.nodeType === 3\n ? sel.anchorNode.parentNode\n : sel.anchorNode;\n\n const computedAlign = window.getComputedStyle(container).textAlign;\n setActiveAlign(computedAlign);\n const range = sel.getRangeAt(0);\n\n if (range.collapsed) {\n // Cursor only, check parent nodes\n const container =\n sel.anchorNode.nodeType === 3\n ? sel.anchorNode.parentNode\n : sel.anchorNode;\n const computedStyles = window.getComputedStyle(container);\n setIsBold(isParentStyle(container, \"B\", \"STRONG\", \"bold\"));\n setIsItalic(isParentStyle(container, \"I\", \"EM\", \"italic\"));\n setIsUnderline(isParentStyle(container, \"U\", \"underline\"));\n\n // ✅ Get computed color from container\n const computedColor = window.getComputedStyle(container).color;\n setFontColor(rgbToHex(computedColor));\n\n } else {\n // Text selected, use execCommand state\n setIsBold(document.queryCommandState(\"bold\"));\n setIsItalic(document.queryCommandState(\"italic\"));\n setIsUnderline(document.queryCommandState(\"underline\"));\n\n // ✅ For selection, get color from selection's start container\n const container =\n sel.anchorNode.nodeType === 3\n ? sel.anchorNode.parentNode\n : sel.anchorNode;\n\n const computedColor = window.getComputedStyle(container).color;\n setFontColor(rgbToHex(computedColor));\n }\n };\n\n // Helper to convert rgb() to hex\n function rgbToHex(rgb) {\n const result = rgb.match(/\\d+/g);\n if (!result) return \"#000000\";\n return (\n \"#\" +\n result\n .slice(0, 3)\n .map((x) => {\n const hex = parseInt(x, 10).toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n })\n .join(\"\")\n );\n }\n\n\n // Listen for selection changes globally to update styles and list type\n useEffect(() => {\n document.addEventListener(\"selectionchange\", detectListType);\n document.addEventListener(\"selectionchange\", updateStyleStates);\n\n const handleSelectionChange = () => {\n const selection = window.getSelection();\n if (!selection.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n const element = range.startContainer.parentElement.closest('[style*=\"font-size\"]');\n\n if (element) {\n const fontSize = window.getComputedStyle(element).fontSize;\n const sizeValue = fontSize ? parseInt(fontSize) : 16;\n setCurrentFontSize(sizeValue.toString());\n } else {\n setCurrentFontSize(\"16\"); // Default size\n }\n };\n\n document.addEventListener('selectionchange', handleSelectionChange);\n return () => {\n document.removeEventListener(\"selectionchange\", detectListType);\n document.removeEventListener(\"selectionchange\", updateStyleStates);\n document.removeEventListener('selectionchange', handleSelectionChange);\n };\n }, []);\n\n const focus = () => editorRef.current && editorRef.current.focus();\n\n const exec = (command, value = null) => {\n document.execCommand(command, false, value);\n triggerChange();\n focus();\n };\n\n const [fontColor, setFontColor] = useState(\"#000000\");\n\n const handleColorChange = (color) => {\n setFontColor(color);\n exec(\"foreColor\", color);\n };\n\n const addLink = () => {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n\n selectionRangeRef.current = sel.getRangeAt(0).cloneRange();\n\n const selectedText = sel.toString();\n\n if (selectedText.length > 0) {\n setLinkText(selectedText);\n setLinkUrl(\"\");\n setLinkModalOpen(true);\n } else {\n setLinkText(\"\");\n setLinkUrl(\"\");\n setLinkModalOpen(true);\n }\n };\n\n const findParentTag = (node, tagName) => {\n if (!node) return null;\n let curr = node;\n while (curr && curr !== editorRef.current) {\n if (curr.tagName === tagName) return curr;\n curr = curr.parentNode;\n }\n return null;\n };\n\n const tableAction = (action) => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) return;\n \n const cell = findParentTag(sel.anchorNode, 'TD') || findParentTag(sel.anchorNode, 'TH');\n if (!cell) return;\n \n const row = cell.parentNode;\n const table = row.parentNode.closest('table');\n \n switch (action) {\n case 'addRowAbove':\n const newRowAbove = table.insertRow(row.rowIndex);\n for (let i = 0; i < row.cells.length; i++) {\n const newCell = newRowAbove.insertCell(i);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'addRowBelow':\n const newRowBelow = table.insertRow(row.rowIndex + 1);\n for (let i = 0; i < row.cells.length; i++) {\n const newCell = newRowBelow.insertCell(i);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'addColBefore':\n const cellIndex = cell.cellIndex;\n for (let i = 0; i < table.rows.length; i++) {\n const newCell = table.rows[i].insertCell(cellIndex);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'addColAfter':\n const cellIndexAfter = cell.cellIndex + 1;\n for (let i = 0; i < table.rows.length; i++) {\n const newCell = table.rows[i].insertCell(cellIndexAfter);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'deleteRow': {\n const rowIndex = row.rowIndex;\n const cellIndex = cell.cellIndex;\n table.deleteRow(rowIndex);\n if (table.rows.length === 0) {\n table.remove();\n } else {\n const targetRowIndex = Math.min(rowIndex, table.rows.length - 1);\n const targetRow = table.rows[targetRowIndex];\n const targetCell = targetRow.cells[Math.min(cellIndex, targetRow.cells.length - 1)];\n if (targetCell) {\n const range = document.createRange();\n range.selectNodeContents(targetCell);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n setSelectionVersion(v => v + 1);\n }\n }\n break;\n }\n case 'deleteCol': {\n const idx = cell.cellIndex;\n const rowIndex = row.rowIndex;\n for (let i = 0; i < table.rows.length; i++) {\n table.rows[i].deleteCell(idx);\n }\n if (table.rows[0].cells.length === 0) {\n table.remove();\n } else {\n const targetColIndex = Math.min(idx, table.rows[0].cells.length - 1);\n const targetCell = table.rows[rowIndex]?.cells[targetColIndex] || table.rows[0].cells[targetColIndex];\n if (targetCell) {\n const range = document.createRange();\n range.selectNodeContents(targetCell);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n setSelectionVersion(v => v + 1);\n }\n }\n break;\n }\n case 'mergeRight':\n if (cell.nextElementSibling) {\n const nextCell = cell.nextElementSibling;\n cell.colSpan = (cell.colSpan || 1) + (nextCell.colSpan || 1);\n nextCell.remove();\n }\n break;\n case 'deleteTable':\n table.remove();\n break;\n default:\n break;\n }\n triggerChange && triggerChange();\n };\n\n const insertTable = () => {\n const rows = parseInt(tableRows) || 3;\n const cols = parseInt(tableCols) || 3;\n let tableHtml = '<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #e5e7eb; margin: 16px 0;\"><tbody>';\n for (let i = 0; i < rows; i++) {\n tableHtml += '<tr>';\n for (let j = 0; j < cols; j++) {\n tableHtml += '<td style=\"border: 1px solid #e5e7eb; padding: 12px; min-height: 20px;\">&nbsp;</td>';\n }\n tableHtml += '</tr>';\n }\n tableHtml += '</tbody></table><p>&nbsp;</p>';\n \n if (selectionRangeRef.current) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selectionRangeRef.current);\n }\n\n document.execCommand(\"insertHTML\", false, tableHtml);\n setTableModalOpen(false);\n triggerChange && triggerChange();\n };\n\n const insertYoutube = () => {\n let url = youtubeUrl.trim();\n // More robust regex for various YouTube formats\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|watch\\?vi=|\\&vi=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n const videoId = (match && match[2].length === 11) ? match[2] : null;\n\n if (videoId) {\n if (editorRef.current) {\n editorRef.current.focus();\n }\n\n if (selectionRangeRef.current) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selectionRangeRef.current);\n }\n\n const embedHtml = `<div class=\"video-container\">\n <iframe \n src=\"https://www.youtube.com/embed/${videoId}\" \n frameborder=\"0\" \n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" \n allowfullscreen\n ></iframe>\n </div><p>&nbsp;</p>`;\n \n try {\n document.execCommand(\"insertHTML\", false, embedHtml);\n } catch (err) {\n console.error(\"Failed to insert YouTube HTML:\", err);\n // Fallback: append to the end of the editor\n if (editorRef.current) {\n const div = document.createElement('div');\n div.innerHTML = embedHtml;\n editorRef.current.appendChild(div);\n }\n }\n } else {\n console.warn(\"Invalid YouTube URL or Video ID not found\");\n }\n \n setYoutubeModalOpen(false);\n setYoutubeUrl(\"\");\n triggerChange && triggerChange();\n };\n\n\n const onFileInput = (e) => {\n const file = e.target.files && e.target.files[0];\n if (!file) return;\n readFileAsDataURL(file).then((dataUrl) => {\n insertImage(dataUrl, file.name);\n });\n e.target.value = null;\n };\n\n const processExistingImages = (container) => {\n if (!container) return;\n\n container.querySelectorAll(\"img\").forEach((img) => {\n // REMOVE the old wrapper if it exists so we can re-add\n const oldWrapper = img.closest(\".image-container\");\n if (oldWrapper) {\n oldWrapper.replaceWith(img); // unwrap\n }\n\n const wrapper = document.createElement(\"div\");\n const align = img.getAttribute('data-align') || 'center';\n wrapper.className = `image-container image-align-${align}`;\n wrapper.style.cursor = editable ? 'pointer' : 'default';\n\n img.className = \"rte-image\";\n img.style.cssText = \"\"; // Reset inline styles\n img.setAttribute('data-align', align);\n img.dataset.hasDeleteButton = \"true\";\n\n // Add click listener to open modal\n img.addEventListener(\"click\", () => openImageModal(img.src));\n\n const deleteBtn = document.createElement(\"button\");\n deleteBtn.innerHTML = \"×\";\n deleteBtn.className = \"image-delete-button\";\n deleteBtn.style.display = editable ? 'flex' : 'none';\n deleteBtn.style.pointerEvents = editable ? 'auto' : 'none';\n deleteBtn.title = \"Remove image\";\n\n deleteBtn.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const wrapper = e.currentTarget.closest(\".image-container\");\n if (wrapper && wrapper.parentNode) {\n wrapper.parentNode.removeChild(wrapper);\n triggerChange && triggerChange();\n }\n };\n\n const { parentNode, nextSibling } = img;\n if (parentNode) {\n parentNode.removeChild(img);\n wrapper.appendChild(img);\n wrapper.appendChild(deleteBtn);\n\n if (nextSibling) {\n parentNode.insertBefore(wrapper, nextSibling);\n } else {\n parentNode.appendChild(wrapper);\n }\n }\n });\n };\n\n useEffect(() => {\n if (editorRef.current && value) {\n requestAnimationFrame(() => processExistingImages(editorRef.current));\n }\n }, [value]);\n\n const insertImage = async (dataUrl, fileName) => {\n try {\n if (editable) {\n\n // Create container for the image\n const container = document.createElement('div');\n container.className = 'image-container';\n\n // Create image element\n const img = document.createElement('img');\n img.src = dataUrl;\n img.alt = fileName || \"image\";\n img.addEventListener(\"click\", () => openImageModal(dataUrl));\n\n // Add elements to container\n container.appendChild(img);\n\n // Insert at cursor position\n insertNodeAtCursor(container);\n triggerChange();\n\n // Immediately process newly inserted image so delete button appears\n requestAnimationFrame(() => {\n processExistingImages(editorRef.current);\n });\n }\n } catch (err) {\n console.error('Error inserting image:', err);\n }\n };\n\n const readFileAsDataURL = (file) =>\n new Promise((res, rej) => {\n const reader = new FileReader();\n reader.onload = (ev) => res(ev.target.result);\n reader.onerror = rej;\n reader.readAsDataURL(file);\n });\n\n // NEW: Function to auto-convert URLs to links\n const autoConvertUrlsToLinks = (html) => {\n return html.replace(URL_REGEX, (url) => {\n const safeUrl = escapeAttr(url);\n return `<a href=\"${safeUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: blue;\">${url}</a>`;\n });\n };\n\n const handlePaste = useCallback((e) => {\n const clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData) return;\n\n // Check for image in clipboard\n const items = clipboardData.items || [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n e.preventDefault();\n const file = item.getAsFile();\n if (file) {\n setIsUploading(true);\n const uploadPromise = onImageUpload\n ? onImageUpload(file)\n : readFileAsDataURL(file);\n\n uploadPromise.then((url) => {\n if (url) {\n // if the user's onImageUpload resolves to `{ mediaUrl: '...' }` like the previous MediaUpload, handle it\n const finalUrl = typeof url === 'object' && url !== null && url.mediaUrl ? url.mediaUrl : url;\n insertImage(finalUrl, file.name || 'pasted-image');\n }\n setIsUploading(false);\n }).catch((error) => {\n console.error('Error uploading pasted image:', error);\n setIsUploading(false);\n });\n }\n return;\n }\n }\n\n const htmlData = clipboardData.getData('text/html');\n if (htmlData && htmlData.trim()) {\n e.preventDefault();\n\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = htmlData;\n\n tempDiv.querySelectorAll('script, meta, link').forEach(el => el.remove());\n\n document.execCommand('styleWithCSS', false, true);\n document.execCommand('insertHTML', false, tempDiv.innerHTML);\n document.execCommand('styleWithCSS', false, false);\n\n triggerChange();\n focus();\n return;\n }\n\n const plainText = clipboardData.getData('text/plain');\n if (plainText) {\n e.preventDefault();\n\n let htmlToInsert = escapeHtml(plainText);\n\n htmlToInsert = htmlToInsert.replace(URL_REGEX, (url) => {\n const safeUrl = escapeAttr(url.trim());\n return `<a href=\"${safeUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: blue; text-decoration: underline;\">${escapeHtml(url)}</a>`;\n });\n\n htmlToInsert = htmlToInsert.replace(/\\n/g, '<br>');\n\n document.execCommand('insertHTML', false, htmlToInsert);\n triggerChange();\n focus();\n }\n }, [insertImage, triggerChange]);\n\n const handleDrop = async (e) => {\n if (!editable) return;\n e.preventDefault();\n e.stopPropagation();\n\n const files = e.dataTransfer.files;\n if (!files || files.length === 0) return;\n\n const imageFiles = Array.from(files).filter(file => file.type.startsWith(\"image/\"));\n\n for (const file of imageFiles) {\n try {\n setIsUploading(true);\n const uploadPromise = onImageUpload\n ? onImageUpload(file)\n : readFileAsDataURL(file);\n\n uploadPromise.then((url) => {\n if (url) {\n const finalUrl = typeof url === 'object' && url !== null && url.mediaUrl ? url.mediaUrl : url;\n insertImage(finalUrl, file.name);\n }\n setIsUploading(false);\n }).catch((error) => {\n console.error('Error processing image:', error);\n setIsUploading(false);\n });\n } catch (error) {\n console.error('Error processing image:', error);\n setIsUploading(false);\n }\n }\n };\n\n const insertNodeAtCursor = (node) => {\n try {\n const sel = window.getSelection();\n let range;\n\n if (!sel || sel.rangeCount === 0 || !editorRef.current.contains(sel.anchorNode)) {\n editorRef.current.focus();\n \n // Move cursor to end if not already in editor\n range = document.createRange();\n range.selectNodeContents(editorRef.current);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n } else {\n range = sel.getRangeAt(0);\n }\n\n range.deleteContents();\n range.insertNode(node);\n \n const space = document.createTextNode(\"\\u00A0\");\n if (node.parentNode) {\n node.parentNode.insertBefore(space, node.nextSibling);\n }\n \n range.setStartAfter(space);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n } catch (error) {\n console.error(\"Insertion error:\", error);\n if (editorRef.current) {\n editorRef.current.appendChild(node);\n }\n }\n };\n\n const getCleanHtml = () => {\n if (!editorRef.current) return \"\";\n return editorRef.current.innerHTML;\n };\n\n // Helper function to unescape HTML entities\n const unescapeHtml = (html) => {\n if (!html) return '';\n const txt = document.createElement(\"textarea\");\n txt.innerHTML = html;\n return txt.value;\n };\n\n const handleKeyDown = useCallback((e) => {\n // Handle Enter key\n if (e.key === 'Enter') {\n e.preventDefault();\n\n const selection = window.getSelection();\n if (!selection.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n const node = range.startContainer;\n const parent = node.nodeType === 3 ? node.parentNode : node;\n\n // Check if we're in a list item\n const listItem = parent.closest('li');\n if (listItem) {\n const list = listItem.parentNode;\n const isOrderedList = list.tagName === 'OL';\n\n // Create a new list item\n const newItem = document.createElement('li');\n\n // If we're at the end of a list item, add a new one\n if (range.collapsed && range.endOffset === node.length) {\n // If it's empty, create a regular paragraph instead\n if (listItem.textContent.trim() === '') {\n document.execCommand('insertHTML', false, '<div><br></div>');\n // Move the cursor to the new line\n const newRange = document.createRange();\n const newDiv = editorRef.current.lastElementChild;\n newRange.setStart(newDiv, 0);\n newRange.collapse(true);\n selection.removeAllRanges();\n selection.addRange(newRange);\n return;\n }\n\n // Insert new list item\n if (listItem.nextSibling) {\n list.insertBefore(newItem, listItem.nextSibling);\n } else {\n list.appendChild(newItem);\n }\n\n // Move cursor to the new list item\n const newRange = document.createRange();\n newRange.setStart(newItem, 0);\n newRange.collapse(true);\n selection.removeAllRanges();\n selection.addRange(newRange);\n } else {\n // If we're in the middle of text, split the list item\n const textBefore = node.textContent.substring(0, range.startOffset);\n const textAfter = node.textContent.substring(range.startOffset);\n\n // Update current item\n node.textContent = textBefore;\n\n // Insert new item after current one\n newItem.textContent = textAfter;\n\n if (listItem.nextSibling) {\n list.insertBefore(newItem, listItem.nextSibling);\n } else {\n list.appendChild(newItem);\n }\n\n // Move cursor to the new list item\n const newRange = document.createRange();\n newRange.setStart(newItem.firstChild || newItem, 0);\n newRange.collapse(true);\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n } else {\n // Regular text, insert a new paragraph\n document.execCommand('insertHTML', false, '<div><br></div>');\n }\n\n triggerChange();\n return;\n }\n\n // Handle Ctrl/Cmd + B/I/U for bold/italic/underline\n if ((e.ctrlKey || e.metaKey) && e.key === \"b\") {\n e.preventDefault();\n exec(\"bold\");\n } else if ((e.ctrlKey || e.metaKey) && e.key === \"i\") {\n e.preventDefault();\n exec(\"italic\");\n } else if ((e.ctrlKey || e.metaKey) && e.key === \"u\") {\n e.preventDefault();\n exec(\"underline\");\n }\n }, [exec, triggerChange]);\n\n const confirmLink = () => {\n // Add protocol if missing\n let url = linkUrl.trim();\n if (url && !/^(https?:\\/\\/|mailto:|tel:)/i.test(url)) {\n url = `https://${url}`;\n }\n\n const safeUrl = escapeAttr(url);\n const safeText = escapeHtml(linkText || linkUrl);\n\n const sel = window.getSelection();\n sel.removeAllRanges();\n if (selectionRangeRef.current) {\n sel.addRange(selectionRangeRef.current);\n }\n\n const linkHtml = `<a href=\"${safeUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: blue;\">${safeText}</a>`;\n document.execCommand(\"insertHTML\", false, linkHtml);\n\n setLinkModalOpen(false);\n triggerChange();\n focus();\n selectionRangeRef.current = null;\n };\n\n const cancelLink = () => {\n setLinkModalOpen(false);\n selectionRangeRef.current = null;\n };\n\n const handleSelect = (type) => {\n exec(type === \"unordered\" ? \"insertUnorderedList\" : \"insertOrderedList\");\n };\n\n const onLineHeightChange = (value) => {\n if (!value) return;\n\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) return;\n\n const range = sel.getRangeAt(0);\n const editor = editorRef.current;\n if (!editor) return;\n\n const walker = document.createTreeWalker(\n editor,\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n return range.intersectsNode(node)\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT;\n },\n },\n false\n );\n\n let node;\n const blocksToStyle = new Set();\n const blockTags = ['P', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'BLOCKQUOTE'];\n\n const tempRange = range.cloneRange();\n\n while ((node = walker.nextNode())) {\n if (node.nodeType === 1 && blockTags.includes(node.tagName)) {\n blocksToStyle.add(node);\n } else if (node.nodeType === 3) {\n let parent = node.parentNode;\n while (parent && parent !== editor && !blockTags.includes(parent.tagName)) {\n parent = parent.parentNode;\n }\n if (parent && parent !== editor && blockTags.includes(parent.tagName)) {\n blocksToStyle.add(parent);\n }\n }\n }\n\n if (blocksToStyle.size > 0) {\n blocksToStyle.forEach(block => {\n block.style.lineHeight = value;\n });\n } else {\n let common = range.commonAncestorContainer;\n if (common.nodeType === 3) common = common.parentNode;\n\n while (common && common !== editor && !blockTags.includes(common.tagName)) {\n common = common.parentNode;\n }\n\n if (common && common !== editor) {\n common.style.lineHeight = value;\n } else if (editor) {\n document.execCommand('formatBlock', false, 'div');\n let newCommon = window.getSelection().getRangeAt(0).commonAncestorContainer;\n if (newCommon.nodeType === 3) newCommon = newCommon.parentNode;\n if (newCommon && newCommon !== editor) {\n newCommon.style.lineHeight = value;\n }\n }\n }\n\n try {\n sel.removeAllRanges();\n sel.addRange(tempRange);\n } catch (e) { }\n\n setCurrentLineHeight(value);\n triggerChange();\n focus();\n };\n\n const applyFontSize = (size) => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) return;\n\n const range = sel.getRangeAt(0);\n const sizePx = `${size}px`;\n\n // Collapsed selection (cursor only): insert a styled zero-width span\n if (range.collapsed) {\n const span = document.createElement(\"span\");\n span.style.fontSize = sizePx;\n span.appendChild(document.createTextNode(\"\\u200B\"));\n range.insertNode(span);\n\n const newRange = document.createRange();\n newRange.setStart(span.firstChild, 1);\n newRange.collapse(true);\n sel.removeAllRanges();\n sel.addRange(newRange);\n\n triggerChange();\n focus();\n return;\n }\n\n // Extended selection (highlighted text)\n try {\n const editor = editorRef.current;\n if (!editor) return;\n\n // We will iterate through all the text nodes in the selection\n const walker = document.createTreeWalker(\n editor,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n return range.intersectsNode(node)\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT;\n },\n },\n false\n );\n\n let node;\n const nodesToStyle = [];\n while ((node = walker.nextNode())) {\n nodesToStyle.push(node);\n }\n\n const savedRange = range.cloneRange();\n let lastInsertedNode = null;\n\n // Iterate through the selected text nodes and wrap them in spans\n for (const textNode of nodesToStyle) {\n const parent = textNode.parentNode;\n\n // This is important: check if the parent is a block-level element\n // like a list item or paragraph. If so, we want to style the block\n // itself to avoid breaking its structure.\n const isBlockLevel = ['P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'BLOCKQUOTE'].includes(parent.tagName);\n\n if (isBlockLevel) {\n parent.style.fontSize = sizePx;\n } else {\n // For inline text, wrap the selected portion in a new span\n const startOffset = textNode === savedRange.startContainer ? savedRange.startOffset : 0;\n const endOffset = textNode === savedRange.endContainer ? savedRange.endOffset : textNode.length;\n\n const newSpan = document.createElement(\"span\");\n newSpan.style.fontSize = sizePx;\n newSpan.textContent = textNode.textContent.substring(startOffset, endOffset);\n\n const tempRange = document.createRange();\n tempRange.setStart(textNode, startOffset);\n tempRange.setEnd(textNode, endOffset);\n\n tempRange.deleteContents();\n tempRange.insertNode(newSpan);\n lastInsertedNode = newSpan;\n }\n }\n\n // After styling, we need to correctly position the cursor\n if (lastInsertedNode) {\n const newRange = document.createRange();\n newRange.setStartAfter(lastInsertedNode);\n newRange.collapse(true);\n sel.removeAllRanges();\n sel.addRange(newRange);\n } else {\n // If no nodes were wrapped (e.g., we styled a block), restore the original selection\n sel.removeAllRanges();\n sel.addRange(savedRange);\n }\n\n } catch (err) {\n console.error(\"Error applying font size:\", err);\n }\n\n triggerChange();\n focus();\n };\n const handleInput = useCallback(() => {\n if (onChange && editorRef.current) {\n const html = editorRef.current.innerHTML;\n setHtml(html);\n onChange(html);\n }\n }, [onChange]);\n\n const handleImageUpload = async (e) => {\n const file = e.target.files[0];\n if (!file) return;\n\n try {\n setIsUploading(true);\n const uploadPromise = onImageUpload\n ? onImageUpload(file)\n : readFileAsDataURL(file);\n\n uploadPromise.then((url) => {\n if (url) {\n const finalUrl = typeof url === 'object' && url !== null && url.mediaUrl ? url.mediaUrl : url;\n insertImage(finalUrl, file.name);\n }\n setIsUploading(false);\n e.target.value = null;\n }).catch((error) => {\n console.error('Error uploading image:', error);\n setIsUploading(false);\n });\n } catch (error) {\n console.error('Error uploading image:', error);\n setIsUploading(false);\n }\n };\n useEffect(() => {\n // If disabled is explicitly false, make sure the editor is not editable\n if (disabled === true) {\n setEditable(false);\n }\n }, [disabled]);\n\n const handleEditorClick = useCallback((e) => {\n setSelectionVersion(v => v + 1);\n // Check if the click is on a link\n const clickedLink = e.target.closest('a');\n\n if (clickedLink) {\n e.preventDefault();\n e.stopPropagation();\n window.open(clickedLink.href, '_blank');\n return;\n }\n\n // NEW: Check if click is on an image for resizing\n const clickedImg = e.target.closest('img');\n if (clickedImg && !clickedImg.closest('.rte-modal')) {\n setSelectedImage(clickedImg);\n setResizeData({});\n } else if (!e.target.closest('.resize-handle')) {\n setSelectedImage(null);\n }\n\n // If disabled is true, prevent editing\n if (disabled === true) {\n e.preventDefault();\n return;\n }\n\n // Only allow setting editable to true if not disabled\n if (!editable && disabled !== true) {\n setEditable(true);\n setTimeout(() => {\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, 0);\n }\n }, [editable, disabled]);\n\n const startResize = (e, direction) => {\n e.preventDefault();\n e.stopPropagation();\n const img = selectedImage;\n const startX = e.clientX;\n const startY = e.clientY;\n const startWidth = img.offsetWidth;\n const startHeight = img.offsetHeight;\n\n const onMouseMove = (moveEvent) => {\n let newWidth = startWidth;\n let newHeight = startHeight;\n\n if (direction.includes('e')) newWidth = startWidth + (moveEvent.clientX - startX);\n if (direction.includes('w')) newWidth = startWidth - (moveEvent.clientX - startX);\n if (direction.includes('s')) newHeight = startHeight + (moveEvent.clientY - startY);\n if (direction.includes('n')) newHeight = startHeight - (moveEvent.clientY - startY);\n\n img.style.width = `${newWidth}px`;\n img.style.height = `${newHeight}px`;\n setResizeData({}); // Force re-render of handles\n };\n\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n triggerChange();\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n const renderResizeHandles = () => {\n if (!selectedImage || !editorRef.current) return null;\n \n const editorRect = editorRef.current.getBoundingClientRect();\n const imgRect = selectedImage.getBoundingClientRect();\n \n // Relative position within editorRef using the more robust BoundingClientRect\n const top = imgRect.top - editorRect.top + editorRef.current.scrollTop;\n const left = imgRect.left - editorRect.left + editorRef.current.scrollLeft;\n const width = imgRect.width;\n const height = imgRect.height;\n\n const handleStyles = {\n position: 'absolute',\n width: '10px',\n height: '10px',\n background: '#3b82f6',\n border: '2px solid white',\n borderRadius: '50%',\n zIndex: 100,\n };\n\n const handles = [\n { id: 'nw', style: { top: top - 5, left: left - 5, cursor: 'nw-resize' } },\n { id: 'ne', style: { top: top - 5, left: left + width - 5, cursor: 'ne-resize' } },\n { id: 'sw', style: { top: top + height - 5, left: left - 5, cursor: 'sw-resize' } },\n { id: 'se', style: { top: top + height - 5, left: left + width - 5, cursor: 'se-resize' } },\n ];\n\n return (\n <div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', pointerEvents: 'none' }}>\n <div style={{ position: 'absolute', top, left, width, height, border: '2px solid #3b82f6', pointerEvents: 'none' }} />\n {handles.map(h => (\n <div\n key={h.id}\n className=\"resize-handle\"\n onMouseDown={(e) => startResize(e, h.id)}\n style={{ ...handleStyles, ...h.style, pointerEvents: 'auto' }}\n />\n ))}\n </div>\n );\n };\n\n \n\n return (\n <div className=\"rte-main-wrapper\" style={{ width: '100%', position: 'relative' }}>\n {label && <LabelComponent>{label}</LabelComponent>}\n <div\n style={{ position: 'relative' }}\n className={!showBorder ? \"\" : \"rte-container\"}\n onClick={handleEditorClick}\n onMouseOver={(e) => {\n const table = e.target.closest('table');\n if (table && editorRef.current.contains(table)) {\n setHoveredTable(table);\n }\n }}\n onMouseOut={(e) => {\n const table = e.target.closest('table');\n const related = e.relatedTarget;\n if (table && (!related || !table.contains(related)) && !related?.closest('.rte-table-delete-hover')) {\n setHoveredTable(null);\n }\n }}\n onDrop={handleDrop}\n onDragOver={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {/* Toolbar */}\n <div className=\"rte-toolbar\">\n {/* Bold */}\n <button\n type=\"button\"\n title=\"Bold\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n document.execCommand(\"bold\");\n handleInput();\n focus();\n }}\n className={`rte-toolbar-button ${isBold ? \"active\" : \"\"}`}\n >\n <FaBold size={14} />\n </button>\n\n {/* Italic */}\n <button\n type=\"button\"\n title=\"Italic\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n document.execCommand(\"italic\");\n handleInput();\n focus();\n }}\n className={`rte-toolbar-button ${isItalic ? \"active\" : \"\"}`}\n >\n <FaItalic size={14} />\n </button>\n\n {/* Underline */}\n <button\n type=\"button\"\n title=\"Underline\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n document.execCommand(\"underline\");\n handleInput();\n focus();\n }}\n className={`rte-toolbar-button ${isUnderline ? \"active\" : \"\"}`}\n >\n <FaUnderline size={14} />\n </button>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Font Size */}\n <select\n value={currentFontSize}\n onMouseDown={(e) => e.stopPropagation()}\n onChange={(e) => {\n e.preventDefault();\n e.stopPropagation();\n const size = e.target.value;\n if (!size) return;\n applyFontSize(size);\n setCurrentFontSize(size);\n focus();\n }}\n className=\"rte-toolbar-select\"\n style={{ width: '70px' }}\n >\n {[8, 10, 12, 14, 16, 18, 20, 24, 28, 32, 36, 40, 48].map((s) => (\n <option key={s} value={s}>{s}px</option>\n ))}\n </select>\n\n {/* Text Color */}\n <label title=\"Font Color\" className=\"rte-color-picker-label\">\n <FaFont size={14} style={{ color: fontColor }} />\n <input\n type=\"color\"\n value={fontColor}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onChange={(e) => {\n e.stopPropagation();\n handleColorChange(e.target.value);\n }}\n className=\"rte-color-input\"\n />\n </label>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Alignment */}\n <button\n type=\"button\"\n title=\"Align Left\"\n className={`rte-toolbar-button ${activeAlign === \"left\" ? \"active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n exec(\"justifyLeft\");\n setActiveAlign(\"left\");\n }}\n >\n <FaAlignLeft size={14} />\n </button>\n\n <button\n type=\"button\"\n title=\"Align Center\"\n className={`rte-toolbar-button ${activeAlign === \"center\" ? \"active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n exec(\"justifyCenter\");\n setActiveAlign(\"center\");\n }}\n >\n <FaAlignCenter size={14} />\n </button>\n\n <button\n type=\"button\"\n title=\"Align Right\"\n className={`rte-toolbar-button ${activeAlign === \"right\" ? \"active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n exec(\"justifyRight\");\n setActiveAlign(\"right\");\n }}\n >\n <FaAlignRight size={14} />\n </button>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Lists */}\n <button\n type=\"button\"\n title=\"Unordered List\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleSelect(\"unordered\");\n }}\n className={`rte-toolbar-button ${currentListType === \"unordered\" ? \"active\" : \"\"}`}\n >\n <FaListUl size={14} />\n </button>\n <button\n type=\"button\"\n title=\"Ordered List\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleSelect(\"ordered\");\n }}\n className={`rte-toolbar-button ${currentListType === \"ordered\" ? \"active\" : \"\"}`}\n >\n <FaListOl size={14} />\n </button>\n\n {/* Line Height */}\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center' }}>\n <select\n value={currentLineHeight}\n onMouseDown={(e) => e.stopPropagation()}\n onChange={(e) => {\n e.preventDefault();\n const height = e.target.value;\n if (height) {\n onLineHeightChange(height);\n setCurrentLineHeight(height);\n }\n focus();\n }}\n className=\"rte-toolbar-select\"\n style={{ width: '64px', paddingLeft: '24px' }}\n >\n <option value=\"\" disabled>↕</option>\n {['1', '1.15', '1.5', '2'].map((h) => (\n <option key={h} value={h}>{h}</option>\n ))}\n </select>\n <div style={{ position: 'absolute', left: '6px', pointerEvents: 'none', color: '#9ca3af' }}>\n <FaTextHeight size={12} />\n </div>\n </div>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n \n <button\n type=\"button\"\n title=\"Add Link\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n addLink();\n }}\n >\n <span style={{ fontSize: '16px' }}>🔗</span>\n </button>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n style={{ display: \"none\" }}\n onChange={handleImageUpload}\n disabled={isUploading}\n />\n <button\n type=\"button\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n if (!isUploading) fileInputRef.current?.click();\n }}\n disabled={isUploading}\n title=\"Upload image\"\n >\n {isUploading ? (\n <div className=\"rte-spinner\" style={{ width: '14px', height: '14px', borderWidth: '2px' }}></div>\n ) : (\n <FaImage size={14} />\n )}\n </button>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Table */}\n <button\n type=\"button\"\n title=\"Insert Table\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0) {\n selectionRangeRef.current = sel.getRangeAt(0).cloneRange();\n }\n setTableModalOpen(true);\n }}\n >\n <FaTable size={14} />\n </button>\n\n {/* YouTube */}\n <button\n type=\"button\"\n title=\"Embed YouTube Video\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0) {\n selectionRangeRef.current = sel.getRangeAt(0).cloneRange();\n }\n setYoutubeModalOpen(true);\n }}\n >\n <FaYoutube size={14} />\n </button>\n\n {/* Table Actions (Conditional) */}\n {(() => {\n if (typeof window === \"undefined\") return null;\n const sel = window.getSelection();\n // Robust check: inside cell OR the table itself is selected\n const isCell = sel && sel.rangeCount > 0 && sel.anchorNode && (findParentTag(sel.anchorNode, 'TD') || findParentTag(sel.anchorNode, 'TH'));\n const isTable = sel && sel.rangeCount > 0 && sel.anchorNode && findParentTag(sel.anchorNode, 'TABLE');\n \n if (isCell || isTable) {\n return (\n <>\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n <button type=\"button\" title=\"Add Row Above\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addRowAbove'); }}>+R↑</button>\n <button type=\"button\" title=\"Add Row Below\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addRowBelow'); }}>+R↓</button>\n <button type=\"button\" title=\"Add Col Before\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addColBefore'); }}>+C←</button>\n <button type=\"button\" title=\"Add Col After\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addColAfter'); }}>+C→</button>\n \n <div style={{ width: '1px', height: '20px', backgroundColor: '#f3f4f6', margin: '0 4px' }}></div>\n \n <button type=\"button\" title=\"Merge Cells (Right)\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('mergeRight'); }}><FaObjectGroup size={14} /></button>\n \n <button type=\"button\" title=\"Delete Row\" className=\"rte-toolbar-button rte-toolbar-button-danger \" onMouseDown={(e) => { e.preventDefault(); tableAction('deleteRow'); }}>\n <FaTrash size={12} /> <span style={{ fontSize: '10px' }}>Row</span>\n </button>\n <button type=\"button\" title=\"Delete Column\" className=\"rte-toolbar-button rte-toolbar-button-danger\" onMouseDown={(e) => { e.preventDefault(); tableAction('deleteCol'); }}>\n <FaTrash size={12} /> <span style={{ fontSize: '10px',marginRight:\"5px\" }}>Col</span>\n </button>\n <button type=\"button\" title=\"Delete Table\" className=\"rte-toolbar-button rte-toolbar-button-danger\" onMouseDown={(e) => { e.preventDefault(); tableAction('deleteTable'); }}>\n <FaTrash size={14} /> <span style={{ fontWeight: '600' }}>Table</span>\n </button>\n </>\n );\n }\n return null;\n })()}\n </div>\n {/* Editor Content Area */}\n <div\n ref={editorRef}\n contentEditable={editable && disabled !== true}\n suppressContentEditableWarning\n onInput={handleInput}\n onPaste={handlePaste}\n onDrop={handleDrop}\n onDragStart={(e) => e.preventDefault()}\n onDragOver={(e) => e.preventDefault()}\n onKeyDown={handleKeyDown}\n onClick={handleEditorClick}\n style={{\n minHeight: minHeight || '150px',\n maxHeight: maxHeight || '500px',\n paddingLeft: paddingLeft || '12px'\n }}\n className=\"rte-content\"\n />\n {renderResizeHandles()}\n \n {/* Footer with Character/Word Count */}\n <div className=\"rte-footer\">\n {(() => {\n const text = editorRef.current?.innerText || \"\";\n const cleanText = text.replace(/[\\n\\r]/g, ' ').trim();\n const words = cleanText ? cleanText.split(/\\s+/).length : 0;\n const chars = text.length;\n return (\n <div className=\"rte-footer-content\">\n <span className=\"rte-footer-item\"><b>{words}</b> words</span>\n <span className=\"rte-footer-separator\">•</span>\n <span className=\"rte-footer-item\"><b>{chars}</b> characters</span>\n </div>\n );\n })()}\n </div>\n {linkModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={cancelLink}>\n <div className=\"rte-modal\" onClick={(e) => e.stopPropagation()}>\n <h3 className=\"rte-modal-title\">Insert Link</h3>\n <div className=\"rte-modal-divider\"></div>\n <div className=\"rte-modal-body\">\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Link Text</label>\n <input\n type=\"text\"\n className=\"rte-input\"\n placeholder=\"e.g. Google\"\n value={linkText}\n onChange={(e) => setLinkText(e.target.value)}\n />\n </div>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">URL</label>\n <input\n type=\"text\"\n className=\"rte-input\"\n placeholder=\"https://example.com\"\n value={linkUrl}\n onChange={(e) => setLinkUrl(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && confirmLink()}\n autoFocus\n />\n </div>\n </div>\n <div className=\"rte-modal-divider\" style={{ margin: '8px 0 20px 0' }}></div>\n <div className=\"rte-modal-footer\">\n <button type=\"button\" className=\"rte-btn rte-btn-secondary\" onClick={cancelLink}>Cancel</button>\n <button type=\"button\" className=\"rte-btn rte-btn-primary\" onClick={confirmLink} disabled={!linkUrl}>Insert</button>\n </div>\n </div>\n </div>\n )}\n\n {/* Table Modal */}\n {tableModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={() => setTableModalOpen(false)}>\n <div className=\"rte-modal\" onClick={(e) => e.stopPropagation()}>\n <h3 className=\"rte-modal-title\">Insert Table</h3>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Rows</label>\n <input type=\"number\" className=\"rte-input\" value={tableRows} onChange={(e) => setTableRows(e.target.value)} min=\"1\" max=\"10\" />\n </div>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Columns</label>\n <input type=\"number\" className=\"rte-input\" value={tableCols} onChange={(e) => setTableCols(e.target.value)} min=\"1\" max=\"10\" />\n </div>\n <div className=\"rte-modal-actions\">\n <button type=\"button\" className=\"rte-button rte-button-secondary\" onClick={() => setTableModalOpen(false)}>Cancel</button>\n <button type=\"button\" className=\"rte-button rte-button-primary\" onClick={insertTable}>Insert</button>\n </div>\n </div>\n </div>\n )}\n\n {/* YouTube Modal */}\n {youtubeModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={() => setYoutubeModalOpen(false)}>\n <div className=\"rte-modal\" onClick={(e) => e.stopPropagation()}>\n <div className=\"rte-modal-header\">\n <h3 className=\"rte-modal-title\">Embed YouTube Video</h3>\n </div>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Paste YouTube Video URL</label>\n <input \n type=\"text\" \n className=\"rte-input\" \n value={youtubeUrl} \n onChange={(e) => setYoutubeUrl(e.target.value)} \n placeholder=\"https://www.youtube.com/watch?v=...\" \n autoFocus \n onKeyDown={(e) => {\n if (e.key === 'Enter') insertYoutube();\n if (e.key === 'Escape') setYoutubeModalOpen(false);\n }}\n />\n </div>\n <div className=\"rte-modal-actions\">\n <button type=\"button\" className=\"rte-button rte-button-secondary\" onClick={() => setYoutubeModalOpen(false)}>Cancel</button>\n <button type=\"button\" className=\"rte-button rte-button-primary\" onClick={insertYoutube}>Embed Video</button>\n </div>\n </div>\n </div>\n )}\n\n {/* Image Zoom Modal */}\n {imageModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={closeImageModal}>\n <div\n style={{ position: \"relative\", maxWidth: \"90%\", maxHeight: \"90%\" }}\n onClick={(e) => e.stopPropagation()}\n >\n <img\n src={selectedImageUrl}\n style={{\n width: \"100%\",\n maxHeight: \"90vh\",\n borderRadius: '12px',\n transform: `scale(${zoomLevel})`,\n transition: \"transform 0.2s ease\",\n boxShadow: '0 25px 50px -12px rgba(0,0,0,0.5)'\n }}\n alt=\"Zoomed\"\n />\n </div>\n </div>\n )}\n </div>\n\n {showEditButton && editable && (\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: \"12px\", marginTop: \"12px\" }}>\n <button\n type=\"button\"\n className=\"rte-button rte-button-secondary\"\n onClick={() => setEditable(false)}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"rte-button rte-button-primary\"\n onClick={() => {\n onChange && onChange(html);\n setEditable(false);\n }}\n >\n Save Changes\n </button>\n </div>\n )}\n </div>\n );\n}\n"],"names":["FaImage","_ref","className","size","color","style","React","createElement","_objectSpread","display","alignItems","justifyContent","fontSize","dangerouslySetInnerHTML","__html","FaBold","_ref3","FaItalic","_ref4","FaUnderline","_ref5","FaTextHeight","_ref6","FaAlignCenter","_ref7","FaAlignRight","_ref8","FaAlignLeft","_ref0","FaListOl","_ref1","FaListUl","_ref10","FaFont","_ref12","FaTable","_ref14","FaYoutube","_ref15","FaObjectGroup","_ref16","FaTrash","_ref17","isValidDraftFormat","content","_typeof","blocks","entityMap","draftBlocksToHTML","console","warn","map","b","concat","text","join","Spinner","LabelComponent","children","marginBottom","escapeHtml","str","String","replace","escapeAttr","URL_REGEX","RichTextEditor","onChange","showEditButton","onBlur","_ref$disabled","disabled","_ref$editable","editable","defaultEditable","value","isLoading","_ref$isList","isList","label","_ref$showBorder","showBorder","paddingLeft","minHeight","maxHeight","onImageUpload","editorRef","useRef","fileInputRef","scrollTopRef","_useState","useState","_useState2","_slicedToArray","html","setHtml","_useState3","_useState4","linkModalOpen","setLinkModalOpen","_useState5","_useState6","linkUrl","setLinkUrl","_useState7","_useState8","linkText","setLinkText","selectionRangeRef","_useState9","_useState0","setEditable","_useState1","_useState10","currentListType","setCurrentListType","_useState11","_useState12","isBold","setIsBold","_useState13","_useState14","isItalic","setIsItalic","_useState15","_useState16","isUnderline","setIsUnderline","_useState17","_useState18","currentFontSize","setCurrentFontSize","_useState19","_useState20","currentLineHeight","setCurrentLineHeight","_useState21","_useState22","activeAlign","setActiveAlign","_useState23","_useState24","imageModalOpen","setImageModalOpen","_useState25","_useState26","selectedImageUrl","setSelectedImageUrl","_useState27","_useState28","zoomLevel","setZoomLevel","_useState29","_useState30","isUploading","setIsUploading","_useState31","_useState32","youtubeModalOpen","setYoutubeModalOpen","_useState33","_useState34","youtubeUrl","setYoutubeUrl","_useState35","_useState36","tableModalOpen","setTableModalOpen","_useState37","_useState38","hoveredTable","setHoveredTable","_useState39","_useState40","tableRows","setTableRows","_useState41","_useState42","tableCols","setTableCols","_useState43","_useState44","selectionVersion","setSelectionVersion","_useState45","_useState46","selectedImage","setSelectedImage","_useState47","_useState48","resizeData","setResizeData","openImageModal","url","current","scrollTop","closeImageModal","handleZoomIn","prevZoom","handleZoomOut","Math","max","useEffect","handleKeyDown","e","key","handleWheel","ctrlKey","preventDefault","deltaY","document","addEventListener","window","passive","removeEventListener","handleClick","v","deleteBtn","target","closest","stopPropagation","wrapper","parentNode","removeChild","triggerChange","editor","requestAnimationFrame","processExistingImages","htmlContent","innerHTML","unescapedValue","unescapeHtml","error","useCallback","next","getCleanHtml","detectListType","sel","getSelection","rangeCount","node","anchorNode","nodeName","isParentStyle","_len","arguments","length","tagNames","Array","_key","nodeType","includes","tagName","fontWeight","Number","fontStyle","textDecoration","getAttribute","updateStyleStates","setFontColor","container","computedAlign","getComputedStyle","textAlign","range","getRangeAt","collapsed","computedColor","rgbToHex","queryCommandState","rgb","result","match","slice","x","hex","parseInt","toString","handleSelectionChange","selection","element","startContainer","parentElement","sizeValue","focus","exec","command","undefined","execCommand","_useState49","_useState50","fontColor","handleColorChange","addLink","cloneRange","selectedText","findParentTag","curr","tableAction","action","cell","row","table","newRowAbove","insertRow","rowIndex","i","cells","newCell","insertCell","border","padding","newRowBelow","cellIndex","rows","cellIndexAfter","deleteRow","remove","targetRowIndex","min","targetRow","targetCell","createRange","selectNodeContents","collapse","removeAllRanges","addRange","idx","deleteCell","_table$rows$_rowIndex","targetColIndex","nextElementSibling","nextCell","colSpan","insertTable","cols","tableHtml","j","insertYoutube","trim","regExp","videoId","embedHtml","err","div","appendChild","querySelectorAll","forEach","img","oldWrapper","replaceWith","align","cursor","cssText","setAttribute","dataset","hasDeleteButton","src","pointerEvents","title","onclick","currentTarget","nextSibling","insertBefore","insertImage","_ref2","_asyncToGenerator","_regenerator","m","_callee","dataUrl","fileName","w","_context","n","alt","insertNodeAtCursor","a","_x","_x2","apply","readFileAsDataURL","file","Promise","res","rej","reader","FileReader","onload","ev","onerror","readAsDataURL","handlePaste","clipboardData","items","_loop","item","kind","type","indexOf","getAsFile","uploadPromise","then","finalUrl","mediaUrl","name","_ret","htmlData","getData","tempDiv","el","plainText","htmlToInsert","safeUrl","handleDrop","_callee2","files","imageFiles","_iterator","_step","_loop2","_t","_context3","p","dataTransfer","from","filter","startsWith","_createForOfIteratorHelper","_context2","s","done","d","_regeneratorValues","f","_x3","contains","deleteContents","insertNode","space","createTextNode","setStartAfter","txt","parent","listItem","list","newItem","endOffset","textContent","newRange","newDiv","lastElementChild","setStart","textBefore","substring","startOffset","textAfter","firstChild","metaKey","confirmLink","test","safeText","linkHtml","cancelLink","handleSelect","onLineHeightChange","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","acceptNode","intersectsNode","FILTER_ACCEPT","FILTER_REJECT","blocksToStyle","Set","blockTags","tempRange","nextNode","add","block","lineHeight","common","commonAncestorContainer","newCommon","applyFontSize","sizePx","span","nodesToStyle","push","savedRange","lastInsertedNode","_i5","_nodesToStyle","textNode","isBlockLevel","endContainer","newSpan","setEnd","handleInput","handleImageUpload","_callee3","_context4","_x4","handleEditorClick","clickedLink","open","href","clickedImg","setTimeout","startResize","direction","startX","clientX","startY","clientY","startWidth","offsetWidth","startHeight","offsetHeight","onMouseMove","moveEvent","newWidth","newHeight","width","height","onMouseUp","renderResizeHandles","editorRect","getBoundingClientRect","imgRect","top","left","scrollLeft","handleStyles","position","background","borderRadius","zIndex","handles","id","h","onMouseDown","onClick","onMouseOver","onMouseOut","related","relatedTarget","onDrop","onDragOver","backgroundColor","margin","ref","accept","_fileInputRef$current","click","borderWidth","isCell","isTable","Fragment","marginRight","contentEditable","suppressContentEditableWarning","onInput","onPaste","onDragStart","onKeyDown","_editorRef$current","innerText","cleanText","words","split","chars","placeholder","autoFocus","maxWidth","transform","transition","boxShadow","gap","marginTop"],"mappings":"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","x_google_ignoreList":[4]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/icons.jsx","../src/utils.js","../src/Spinner.jsx","../src/Label.jsx","../node_modules/style-inject/dist/style-inject.es.js","../src/RichTextEditor.jsx"],"sourcesContent":["import React from 'react';\n\nexport const FaImage = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"></path></svg>` }} />\n );\n};\n\nexport const FaArrowDown = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"></path></svg>` }} />\n );\n};\n\nexport const FaBold = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 384 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"></path></svg>` }} />\n );\n};\n\nexport const FaItalic = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 320 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"></path></svg>` }} />\n );\n};\n\nexport const FaUnderline = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaTextHeight = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 576 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignCenter = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignRight = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignJustify = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaAlignLeft = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaListOl = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"></path></svg>` }} />\n );\n};\n\nexport const FaListUl = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"></path></svg>` }} />\n );\n};\n\nexport const FaFonticons = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"></path></svg>` }} />\n );\n};\n\nexport const FaFont = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"></path></svg>` }} />\n );\n};\n\nexport const FaLink = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg>` }} />\n );\n};\n\nexport const FaTable = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M64 448c-35.3 0-64-28.7-64-64V128c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64zm96-288H64v64h96v-64zm0 96H64v64h96v-64zm0 96H64c0 17.7 14.3 32 32 32h64v-32zm128-192h-96v64h96v-64zm0 96h-96v64h96v-64zm0 96h-96v96h96v-96zm160-192h-96v64h96v-64zm0 96h-96v64h96v-64zm0 96h-96v64h64c17.7 0 32-14.3 32-32v-32z\"></path></svg>` }} />\n );\n};\n\nexport const FaYoutube = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 576 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.781 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"></path></svg>` }} />\n );\n};\n\nexport const FaObjectGroup = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M480 320h-48v48c0 17.7-14.3 32-32 32h-48v32c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V160c0-26.5 21.5-48 48-48h32v-48c0-17.7 14.3-32 32-32h48V0h32c26.5 0 48 21.5 48 48v48h48c17.7 0 32 14.3 32 32v48h32c26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48z\"></path></svg>` }} />\n );\n};\n\nexport const FaTrash = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: `<svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 448 512\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"></path></svg>` }} />\n );\n};\n\n\nexport const FaVideo = ({ className, size, color, style }) => {\n return (\n <span className={className} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: size || '1em', color: color || 'inherit', ...style }} dangerouslySetInnerHTML={{ __html: '<svg stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" viewBox=\\\"0 0 576 512\\\" height=\\\"1em\\\" width=\\\"1em\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.3 16.9 28.2V384c0 11.9-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V174.9l14.2-9.5 96-64c9.9-6.6 22.6-7.1 32.9-1.6z\\\"></path></svg>' }} />\n );\n};\n","// Basic ID generator\nexport const getRandomId = () => {\n return (\n Math.random().toString(36).substring(2, 15) +\n Math.random().toString(36).substring(2, 15)\n );\n};\n\n// DraftJS helper stubs\n// Since we are removing specific DraftJS dependencies for this package,\n// these serve as placeholders or basic HTML verifiers.\n\nexport const isValidDraftFormat = (content) => {\n if (typeof content !== \"object\" || content === null) return false;\n return !!(content.blocks && content.entityMap);\n};\n\n// A very basic fallback. Ideally, the user should pass HTML strings.\n// Dealing with full DraftJS->HTML conversion without the library is complex.\n// We assume for this package that if the legacy DraftJS format is passed,\n// the user might need to handle it or we expect HTML primarily.\nexport const draftBlocksToHTML = (content) => {\n console.warn(\n \"draftBlocksToHTML: DraftJS object detected but full conversion is simplified in this package.\",\n );\n // Return empty or try to extract text as a fallback\n if (content && content.blocks) {\n return content.blocks.map((b) => `<p>${b.text}</p>`).join(\"\");\n }\n return \"\";\n};\n","import React from 'react';\n\nconst Spinner = () => {\n return (\n <div className=\"rte-spinner-container\">\n <div className=\"rte-spinner\"></div>\n </div>\n );\n};\n\nexport default Spinner;\n","import React from 'react';\n\nconst LabelComponent = ({ children }) => {\n if (!children) return null;\n return (\n <label className=\"rte-label\" style={{ marginBottom: '4px', display: 'block' }}>\n {children}\n </label>\n );\n};\n\nexport default LabelComponent;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { FaImage, FaBold, FaItalic, FaUnderline, FaTextHeight, FaAlignCenter, FaAlignRight, FaAlignJustify, FaAlignLeft, FaListOl, FaListUl, FaFont, FaTable, FaYoutube, FaVideo, FaTrash, FaObjectGroup } from \"./icons\";\nimport { draftBlocksToHTML, isValidDraftFormat } from \"./utils\";\nimport Spinner from \"./Spinner\";\nimport LabelComponent from \"./Label\";\nimport \"./RichTextEditor.css\";\n\n// Helper functions for HTML escaping\nconst escapeHtml = (str) => {\n if (!str) return \"\";\n return String(str)\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\\\"/g, \"&quot;\")\n .replace(/'/g, \"&#039;\");\n};\n\nconst escapeAttr = (str) => escapeHtml(str).replace(/\"/g, \"&quot;\");\n\n// URL detection regex\nconst URL_REGEX = /(https?:\\/\\/[^\\s]+)/g;\n\nexport default function RichTextEditor({\n onChange,\n showEditButton,\n onBlur,\n disabled = false,\n editable: defaultEditable = false,\n value,\n isLoading,\n isList = false,\n label,\n showBorder = true,\n paddingLeft,\n minHeight,\n maxHeight,\n onImageUpload,\n}) {\n\n if (isLoading) {\n return <Spinner />;\n }\n\n const editorRef = useRef(null);\n const fileInputRef = useRef(null);\n const scrollTopRef = useRef(0);\n\n const [html, setHtml] = useState(\"\");\n const [linkModalOpen, setLinkModalOpen] = useState(false);\n const [linkUrl, setLinkUrl] = useState(\"\");\n const [linkText, setLinkText] = useState(\"\");\n const selectionRangeRef = useRef(null);\n const [editable, setEditable] = useState(defaultEditable);\n\n // NEW: Track current list type for dropdown\n const [currentListType, setCurrentListType] = useState(null);\n\n // NEW: Track active styles for toolbar buttons\n const [isBold, setIsBold] = useState(false);\n const [isItalic, setIsItalic] = useState(false);\n const [isUnderline, setIsUnderline] = useState(false);\n\n // NEW: Track current font size\n const [currentFontSize, setCurrentFontSize] = useState(\"16\");\n\n // NEW: Track current line height\n const [currentLineHeight, setCurrentLineHeight] = useState(\"\");\n const [activeAlign, setActiveAlign] = useState(null);\n\n const [imageModalOpen, setImageModalOpen] = useState(false);\n const [selectedImageUrl, setSelectedImageUrl] = useState(\"\");\n const [zoomLevel, setZoomLevel] = useState(1);\n const [isUploading, setIsUploading] = useState(false);\n\n const [videoModalOpen, setVideoModalOpen] = useState(false);\n const [videoUrl, setVideoUrl] = useState(\"\");\n const [tableModalOpen, setTableModalOpen] = useState(false);\n const [hoveredTable, setHoveredTable] = useState(null);\n const [tableRows, setTableRows] = useState(3);\n const [tableCols, setTableCols] = useState(3);\n const [selectionVersion, setSelectionVersion] = useState(0);\n\n const [selectedImage, setSelectedImage] = useState(null);\n const [resizeData, setResizeData] = useState(null);\n const openImageModal = (url) => {\n if (editorRef.current) {\n scrollTopRef.current = editorRef.current.scrollTop;\n }\n setSelectedImageUrl(url);\n setImageModalOpen(true);\n };\n\n const closeImageModal = () => {\n setImageModalOpen(false);\n setSelectedImageUrl(\"\");\n setZoomLevel(1);\n };\n\n const saveSelection = () => {\n if (typeof window === \"undefined\") return;\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0) {\n selectionRangeRef.current = sel.getRangeAt(0).cloneRange();\n }\n };\n\n const handleKeyUp = () => {\n saveSelection();\n setSelectionVersion(v => v + 1);\n };\n\n const handleZoomIn = () => {\n setZoomLevel((prevZoom) => prevZoom + 0.1);\n };\n\n const handleZoomOut = () => {\n setZoomLevel((prevZoom) => Math.max(0.1, prevZoom - 0.1));\n };\n\n // Effect to restore scroll position after modal closes\n useEffect(() => {\n if (!imageModalOpen && editorRef.current) {\n editorRef.current.scrollTop = scrollTopRef.current;\n }\n }, [imageModalOpen]);\n\n useEffect(() => {\n if (!imageModalOpen) return;\n\n const handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n closeImageModal();\n }\n };\n\n const handleWheel = (e) => {\n if (e.ctrlKey) {\n e.preventDefault();\n if (e.deltaY < 0) {\n handleZoomIn();\n } else {\n handleZoomOut();\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n window.addEventListener('wheel', handleWheel, { passive: false });\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('wheel', handleWheel);\n };\n }, [imageModalOpen]);\n\n useEffect(() => {\n const handleClick = (e) => {\n // Trigger selection update for toolbar reactivity\n setSelectionVersion(v => v + 1);\n\n const deleteBtn = e.target.closest('button[title=\"Remove image\"]');\n if (deleteBtn && editable) {\n e.preventDefault();\n e.stopPropagation();\n const wrapper = deleteBtn.closest('.image-container');\n if (wrapper && wrapper.parentNode) {\n wrapper.parentNode.removeChild(wrapper);\n triggerChange();\n }\n }\n };\n\n const editor = editorRef.current;\n if (editor) {\n editor.addEventListener('click', handleClick);\n return () => {\n editor.removeEventListener('click', handleClick);\n };\n }\n }, [editable]);\n\n useEffect(() => {\n if (editorRef.current && value) {\n requestAnimationFrame(() => processExistingImages(editorRef.current));\n }\n }, [value]);\n\n // Runs whenever editable changes (toggles delete icon visibility)\n useEffect(() => {\n processExistingImages(editorRef.current, editable);\n }, [html, editable]);\n useEffect(() => {\n // Only update if value is a string and different from current html\n if (value) {\n try {\n // Check if value is a Draft.js content state (either stringified or object)\n if (value && isValidDraftFormat(value)) {\n const htmlContent = draftBlocksToHTML(value);\n setHtml(htmlContent);\n if (editorRef.current) {\n editorRef.current.innerHTML = htmlContent;\n }\n } else if (typeof value === 'string') {\n // Unescape HTML entities before setting the content\n const unescapedValue = unescapeHtml(value);\n setHtml(unescapedValue);\n if (editorRef.current) {\n editorRef.current.innerHTML = unescapedValue || '';\n }\n }\n } catch (e) {\n console.error('Error processing editor content:', e);\n // Fallback to raw value if parsing fails\n const unescapedValue = typeof value === 'string' ? unescapeHtml(value) : value;\n setHtml(unescapedValue);\n if (editorRef.current) {\n editorRef.current.innerHTML = unescapedValue || '';\n }\n }\n } else {\n setHtml('');\n if (editorRef.current) {\n editorRef.current.innerHTML = '';\n }\n }\n }, [!isList]);\n\n // Call onChange whenever html state updates\n useEffect(() => {\n onChange && onChange(html);\n }, [html, onChange]);\n // Trigger change manually\n const triggerChange = useCallback(() => {\n const next = getCleanHtml();\n setHtml(next);\n }, []);\n\n const handleChange = () => {\n if (!editorRef.current) return;\n\n // Clone editor content\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = editorRef.current.innerHTML;\n\n // Remove delete buttons from the clone\n tempDiv.querySelectorAll('button[title=\"Remove image\"]').forEach(btn => btn.remove());\n\n // Send cleaned HTML to onBlur\n onBlur && onBlur(tempDiv.innerHTML);\n };\n\n // Detect if selection is inside a list (ol or ul)\n const detectListType = () => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) {\n setCurrentListType(null);\n return;\n }\n let node = sel.anchorNode;\n while (node && node !== editorRef.current) {\n if (node.nodeName === \"OL\") {\n setCurrentListType(\"ordered\");\n return;\n }\n if (node.nodeName === \"UL\") {\n setCurrentListType(\"unordered\");\n return;\n }\n node = node.parentNode;\n }\n setCurrentListType(null);\n };\n\n // Helper to walk up DOM to find style tags or CSS style:\n const isParentStyle = (node, ...tagNames) => {\n while (node && node !== editorRef.current) {\n if (node.nodeType === 1 && tagNames.includes(node.tagName)) return true;\n\n // Also check inline style for bold and italic:\n if (node.nodeType === 1 && node.style) {\n const style = node.style;\n if (\n tagNames.includes(\"bold\") &&\n (style.fontWeight === \"bold\" || Number(style.fontWeight) >= 600)\n )\n return true;\n if (tagNames.includes(\"italic\") && style.fontStyle === \"italic\")\n return true;\n if (\n tagNames.includes(\"underline\") &&\n style.textDecoration.includes(\"underline\")\n )\n return true;\n\n if (node.style && node.style.color) {\n return node.style.color;\n }\n\n // 2️⃣ Check for <font color=\"\"> (older HTML)\n if (node.tagName === \"FONT\" && node.getAttribute(\"color\")) {\n return node.getAttribute(\"color\");\n }\n }\n node = node.parentNode;\n }\n return false;\n };\n\n // Update style states based on selection or cursor position\n const updateStyleStates = () => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) {\n setIsBold(false);\n setIsItalic(false);\n setIsUnderline(false);\n setFontColor(\"#000000\"); // default\n return;\n }\n const container =\n sel.anchorNode.nodeType === 3\n ? sel.anchorNode.parentNode\n : sel.anchorNode;\n\n const computedAlign = window.getComputedStyle(container).textAlign;\n setActiveAlign(computedAlign);\n const range = sel.getRangeAt(0);\n\n if (range.collapsed) {\n // Cursor only, check parent nodes\n const container =\n sel.anchorNode.nodeType === 3\n ? sel.anchorNode.parentNode\n : sel.anchorNode;\n const computedStyles = window.getComputedStyle(container);\n setIsBold(isParentStyle(container, \"B\", \"STRONG\", \"bold\"));\n setIsItalic(isParentStyle(container, \"I\", \"EM\", \"italic\"));\n setIsUnderline(isParentStyle(container, \"U\", \"underline\"));\n\n // ✅ Get computed color from container\n const computedColor = window.getComputedStyle(container).color;\n setFontColor(rgbToHex(computedColor));\n\n } else {\n // Text selected, use execCommand state\n setIsBold(document.queryCommandState(\"bold\"));\n setIsItalic(document.queryCommandState(\"italic\"));\n setIsUnderline(document.queryCommandState(\"underline\"));\n\n // ✅ For selection, get color from selection's start container\n const container =\n sel.anchorNode.nodeType === 3\n ? sel.anchorNode.parentNode\n : sel.anchorNode;\n\n const computedColor = window.getComputedStyle(container).color;\n setFontColor(rgbToHex(computedColor));\n }\n };\n\n // Helper to convert rgb() to hex\n function rgbToHex(rgb) {\n const result = rgb.match(/\\d+/g);\n if (!result) return \"#000000\";\n return (\n \"#\" +\n result\n .slice(0, 3)\n .map((x) => {\n const hex = parseInt(x, 10).toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n })\n .join(\"\")\n );\n }\n\n\n // Listen for selection changes globally to update styles and list type\n useEffect(() => {\n document.addEventListener(\"selectionchange\", detectListType);\n document.addEventListener(\"selectionchange\", updateStyleStates);\n\n const handleSelectionChange = () => {\n const selection = window.getSelection();\n if (!selection.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n const element = range.startContainer.parentElement.closest('[style*=\"font-size\"]');\n\n if (element) {\n const fontSize = window.getComputedStyle(element).fontSize;\n const sizeValue = fontSize ? parseInt(fontSize) : 16;\n setCurrentFontSize(sizeValue.toString());\n } else {\n setCurrentFontSize(\"16\"); // Default size\n }\n };\n\n document.addEventListener('selectionchange', handleSelectionChange);\n return () => {\n document.removeEventListener(\"selectionchange\", detectListType);\n document.removeEventListener(\"selectionchange\", updateStyleStates);\n document.removeEventListener('selectionchange', handleSelectionChange);\n };\n }, []);\n\n const focus = () => editorRef.current && editorRef.current.focus();\n\n const exec = (command, value = null) => {\n document.execCommand(command, false, value);\n triggerChange();\n focus();\n };\n\n const [fontColor, setFontColor] = useState(\"#000000\");\n\n const handleColorChange = (color) => {\n setFontColor(color);\n exec(\"foreColor\", color);\n };\n\n const addLink = () => {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n\n selectionRangeRef.current = sel.getRangeAt(0).cloneRange();\n\n const selectedText = sel.toString();\n\n if (selectedText.length > 0) {\n setLinkText(selectedText);\n setLinkUrl(\"\");\n setLinkModalOpen(true);\n } else {\n setLinkText(\"\");\n setLinkUrl(\"\");\n setLinkModalOpen(true);\n }\n };\n\n const findParentTag = (node, tagName) => {\n if (!node) return null;\n let curr = node;\n while (curr && curr !== editorRef.current) {\n if (curr.tagName === tagName) return curr;\n curr = curr.parentNode;\n }\n return null;\n };\n\n const tableAction = (action) => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) return;\n \n const cell = findParentTag(sel.anchorNode, 'TD') || findParentTag(sel.anchorNode, 'TH');\n if (!cell) return;\n \n const row = cell.parentNode;\n const table = row.parentNode.closest('table');\n \n switch (action) {\n case 'addRowAbove':\n const newRowAbove = table.insertRow(row.rowIndex);\n for (let i = 0; i < row.cells.length; i++) {\n const newCell = newRowAbove.insertCell(i);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'addRowBelow':\n const newRowBelow = table.insertRow(row.rowIndex + 1);\n for (let i = 0; i < row.cells.length; i++) {\n const newCell = newRowBelow.insertCell(i);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'addColBefore':\n const cellIndex = cell.cellIndex;\n for (let i = 0; i < table.rows.length; i++) {\n const newCell = table.rows[i].insertCell(cellIndex);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'addColAfter':\n const cellIndexAfter = cell.cellIndex + 1;\n for (let i = 0; i < table.rows.length; i++) {\n const newCell = table.rows[i].insertCell(cellIndexAfter);\n newCell.style.border = \"1px solid #e5e7eb\";\n newCell.style.padding = \"12px\";\n newCell.innerHTML = \"&nbsp;\";\n }\n break;\n case 'deleteRow': {\n const rowIndex = row.rowIndex;\n const cellIndex = cell.cellIndex;\n table.deleteRow(rowIndex);\n if (table.rows.length === 0) {\n table.remove();\n } else {\n const targetRowIndex = Math.min(rowIndex, table.rows.length - 1);\n const targetRow = table.rows[targetRowIndex];\n const targetCell = targetRow.cells[Math.min(cellIndex, targetRow.cells.length - 1)];\n if (targetCell) {\n const range = document.createRange();\n range.selectNodeContents(targetCell);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n setSelectionVersion(v => v + 1);\n }\n }\n break;\n }\n case 'deleteCol': {\n const idx = cell.cellIndex;\n const rowIndex = row.rowIndex;\n for (let i = 0; i < table.rows.length; i++) {\n table.rows[i].deleteCell(idx);\n }\n if (table.rows[0].cells.length === 0) {\n table.remove();\n } else {\n const targetColIndex = Math.min(idx, table.rows[0].cells.length - 1);\n const targetCell = table.rows[rowIndex]?.cells[targetColIndex] || table.rows[0].cells[targetColIndex];\n if (targetCell) {\n const range = document.createRange();\n range.selectNodeContents(targetCell);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n setSelectionVersion(v => v + 1);\n }\n }\n break;\n }\n case 'mergeRight':\n if (cell.nextElementSibling) {\n const nextCell = cell.nextElementSibling;\n cell.colSpan = (cell.colSpan || 1) + (nextCell.colSpan || 1);\n nextCell.remove();\n }\n break;\n case 'deleteTable':\n table.remove();\n break;\n default:\n break;\n }\n triggerChange && triggerChange();\n };\n\n const insertTable = () => {\n const rows = parseInt(tableRows) || 3;\n const cols = parseInt(tableCols) || 3;\n let tableHtml = '<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #e5e7eb; margin: 16px 0;\"><tbody>';\n for (let i = 0; i < rows; i++) {\n tableHtml += '<tr>';\n for (let j = 0; j < cols; j++) {\n tableHtml += '<td style=\"border: 1px solid #e5e7eb; padding: 12px; min-height: 20px;\">&nbsp;</td>';\n }\n tableHtml += '</tr>';\n }\n tableHtml += '</tbody></table><p>&nbsp;</p>';\n \n if (selectionRangeRef.current) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selectionRangeRef.current);\n }\n\n document.execCommand(\"insertHTML\", false, tableHtml);\n setTableModalOpen(false);\n triggerChange && triggerChange();\n };\n\n const parseVideoUrl = (url) => {\n url = url.trim();\n if (!url) return null;\n\n // YouTube\n const ytRegExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|watch\\?vi=|\\&vi=)([^#\\&\\?]*).*/;\n const ytMatch = url.match(ytRegExp);\n if (ytMatch && ytMatch[2].length === 11) {\n return `https://www.youtube.com/embed/${ytMatch[2]}`;\n }\n\n // Vimeo\n const vimeoRegExp = /vimeo\\.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)/;\n const vimeoMatch = url.match(vimeoRegExp);\n if (vimeoMatch && vimeoMatch[3]) {\n return `https://player.vimeo.com/video/${vimeoMatch[3]}`;\n }\n\n // DailyMotion\n const dmRegExp = /dailymotion\\.com\\/video\\/([a-zA-Z0-9]+)/;\n const dmMatch = url.match(dmRegExp);\n if (dmMatch && dmMatch[1]) {\n return `https://www.dailymotion.com/embed/video/${dmMatch[1]}`;\n }\n\n return null;\n };\n\n const insertVideo = () => {\n const embedUrl = parseVideoUrl(videoUrl);\n\n if (embedUrl) {\n if (editorRef.current) {\n editorRef.current.focus();\n }\n\n if (selectionRangeRef.current) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selectionRangeRef.current);\n }\n\n const embedHtml = `<div class=\"video-container\">\n <iframe \n src=\"${embedUrl}\" \n frameborder=\"0\" \n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" \n allowfullscreen\n ></iframe>\n </div><p>&nbsp;</p>`;\n \n try {\n document.execCommand(\"insertHTML\", false, embedHtml);\n } catch (err) {\n console.error(\"Failed to insert Video HTML:\", err);\n if (editorRef.current) {\n const div = document.createElement('div');\n div.innerHTML = embedHtml;\n editorRef.current.appendChild(div);\n }\n }\n setVideoModalOpen(false);\n setVideoUrl(\"\");\n triggerChange && triggerChange();\n } else {\n console.warn(\"Invalid Video URL or Platform not supported\");\n }\n };\n\n\n const onFileInput = (e) => {\n const file = e.target.files && e.target.files[0];\n if (!file) return;\n readFileAsDataURL(file).then((dataUrl) => {\n insertImage(dataUrl, file.name);\n });\n e.target.value = null;\n };\n\n const processExistingImages = (container) => {\n if (!container) return;\n\n container.querySelectorAll(\"img\").forEach((img) => {\n // REMOVE the old wrapper if it exists so we can re-add\n const oldWrapper = img.closest(\".image-container\");\n if (oldWrapper) {\n oldWrapper.replaceWith(img); // unwrap\n }\n\n const wrapper = document.createElement(\"div\");\n const align = img.getAttribute('data-align') || 'center';\n wrapper.className = `image-container image-align-${align}`;\n wrapper.style.cursor = editable ? 'pointer' : 'default';\n\n img.className = \"rte-image\";\n img.style.cssText = \"\"; // Reset inline styles\n img.setAttribute('data-align', align);\n img.dataset.hasDeleteButton = \"true\";\n\n // Add click listener to open modal\n img.addEventListener(\"click\", () => openImageModal(img.src));\n\n const deleteBtn = document.createElement(\"button\");\n deleteBtn.innerHTML = \"×\";\n deleteBtn.className = \"image-delete-button\";\n deleteBtn.style.display = editable ? 'flex' : 'none';\n deleteBtn.style.pointerEvents = editable ? 'auto' : 'none';\n deleteBtn.title = \"Remove image\";\n\n deleteBtn.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const wrapper = e.currentTarget.closest(\".image-container\");\n if (wrapper && wrapper.parentNode) {\n wrapper.parentNode.removeChild(wrapper);\n triggerChange && triggerChange();\n }\n };\n\n const { parentNode, nextSibling } = img;\n if (parentNode) {\n parentNode.removeChild(img);\n wrapper.appendChild(img);\n wrapper.appendChild(deleteBtn);\n\n if (nextSibling) {\n parentNode.insertBefore(wrapper, nextSibling);\n } else {\n parentNode.appendChild(wrapper);\n }\n }\n });\n };\n\n useEffect(() => {\n if (editorRef.current && value) {\n requestAnimationFrame(() => processExistingImages(editorRef.current));\n }\n }, [value]);\n\n const insertImage = async (dataUrl, fileName) => {\n try {\n if (editable) {\n\n // Create container for the image\n const container = document.createElement('div');\n container.className = 'image-container';\n\n // Create image element\n const img = document.createElement('img');\n img.src = dataUrl;\n img.alt = fileName || \"image\";\n img.addEventListener(\"click\", () => openImageModal(dataUrl));\n\n // Add elements to container\n container.appendChild(img);\n\n // Insert at cursor position\n insertNodeAtCursor(container);\n triggerChange();\n\n // Immediately process newly inserted image so delete button appears\n requestAnimationFrame(() => {\n processExistingImages(editorRef.current);\n });\n }\n } catch (err) {\n console.error('Error inserting image:', err);\n }\n };\n\n const readFileAsDataURL = (file) =>\n new Promise((res, rej) => {\n const reader = new FileReader();\n reader.onload = (ev) => res(ev.target.result);\n reader.onerror = rej;\n reader.readAsDataURL(file);\n });\n\n // NEW: Function to auto-convert URLs to links\n const autoConvertUrlsToLinks = (html) => {\n return html.replace(URL_REGEX, (url) => {\n const safeUrl = escapeAttr(url);\n return `<a href=\"${safeUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: blue;\">${url}</a>`;\n });\n };\n\n const handlePaste = useCallback((e) => {\n const clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData) return;\n\n // Check for image in clipboard\n const items = clipboardData.items || [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n e.preventDefault();\n const file = item.getAsFile();\n if (file) {\n setIsUploading(true);\n const uploadPromise = onImageUpload\n ? onImageUpload(file)\n : readFileAsDataURL(file);\n\n uploadPromise.then((url) => {\n if (url) {\n // if the user's onImageUpload resolves to `{ mediaUrl: '...' }` like the previous MediaUpload, handle it\n const finalUrl = typeof url === 'object' && url !== null && url.mediaUrl ? url.mediaUrl : url;\n insertImage(finalUrl, file.name || 'pasted-image');\n }\n setIsUploading(false);\n }).catch((error) => {\n console.error('Error uploading pasted image:', error);\n setIsUploading(false);\n });\n }\n return;\n }\n }\n\n const htmlData = clipboardData.getData('text/html');\n if (htmlData && htmlData.trim()) {\n e.preventDefault();\n\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = htmlData;\n\n tempDiv.querySelectorAll('script, meta, link').forEach(el => el.remove());\n\n document.execCommand('styleWithCSS', false, true);\n document.execCommand('insertHTML', false, tempDiv.innerHTML);\n document.execCommand('styleWithCSS', false, false);\n\n triggerChange();\n focus();\n return;\n }\n\n const plainText = clipboardData.getData('text/plain');\n if (plainText) {\n e.preventDefault();\n\n let htmlToInsert = escapeHtml(plainText);\n\n htmlToInsert = htmlToInsert.replace(URL_REGEX, (url) => {\n const safeUrl = escapeAttr(url.trim());\n return `<a href=\"${safeUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: blue; text-decoration: underline;\">${escapeHtml(url)}</a>`;\n });\n\n htmlToInsert = htmlToInsert.replace(/\\n/g, '<br>');\n\n document.execCommand('insertHTML', false, htmlToInsert);\n triggerChange();\n focus();\n }\n }, [insertImage, triggerChange]);\n\n const handleDrop = async (e) => {\n if (!editable) return;\n e.preventDefault();\n e.stopPropagation();\n\n const files = e.dataTransfer.files;\n if (!files || files.length === 0) return;\n\n const imageFiles = Array.from(files).filter(file => file.type.startsWith(\"image/\"));\n\n for (const file of imageFiles) {\n try {\n setIsUploading(true);\n const uploadPromise = onImageUpload\n ? onImageUpload(file)\n : readFileAsDataURL(file);\n\n uploadPromise.then((url) => {\n if (url) {\n const finalUrl = typeof url === 'object' && url !== null && url.mediaUrl ? url.mediaUrl : url;\n insertImage(finalUrl, file.name);\n }\n setIsUploading(false);\n }).catch((error) => {\n console.error('Error processing image:', error);\n setIsUploading(false);\n });\n } catch (error) {\n console.error('Error processing image:', error);\n setIsUploading(false);\n }\n }\n };\n\n const insertNodeAtCursor = (node) => {\n try {\n const sel = window.getSelection();\n let range;\n\n if (!sel || sel.rangeCount === 0 || !editorRef.current.contains(sel.anchorNode)) {\n editorRef.current.focus();\n \n // Move cursor to end if not already in editor\n range = document.createRange();\n range.selectNodeContents(editorRef.current);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n } else {\n range = sel.getRangeAt(0);\n }\n\n range.deleteContents();\n range.insertNode(node);\n \n const space = document.createTextNode(\"\\u00A0\");\n if (node.parentNode) {\n node.parentNode.insertBefore(space, node.nextSibling);\n }\n \n range.setStartAfter(space);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n } catch (error) {\n console.error(\"Insertion error:\", error);\n if (editorRef.current) {\n editorRef.current.appendChild(node);\n }\n }\n };\n\n const getCleanHtml = () => {\n if (!editorRef.current) return \"\";\n return editorRef.current.innerHTML;\n };\n\n // Helper function to unescape HTML entities\n const unescapeHtml = (html) => {\n if (!html) return '';\n const txt = document.createElement(\"textarea\");\n txt.innerHTML = html;\n return txt.value;\n };\n\n const handleKeyDown = useCallback((e) => {\n // Handle Enter key\n if (e.key === 'Enter') {\n e.preventDefault();\n\n const selection = window.getSelection();\n if (!selection.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n const node = range.startContainer;\n const parent = node.nodeType === 3 ? node.parentNode : node;\n\n // Check if we're in a list item\n const listItem = parent.closest('li');\n if (listItem) {\n const list = listItem.parentNode;\n const isOrderedList = list.tagName === 'OL';\n\n // Create a new list item\n const newItem = document.createElement('li');\n\n // If we're at the end of a list item, add a new one\n if (range.collapsed && range.endOffset === node.length) {\n // If it's empty, create a regular paragraph instead\n if (listItem.textContent.trim() === '') {\n document.execCommand('insertHTML', false, '<div><br></div>');\n // Move the cursor to the new line\n const newRange = document.createRange();\n const newDiv = editorRef.current.lastElementChild;\n newRange.setStart(newDiv, 0);\n newRange.collapse(true);\n selection.removeAllRanges();\n selection.addRange(newRange);\n return;\n }\n\n // Insert new list item\n if (listItem.nextSibling) {\n list.insertBefore(newItem, listItem.nextSibling);\n } else {\n list.appendChild(newItem);\n }\n\n // Move cursor to the new list item\n const newRange = document.createRange();\n newRange.setStart(newItem, 0);\n newRange.collapse(true);\n selection.removeAllRanges();\n selection.addRange(newRange);\n } else {\n // If we're in the middle of text, split the list item\n const textBefore = node.textContent.substring(0, range.startOffset);\n const textAfter = node.textContent.substring(range.startOffset);\n\n // Update current item\n node.textContent = textBefore;\n\n // Insert new item after current one\n newItem.textContent = textAfter;\n\n if (listItem.nextSibling) {\n list.insertBefore(newItem, listItem.nextSibling);\n } else {\n list.appendChild(newItem);\n }\n\n // Move cursor to the new list item\n const newRange = document.createRange();\n newRange.setStart(newItem.firstChild || newItem, 0);\n newRange.collapse(true);\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n } else {\n // Regular text, insert a new paragraph\n document.execCommand('insertHTML', false, '<div><br></div>');\n }\n\n triggerChange();\n return;\n }\n\n // Handle Ctrl/Cmd + B/I/U for bold/italic/underline\n if ((e.ctrlKey || e.metaKey) && e.key === \"b\") {\n e.preventDefault();\n exec(\"bold\");\n } else if ((e.ctrlKey || e.metaKey) && e.key === \"i\") {\n e.preventDefault();\n exec(\"italic\");\n } else if ((e.ctrlKey || e.metaKey) && e.key === \"u\") {\n e.preventDefault();\n exec(\"underline\");\n }\n }, [exec, triggerChange]);\n\n const confirmLink = () => {\n // Add protocol if missing\n let url = linkUrl.trim();\n if (url && !/^(https?:\\/\\/|mailto:|tel:)/i.test(url)) {\n url = `https://${url}`;\n }\n\n const safeUrl = escapeAttr(url);\n const safeText = escapeHtml(linkText || linkUrl);\n\n const sel = window.getSelection();\n sel.removeAllRanges();\n if (selectionRangeRef.current) {\n sel.addRange(selectionRangeRef.current);\n }\n\n const linkHtml = `<a href=\"${safeUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: blue;\">${safeText}</a>`;\n document.execCommand(\"insertHTML\", false, linkHtml);\n\n setLinkModalOpen(false);\n triggerChange();\n focus();\n selectionRangeRef.current = null;\n };\n\n const cancelLink = () => {\n setLinkModalOpen(false);\n selectionRangeRef.current = null;\n };\n\n const handleSelect = (type) => {\n exec(type === \"unordered\" ? \"insertUnorderedList\" : \"insertOrderedList\");\n };\n\n const onLineHeightChange = (value) => {\n if (!value) return;\n\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) return;\n\n const range = sel.getRangeAt(0);\n const editor = editorRef.current;\n if (!editor) return;\n\n const walker = document.createTreeWalker(\n editor,\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n return range.intersectsNode(node)\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT;\n },\n },\n false\n );\n\n let node;\n const blocksToStyle = new Set();\n const blockTags = ['P', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'BLOCKQUOTE'];\n\n const tempRange = range.cloneRange();\n\n while ((node = walker.nextNode())) {\n if (node.nodeType === 1 && blockTags.includes(node.tagName)) {\n blocksToStyle.add(node);\n } else if (node.nodeType === 3) {\n let parent = node.parentNode;\n while (parent && parent !== editor && !blockTags.includes(parent.tagName)) {\n parent = parent.parentNode;\n }\n if (parent && parent !== editor && blockTags.includes(parent.tagName)) {\n blocksToStyle.add(parent);\n }\n }\n }\n\n if (blocksToStyle.size > 0) {\n blocksToStyle.forEach(block => {\n block.style.lineHeight = value;\n });\n } else {\n let common = range.commonAncestorContainer;\n if (common.nodeType === 3) common = common.parentNode;\n\n while (common && common !== editor && !blockTags.includes(common.tagName)) {\n common = common.parentNode;\n }\n\n if (common && common !== editor) {\n common.style.lineHeight = value;\n } else if (editor) {\n document.execCommand('formatBlock', false, 'div');\n let newCommon = window.getSelection().getRangeAt(0).commonAncestorContainer;\n if (newCommon.nodeType === 3) newCommon = newCommon.parentNode;\n if (newCommon && newCommon !== editor) {\n newCommon.style.lineHeight = value;\n }\n }\n }\n\n try {\n sel.removeAllRanges();\n sel.addRange(tempRange);\n } catch (e) { }\n\n setCurrentLineHeight(value);\n triggerChange();\n focus();\n };\n\n const applyFontSize = (size) => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) return;\n\n const range = sel.getRangeAt(0);\n const sizePx = `${size}px`;\n\n // Collapsed selection (cursor only): insert a styled zero-width span\n if (range.collapsed) {\n const span = document.createElement(\"span\");\n span.style.fontSize = sizePx;\n span.appendChild(document.createTextNode(\"\\u200B\"));\n range.insertNode(span);\n\n const newRange = document.createRange();\n newRange.setStart(span.firstChild, 1);\n newRange.collapse(true);\n sel.removeAllRanges();\n sel.addRange(newRange);\n\n triggerChange();\n focus();\n return;\n }\n\n // Extended selection (highlighted text)\n try {\n const editor = editorRef.current;\n if (!editor) return;\n\n // We will iterate through all the text nodes in the selection\n const walker = document.createTreeWalker(\n editor,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n return range.intersectsNode(node)\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT;\n },\n },\n false\n );\n\n let node;\n const nodesToStyle = [];\n while ((node = walker.nextNode())) {\n nodesToStyle.push(node);\n }\n\n const savedRange = range.cloneRange();\n let lastInsertedNode = null;\n\n // Iterate through the selected text nodes and wrap them in spans\n for (const textNode of nodesToStyle) {\n const parent = textNode.parentNode;\n\n // This is important: check if the parent is a block-level element\n // like a list item or paragraph. If so, we want to style the block\n // itself to avoid breaking its structure.\n const isBlockLevel = ['P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'BLOCKQUOTE'].includes(parent.tagName);\n\n if (isBlockLevel) {\n parent.style.fontSize = sizePx;\n } else {\n // For inline text, wrap the selected portion in a new span\n const startOffset = textNode === savedRange.startContainer ? savedRange.startOffset : 0;\n const endOffset = textNode === savedRange.endContainer ? savedRange.endOffset : textNode.length;\n\n const newSpan = document.createElement(\"span\");\n newSpan.style.fontSize = sizePx;\n newSpan.textContent = textNode.textContent.substring(startOffset, endOffset);\n\n const tempRange = document.createRange();\n tempRange.setStart(textNode, startOffset);\n tempRange.setEnd(textNode, endOffset);\n\n tempRange.deleteContents();\n tempRange.insertNode(newSpan);\n lastInsertedNode = newSpan;\n }\n }\n\n // After styling, we need to correctly position the cursor\n if (lastInsertedNode) {\n const newRange = document.createRange();\n newRange.setStartAfter(lastInsertedNode);\n newRange.collapse(true);\n sel.removeAllRanges();\n sel.addRange(newRange);\n } else {\n // If no nodes were wrapped (e.g., we styled a block), restore the original selection\n sel.removeAllRanges();\n sel.addRange(savedRange);\n }\n\n } catch (err) {\n console.error(\"Error applying font size:\", err);\n }\n\n triggerChange();\n focus();\n };\n const handleInput = useCallback(() => {\n if (onChange && editorRef.current) {\n const html = editorRef.current.innerHTML;\n setHtml(html);\n onChange(html);\n }\n }, [onChange]);\n\n const handleImageUpload = async (e) => {\n const file = e.target.files[0];\n if (!file) return;\n\n try {\n setIsUploading(true);\n const uploadPromise = onImageUpload\n ? onImageUpload(file)\n : readFileAsDataURL(file);\n\n uploadPromise.then((url) => {\n if (url) {\n const finalUrl = typeof url === 'object' && url !== null && url.mediaUrl ? url.mediaUrl : url;\n insertImage(finalUrl, file.name);\n }\n setIsUploading(false);\n e.target.value = null;\n }).catch((error) => {\n console.error('Error uploading image:', error);\n setIsUploading(false);\n });\n } catch (error) {\n console.error('Error uploading image:', error);\n setIsUploading(false);\n }\n };\n useEffect(() => {\n // If disabled is explicitly false, make sure the editor is not editable\n if (disabled === true) {\n setEditable(false);\n }\n }, [disabled]);\n\n const handleEditorClick = useCallback((e) => {\n setSelectionVersion(v => v + 1);\n // Check if the click is on a link\n const clickedLink = e.target.closest('a');\n\n if (clickedLink) {\n e.preventDefault();\n e.stopPropagation();\n window.open(clickedLink.href, '_blank');\n return;\n }\n\n // NEW: Check if click is on an image for resizing\n const clickedImg = e.target.closest('img');\n if (clickedImg && !clickedImg.closest('.rte-modal')) {\n setSelectedImage(clickedImg);\n setResizeData({});\n } else if (!e.target.closest('.resize-handle')) {\n setSelectedImage(null);\n }\n\n // If disabled is true, prevent editing\n if (disabled === true) {\n e.preventDefault();\n return;\n }\n\n // Only allow setting editable to true if not disabled\n if (!editable && disabled !== true) {\n setEditable(true);\n setTimeout(() => {\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, 0);\n }\n }, [editable, disabled]);\n\n const startResize = (e, direction) => {\n e.preventDefault();\n e.stopPropagation();\n const img = selectedImage;\n const startX = e.clientX;\n const startY = e.clientY;\n const startWidth = img.offsetWidth;\n const startHeight = img.offsetHeight;\n\n const onMouseMove = (moveEvent) => {\n let newWidth = startWidth;\n let newHeight = startHeight;\n\n if (direction.includes('e')) newWidth = startWidth + (moveEvent.clientX - startX);\n if (direction.includes('w')) newWidth = startWidth - (moveEvent.clientX - startX);\n if (direction.includes('s')) newHeight = startHeight + (moveEvent.clientY - startY);\n if (direction.includes('n')) newHeight = startHeight - (moveEvent.clientY - startY);\n\n img.style.width = `${newWidth}px`;\n img.style.height = `${newHeight}px`;\n setResizeData({}); // Force re-render of handles\n };\n\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n triggerChange();\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n const renderResizeHandles = () => {\n if (!selectedImage || !editorRef.current) return null;\n \n const editorRect = editorRef.current.getBoundingClientRect();\n const imgRect = selectedImage.getBoundingClientRect();\n \n // Relative position within editorRef using the more robust BoundingClientRect\n const top = imgRect.top - editorRect.top + editorRef.current.scrollTop;\n const left = imgRect.left - editorRect.left + editorRef.current.scrollLeft;\n const width = imgRect.width;\n const height = imgRect.height;\n\n const handleStyles = {\n position: 'absolute',\n width: '10px',\n height: '10px',\n background: '#3b82f6',\n border: '2px solid white',\n borderRadius: '50%',\n zIndex: 100,\n };\n\n const handles = [\n { id: 'nw', style: { top: top - 5, left: left - 5, cursor: 'nw-resize' } },\n { id: 'ne', style: { top: top - 5, left: left + width - 5, cursor: 'ne-resize' } },\n { id: 'sw', style: { top: top + height - 5, left: left - 5, cursor: 'sw-resize' } },\n { id: 'se', style: { top: top + height - 5, left: left + width - 5, cursor: 'se-resize' } },\n ];\n\n return (\n <div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', pointerEvents: 'none' }}>\n <div style={{ position: 'absolute', top, left, width, height, border: '2px solid #3b82f6', pointerEvents: 'none' }} />\n {handles.map(h => (\n <div\n key={h.id}\n className=\"resize-handle\"\n onMouseDown={(e) => startResize(e, h.id)}\n style={{ ...handleStyles, ...h.style, pointerEvents: 'auto' }}\n />\n ))}\n </div>\n );\n };\n\n \n\n return (\n <div className=\"rte-main-wrapper\" style={{ width: '100%', position: 'relative' }}>\n {label && <LabelComponent>{label}</LabelComponent>}\n <div\n style={{ position: 'relative' }}\n className={!showBorder ? \"\" : \"rte-container\"}\n onClick={handleEditorClick}\n onMouseOver={(e) => {\n const table = e.target.closest('table');\n if (table && editorRef.current.contains(table)) {\n setHoveredTable(table);\n }\n }}\n onMouseOut={(e) => {\n const table = e.target.closest('table');\n const related = e.relatedTarget;\n if (table && (!related || !table.contains(related)) && !related?.closest('.rte-table-delete-hover')) {\n setHoveredTable(null);\n }\n }}\n onDrop={handleDrop}\n onDragOver={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {/* Toolbar */}\n <div className=\"rte-toolbar\">\n {/* Bold */}\n <button\n type=\"button\"\n title=\"Bold\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n document.execCommand(\"bold\");\n handleInput();\n focus();\n }}\n className={`rte-toolbar-button ${isBold ? \"active\" : \"\"}`}\n >\n <FaBold size={14} />\n </button>\n\n {/* Italic */}\n <button\n type=\"button\"\n title=\"Italic\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n document.execCommand(\"italic\");\n handleInput();\n focus();\n }}\n className={`rte-toolbar-button ${isItalic ? \"active\" : \"\"}`}\n >\n <FaItalic size={14} />\n </button>\n\n {/* Underline */}\n <button\n type=\"button\"\n title=\"Underline\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n document.execCommand(\"underline\");\n handleInput();\n focus();\n }}\n className={`rte-toolbar-button ${isUnderline ? \"active\" : \"\"}`}\n >\n <FaUnderline size={14} />\n </button>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Font Size */}\n <select\n value={currentFontSize}\n onMouseDown={(e) => e.stopPropagation()}\n onChange={(e) => {\n e.preventDefault();\n e.stopPropagation();\n const size = e.target.value;\n if (!size) return;\n applyFontSize(size);\n setCurrentFontSize(size);\n focus();\n }}\n className=\"rte-toolbar-select\"\n style={{ width: '70px' }}\n >\n {[8, 10, 12, 14, 16, 18, 20, 24, 28, 32, 36, 40, 48].map((s) => (\n <option key={s} value={s}>{s}px</option>\n ))}\n </select>\n\n {/* Text Color */}\n <label title=\"Font Color\" className=\"rte-color-picker-label\">\n <FaFont size={14} style={{ color: fontColor }} />\n <input\n type=\"color\"\n value={fontColor}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onChange={(e) => {\n e.stopPropagation();\n handleColorChange(e.target.value);\n }}\n className=\"rte-color-input\"\n />\n </label>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Alignment */}\n <button\n type=\"button\"\n title=\"Align Left\"\n className={`rte-toolbar-button ${activeAlign === \"left\" ? \"active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n exec(\"justifyLeft\");\n setActiveAlign(\"left\");\n }}\n >\n <FaAlignLeft size={14} />\n </button>\n\n <button\n type=\"button\"\n title=\"Align Center\"\n className={`rte-toolbar-button ${activeAlign === \"center\" ? \"active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n exec(\"justifyCenter\");\n setActiveAlign(\"center\");\n }}\n >\n <FaAlignCenter size={14} />\n </button>\n\n <button\n type=\"button\"\n title=\"Align Right\"\n className={`rte-toolbar-button ${activeAlign === \"right\" ? \"active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n exec(\"justifyRight\");\n setActiveAlign(\"right\");\n }}\n >\n <FaAlignRight size={14} />\n </button>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Lists */}\n <button\n type=\"button\"\n title=\"Unordered List\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleSelect(\"unordered\");\n }}\n className={`rte-toolbar-button ${currentListType === \"unordered\" ? \"active\" : \"\"}`}\n >\n <FaListUl size={14} />\n </button>\n <button\n type=\"button\"\n title=\"Ordered List\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleSelect(\"ordered\");\n }}\n className={`rte-toolbar-button ${currentListType === \"ordered\" ? \"active\" : \"\"}`}\n >\n <FaListOl size={14} />\n </button>\n\n {/* Line Height */}\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center' }}>\n <select\n value={currentLineHeight}\n onMouseDown={(e) => e.stopPropagation()}\n onChange={(e) => {\n e.preventDefault();\n const height = e.target.value;\n if (height) {\n onLineHeightChange(height);\n setCurrentLineHeight(height);\n }\n focus();\n }}\n className=\"rte-toolbar-select\"\n style={{ width: '64px', paddingLeft: '24px' }}\n >\n <option value=\"\" disabled>↕</option>\n {['1', '1.15', '1.5', '2'].map((h) => (\n <option key={h} value={h}>{h}</option>\n ))}\n </select>\n <div style={{ position: 'absolute', left: '6px', pointerEvents: 'none', color: '#9ca3af' }}>\n <FaTextHeight size={12} />\n </div>\n </div>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n \n <button\n type=\"button\"\n title=\"Add Link\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n addLink();\n }}\n >\n <span style={{ fontSize: '16px' }}>🔗</span>\n </button>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n style={{ display: \"none\" }}\n onChange={handleImageUpload}\n disabled={isUploading}\n />\n <button\n type=\"button\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n if (!isUploading) fileInputRef.current?.click();\n }}\n disabled={isUploading}\n title=\"Upload image\"\n >\n {isUploading ? (\n <div className=\"rte-spinner\" style={{ width: '14px', height: '14px', borderWidth: '2px' }}></div>\n ) : (\n <FaImage size={14} />\n )}\n </button>\n\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n\n {/* Table */}\n <button\n type=\"button\"\n title=\"Insert Table\"\n className=\"rte-toolbar-button\"\n onMouseDown={(e) => {\n e.preventDefault();\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0) {\n selectionRangeRef.current = sel.getRangeAt(0).cloneRange();\n }\n setTableModalOpen(true);\n }}\n >\n <FaTable size={14} />\n </button>\n\n {/* Video */}\n <button\n type=\"button\"\n title=\"Embed Video (YouTube, Vimeo, etc.)\"\n className={`rte-toolbar-button ${videoModalOpen ? 'active' : ''}`}\n onMouseDown={(e) => {\n e.preventDefault();\n saveSelection();\n setVideoModalOpen(true);\n }}\n >\n <FaVideo size={14} />\n </button>\n\n {/* Table Actions (Conditional) */}\n {(() => {\n if (typeof window === \"undefined\") return null;\n const sel = window.getSelection();\n // Robust check: inside cell OR the table itself is selected\n const isCell = sel && sel.rangeCount > 0 && sel.anchorNode && (findParentTag(sel.anchorNode, 'TD') || findParentTag(sel.anchorNode, 'TH'));\n const isTable = sel && sel.rangeCount > 0 && sel.anchorNode && findParentTag(sel.anchorNode, 'TABLE');\n \n if (isCell || isTable) {\n return (\n <>\n <div style={{ width: '1px', height: '20px', backgroundColor: '#e5e7eb', margin: '0 4px' }}></div>\n <button type=\"button\" title=\"Add Row Above\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addRowAbove'); }}>+R↑</button>\n <button type=\"button\" title=\"Add Row Below\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addRowBelow'); }}>+R↓</button>\n <button type=\"button\" title=\"Add Col Before\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addColBefore'); }}>+C←</button>\n <button type=\"button\" title=\"Add Col After\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('addColAfter'); }}>+C→</button>\n <button type=\"button\" title=\"Merge Cells (Right)\" className=\"rte-toolbar-button\" onMouseDown={(e) => { e.preventDefault(); tableAction('mergeRight'); }}><FaObjectGroup size={14} /></button>\n <div style={{ display: 'flex', gap: '10px' }}>\n <button\n type=\"button\"\n title=\"Delete Row\"\n className=\"rte-toolbar-button rte-toolbar-button-danger\"\n onMouseDown={(e) => { e.preventDefault(); tableAction('deleteRow'); }}\n >\n <FaTrash size={12} />\n <span style={{ fontSize: '10px' }}>Row</span>\n </button>\n\n <button\n type=\"button\"\n title=\"Delete Column\"\n className=\"rte-toolbar-button rte-toolbar-button-danger\"\n onMouseDown={(e) => { e.preventDefault(); tableAction('deleteCol'); }}\n >\n <FaTrash size={12} />\n <span style={{ fontSize: '10px' }}>Col</span>\n </button>\n\n <button\n type=\"button\"\n title=\"Delete Table\"\n className=\"rte-toolbar-button rte-toolbar-button-danger\"\n onMouseDown={(e) => { e.preventDefault(); tableAction('deleteTable'); }}\n >\n <FaTrash size={12} />\n <span style={{ fontSize: '10px' }}>Table</span>\n </button>\n</div>\n </>\n );\n }\n return null;\n })()}\n </div>\n {/* Editor Content Area */}\n <div\n ref={editorRef}\n contentEditable={editable && disabled !== true}\n suppressContentEditableWarning\n onInput={handleInput}\n onPaste={handlePaste}\n onDrop={handleDrop}\n onDragStart={(e) => e.preventDefault()}\n onDragOver={(e) => e.preventDefault()}\n onKeyDown={handleKeyDown}\n onClick={handleEditorClick}\n style={{\n minHeight: minHeight || '150px',\n maxHeight: maxHeight || '500px',\n paddingLeft: paddingLeft || '12px'\n }}\n className=\"rte-content\"\n />\n {renderResizeHandles()}\n \n {/* Footer with Character/Word Count */}\n <div className=\"rte-footer\">\n {(() => {\n const text = editorRef.current?.innerText || \"\";\n const cleanText = text.replace(/[\\n\\r]/g, ' ').trim();\n const words = cleanText ? cleanText.split(/\\s+/).length : 0;\n const chars = text.length;\n return (\n <div className=\"rte-footer-content\">\n <span className=\"rte-footer-item\"><b>{words}</b> words</span>\n <span className=\"rte-footer-separator\">•</span>\n <span className=\"rte-footer-item\"><b>{chars}</b> characters</span>\n </div>\n );\n })()}\n </div>\n {linkModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={cancelLink}>\n <div className=\"rte-modal\" onClick={(e) => e.stopPropagation()}>\n <h3 className=\"rte-modal-title\">Insert Link</h3>\n <div className=\"rte-modal-divider\"></div>\n <div className=\"rte-modal-body\">\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Link Text</label>\n <input\n type=\"text\"\n className=\"rte-input\"\n placeholder=\"e.g. Google\"\n value={linkText}\n onChange={(e) => setLinkText(e.target.value)}\n />\n </div>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">URL</label>\n <input\n type=\"text\"\n className=\"rte-input\"\n placeholder=\"https://example.com\"\n value={linkUrl}\n onChange={(e) => setLinkUrl(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && confirmLink()}\n autoFocus\n />\n </div>\n </div>\n <div className=\"rte-modal-divider\" style={{ margin: '8px 0 20px 0' }}></div>\n <div className=\"rte-modal-footer\">\n <button type=\"button\" className=\"rte-btn rte-btn-secondary\" onClick={cancelLink}>Cancel</button>\n <button type=\"button\" className=\"rte-btn rte-btn-primary\" onClick={confirmLink} disabled={!linkUrl}>Insert</button>\n </div>\n </div>\n </div>\n )}\n\n {/* Table Modal */}\n {tableModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={() => setTableModalOpen(false)}>\n <div className=\"rte-modal\" onClick={(e) => e.stopPropagation()}>\n <h3 className=\"rte-modal-title\">Insert Table</h3>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Rows</label>\n <input type=\"number\" className=\"rte-input\" value={tableRows} onChange={(e) => setTableRows(e.target.value)} min=\"1\" max=\"10\" />\n </div>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Columns</label>\n <input type=\"number\" className=\"rte-input\" value={tableCols} onChange={(e) => setTableCols(e.target.value)} min=\"1\" max=\"10\" />\n </div>\n <div className=\"rte-modal-actions\">\n <button type=\"button\" className=\"rte-button rte-button-secondary\" onClick={() => setTableModalOpen(false)}>Cancel</button>\n <button type=\"button\" className=\"rte-button rte-button-primary\" onClick={insertTable}>Insert</button>\n </div>\n </div>\n </div>\n )}\n\n {/* Video Modal */}\n {videoModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={() => setVideoModalOpen(false)}>\n <div className=\"rte-modal\" onClick={(e) => e.stopPropagation()}>\n <div className=\"rte-modal-header\">\n <h3 className=\"rte-modal-title\">Embed Video</h3>\n </div>\n <div className=\"rte-form-group\">\n <label className=\"rte-label\">Paste Video URL (YouTube, Vimeo...) <span style={{ color: '#ef4444' }}>*</span></label>\n <input \n type=\"text\" \n className=\"rte-input\" \n value={videoUrl} \n onChange={(e) => setVideoUrl(e.target.value)} \n placeholder=\"Paste URL here...\" \n autoFocus \n onKeyDown={(e) => {\n if (e.key === 'Enter' && videoUrl.trim()) insertVideo();\n if (e.key === 'Escape') setVideoModalOpen(false);\n }}\n />\n </div>\n <div className=\"rte-modal-actions\">\n <button type=\"button\" className=\"rte-button rte-button-secondary\" onClick={() => setVideoModalOpen(false)}>Cancel</button>\n <button \n type=\"button\" \n className=\"rte-button rte-button-primary\" \n onClick={() => {\n if (videoUrl.trim()) {\n insertVideo();\n }\n }}\n disabled={!videoUrl.trim()}\n >\n Embed Video\n </button>\n </div>\n </div>\n </div>\n )}\n\n {/* Image Zoom Modal */}\n {imageModalOpen && (\n <div className=\"rte-modal-overlay\" onClick={closeImageModal}>\n <div\n style={{ position: \"relative\", maxWidth: \"90%\", maxHeight: \"90%\" }}\n onClick={(e) => e.stopPropagation()}\n >\n <img\n src={selectedImageUrl}\n style={{\n width: \"100%\",\n maxHeight: \"90vh\",\n borderRadius: '12px',\n transform: `scale(${zoomLevel})`,\n transition: \"transform 0.2s ease\",\n boxShadow: '0 25px 50px -12px rgba(0,0,0,0.5)'\n }}\n alt=\"Zoomed\"\n />\n </div>\n </div>\n )}\n </div>\n\n {showEditButton && editable && (\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: \"12px\", marginTop: \"12px\" }}>\n <button\n type=\"button\"\n className=\"rte-button rte-button-secondary\"\n onClick={() => setEditable(false)}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"rte-button rte-button-primary\"\n onClick={() => {\n onChange && onChange(html);\n setEditable(false);\n }}\n >\n Save Changes\n </button>\n </div>\n )}\n </div>\n );\n}\n"],"names":["FaImage","_ref","className","size","color","style","React","createElement","_objectSpread","display","alignItems","justifyContent","fontSize","dangerouslySetInnerHTML","__html","FaBold","_ref3","FaItalic","_ref4","FaUnderline","_ref5","FaTextHeight","_ref6","FaAlignCenter","_ref7","FaAlignRight","_ref8","FaAlignLeft","_ref0","FaListOl","_ref1","FaListUl","_ref10","FaFont","_ref12","FaTable","_ref14","FaObjectGroup","_ref16","FaTrash","_ref17","FaVideo","_ref18","isValidDraftFormat","content","_typeof","blocks","entityMap","draftBlocksToHTML","console","warn","map","b","concat","text","join","Spinner","LabelComponent","children","marginBottom","escapeHtml","str","String","replace","escapeAttr","URL_REGEX","RichTextEditor","onChange","showEditButton","onBlur","_ref$disabled","disabled","_ref$editable","editable","defaultEditable","value","isLoading","_ref$isList","isList","label","_ref$showBorder","showBorder","paddingLeft","minHeight","maxHeight","onImageUpload","editorRef","useRef","fileInputRef","scrollTopRef","_useState","useState","_useState2","_slicedToArray","html","setHtml","_useState3","_useState4","linkModalOpen","setLinkModalOpen","_useState5","_useState6","linkUrl","setLinkUrl","_useState7","_useState8","linkText","setLinkText","selectionRangeRef","_useState9","_useState0","setEditable","_useState1","_useState10","currentListType","setCurrentListType","_useState11","_useState12","isBold","setIsBold","_useState13","_useState14","isItalic","setIsItalic","_useState15","_useState16","isUnderline","setIsUnderline","_useState17","_useState18","currentFontSize","setCurrentFontSize","_useState19","_useState20","currentLineHeight","setCurrentLineHeight","_useState21","_useState22","activeAlign","setActiveAlign","_useState23","_useState24","imageModalOpen","setImageModalOpen","_useState25","_useState26","selectedImageUrl","setSelectedImageUrl","_useState27","_useState28","zoomLevel","setZoomLevel","_useState29","_useState30","isUploading","setIsUploading","_useState31","_useState32","videoModalOpen","setVideoModalOpen","_useState33","_useState34","videoUrl","setVideoUrl","_useState35","_useState36","tableModalOpen","setTableModalOpen","_useState37","_useState38","hoveredTable","setHoveredTable","_useState39","_useState40","tableRows","setTableRows","_useState41","_useState42","tableCols","setTableCols","_useState43","_useState44","selectionVersion","setSelectionVersion","_useState45","_useState46","selectedImage","setSelectedImage","_useState47","_useState48","resizeData","setResizeData","openImageModal","url","current","scrollTop","closeImageModal","saveSelection","window","sel","getSelection","rangeCount","getRangeAt","cloneRange","handleZoomIn","prevZoom","handleZoomOut","Math","max","useEffect","handleKeyDown","e","key","handleWheel","ctrlKey","preventDefault","deltaY","document","addEventListener","passive","removeEventListener","handleClick","v","deleteBtn","target","closest","stopPropagation","wrapper","parentNode","removeChild","triggerChange","editor","requestAnimationFrame","processExistingImages","htmlContent","innerHTML","unescapedValue","unescapeHtml","error","useCallback","next","getCleanHtml","detectListType","node","anchorNode","nodeName","isParentStyle","_len","arguments","length","tagNames","Array","_key","nodeType","includes","tagName","fontWeight","Number","fontStyle","textDecoration","getAttribute","updateStyleStates","setFontColor","container","computedAlign","getComputedStyle","textAlign","range","collapsed","computedColor","rgbToHex","queryCommandState","rgb","result","match","slice","x","hex","parseInt","toString","handleSelectionChange","selection","element","startContainer","parentElement","sizeValue","focus","exec","command","undefined","execCommand","_useState49","_useState50","fontColor","handleColorChange","addLink","selectedText","findParentTag","curr","tableAction","action","cell","row","table","newRowAbove","insertRow","rowIndex","i","cells","newCell","insertCell","border","padding","newRowBelow","cellIndex","rows","cellIndexAfter","deleteRow","remove","targetRowIndex","min","targetRow","targetCell","createRange","selectNodeContents","collapse","removeAllRanges","addRange","idx","deleteCell","_table$rows$_rowIndex","targetColIndex","nextElementSibling","nextCell","colSpan","insertTable","cols","tableHtml","j","parseVideoUrl","trim","ytRegExp","ytMatch","vimeoRegExp","vimeoMatch","dmRegExp","dmMatch","insertVideo","embedUrl","embedHtml","err","div","appendChild","querySelectorAll","forEach","img","oldWrapper","replaceWith","align","cursor","cssText","setAttribute","dataset","hasDeleteButton","src","pointerEvents","title","onclick","currentTarget","nextSibling","insertBefore","insertImage","_ref2","_asyncToGenerator","_regenerator","m","_callee","dataUrl","fileName","w","_context","n","alt","insertNodeAtCursor","a","_x","_x2","apply","readFileAsDataURL","file","Promise","res","rej","reader","FileReader","onload","ev","onerror","readAsDataURL","handlePaste","clipboardData","items","_loop","item","kind","type","indexOf","getAsFile","uploadPromise","then","finalUrl","mediaUrl","name","_ret","htmlData","getData","tempDiv","el","plainText","htmlToInsert","safeUrl","handleDrop","_callee2","files","imageFiles","_iterator","_step","_loop2","_t","_context3","p","dataTransfer","from","filter","startsWith","_createForOfIteratorHelper","_context2","s","done","d","_regeneratorValues","f","_x3","contains","deleteContents","insertNode","space","createTextNode","setStartAfter","txt","parent","listItem","list","newItem","endOffset","textContent","newRange","newDiv","lastElementChild","setStart","textBefore","substring","startOffset","textAfter","firstChild","metaKey","confirmLink","test","safeText","linkHtml","cancelLink","handleSelect","onLineHeightChange","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","acceptNode","intersectsNode","FILTER_ACCEPT","FILTER_REJECT","blocksToStyle","Set","blockTags","tempRange","nextNode","add","block","lineHeight","common","commonAncestorContainer","newCommon","applyFontSize","sizePx","span","nodesToStyle","push","savedRange","lastInsertedNode","_i5","_nodesToStyle","textNode","isBlockLevel","endContainer","newSpan","setEnd","handleInput","handleImageUpload","_callee3","_context4","_x4","handleEditorClick","clickedLink","open","href","clickedImg","setTimeout","startResize","direction","startX","clientX","startY","clientY","startWidth","offsetWidth","startHeight","offsetHeight","onMouseMove","moveEvent","newWidth","newHeight","width","height","onMouseUp","renderResizeHandles","editorRect","getBoundingClientRect","imgRect","top","left","scrollLeft","handleStyles","position","background","borderRadius","zIndex","handles","id","h","onMouseDown","onClick","onMouseOver","onMouseOut","related","relatedTarget","onDrop","onDragOver","backgroundColor","margin","ref","accept","_fileInputRef$current","click","borderWidth","isCell","isTable","Fragment","gap","contentEditable","suppressContentEditableWarning","onInput","onPaste","onDragStart","onKeyDown","_editorRef$current","innerText","cleanText","words","split","chars","placeholder","autoFocus","maxWidth","transform","transition","boxShadow","marginTop"],"mappings":"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","x_google_ignoreList":[4]}