{"version":3,"sources":["../src/components/ReactQuill.tsx","../src/index.ts"],"names":["ReactQuill","forwardRef","value","defaultValue","onChange","options","readOnly","placeholder","theme","modules","formats","style","className","ref","quillRef","useRef","quillInstance","useEffect","defaultOptions","hljs","Quill","currentContent","useImperativeHandle","jsxs","Fragment","jsx","ReactQuill_default","index_default"],"mappings":"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","file":"index.cjs","sourcesContent":["import 'highlight.js/styles/github.css';\nimport Quill, { QuillOptions } from 'quill';\nimport 'quill/dist/quill.snow.css';\nimport 'quill/dist/quill.bubble.css';\n\nimport { useEffect, useRef, forwardRef, useImperativeHandle } from 'react';\nimport { ReactQuillProps } from '../types';\nimport hljs from 'highlight.js';\n\ninterface ReactQuillRef {\n  getEditor: () => Quill | null;\n}\n\nconst ReactQuill = forwardRef<ReactQuillRef, ReactQuillProps>(({\n  value,\n  defaultValue,\n  onChange,\n  options = {},\n  readOnly = false,\n  placeholder,\n  theme = 'snow',\n  modules,\n  formats,\n  style,\n  className,\n}, ref) => {\n  const quillRef = useRef<HTMLDivElement>(null);\n  const quillInstance = useRef<Quill | null>(null);\n\n  useEffect(() => {\n    if (!quillRef.current) return;\n\n    // Clean up previous instance\n    if (quillInstance.current) {\n      quillInstance.current = null;\n    }\n\n    const defaultOptions: QuillOptions = {\n      theme,\n      modules: {\n        ...(modules || {}),\n        ...(modules?.syntax ? { syntax: { hljs } } : {}),\n        toolbar: modules?.toolbar || {container:\"#quill-toolbar\"},\n      },\n      formats: formats || [\n        'background','bold','color', \n        'font', 'code','italic', \n        'link','size','strike','script',\n        'underline', 'blockquote','header', \n        'indent','list', 'align', 'direction',\n        'code-block','formula',\n        'image', 'video'\n      ],\n      placeholder,\n      readOnly,\n      ...options,\n    };\n\n    quillInstance.current = new Quill(quillRef.current, defaultOptions);\n\n    if (defaultValue) {\n      quillInstance.current.root.innerHTML = defaultValue;\n    }\n\n    if (value) {\n      quillInstance.current.root.innerHTML = value;\n    }\n\n    if (onChange) {\n      quillInstance.current.on('text-change', () => {\n        onChange(quillInstance.current?.root.innerHTML || '');\n      });\n    }\n\n    return () => {\n      if (quillInstance.current) {\n        quillInstance.current = null;\n      }\n    };\n  }, []); // Empty dependency array since we want to initialize only once\n\n  useEffect(() => {\n    if (quillInstance.current && value !== undefined) {\n      const currentContent = quillInstance.current.root.innerHTML;\n      if (value !== currentContent) {\n        quillInstance.current.root.innerHTML = value;\n      }\n    }\n  }, [value]);\n\n  useImperativeHandle(ref, () => ({\n    getEditor: () => quillInstance.current\n  }));\n\n  return (\n    <>\n      {!modules?.toolbar && (\n        <div id=\"quill-toolbar\">\n          <span className=\"ql-formats\">\n            <select className=\"ql-size\" defaultValue=\"\">\n              <option value=\"small\"></option>\n              <option value=\"\"></option>\n              <option value=\"large\"></option>\n              <option value=\"huge\"></option>\n            </select>\n          </span>\n          <span className=\"ql-formats\">\n            <select className=\"ql-header\" defaultValue=\"\">\n              <option value=\"1\"></option>\n              <option value=\"2\"></option>\n              <option value=\"3\"></option>\n              <option value=\"4\"></option>\n              <option value=\"5\"></option>\n              <option value=\"6\"></option>\n              <option value=\"\"></option>\n            </select>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-bold\"></button>\n            <button className=\"ql-italic\"></button>\n            <button className=\"ql-underline\"></button>\n            <button className=\"ql-strike\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-blockquote\"></button>\n            <button className=\"ql-code-block\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-header\" value=\"1\"></button>\n            <button className=\"ql-header\" value=\"2\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-list\" value=\"ordered\"></button>\n            <button className=\"ql-list\" value=\"bullet\"></button>\n            <button className=\"ql-list\" value=\"check\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-script\" value=\"sub\"></button>\n            <button className=\"ql-script\" value=\"super\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-indent\" value=\"-1\"></button>\n            <button className=\"ql-indent\" value=\"+1\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-direction\" value=\"rtl\"></button>\n          </span>\n          \n          <span className=\"ql-formats\">\n            <select className=\"ql-color\"></select>\n            <select className=\"ql-background\"></select>\n          </span>\n          <span className=\"ql-formats\">\n            <select className=\"ql-font\"></select>\n          </span>\n          <span className=\"ql-formats\">\n            <select className=\"ql-align\"></select>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-clean\"></button>\n          </span>\n          <span className=\"ql-formats\">\n            <button className=\"ql-link\"></button>\n            <button className=\"ql-image\"></button>\n            <button className=\"ql-video\"></button>\n            <button className=\"ql-formula\"></button>\n          </span>\n        </div>\n      )}\n      <div\n        ref={quillRef}\n        style={style}\n        className={className}\n      />\n    </>\n  );\n});\n\nReactQuill.displayName = 'ReactQuill';\n\nexport default ReactQuill; ","import Quill from 'quill';\nimport ReactQuill from './components/ReactQuill';\nimport type { ReactQuillProps } from './types';\nexport default ReactQuill;\nexport type { ReactQuillProps };\nexport { Quill };"]}