@abduljebar/text-editor 2.3.1 → 2.4.0

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,15 +1,15 @@
1
- (function(Q,z){typeof exports=="object"&&typeof module<"u"?z(exports,require("react"),require("lucide-react")):typeof define=="function"&&define.amd?define(["exports","react","lucide-react"],z):(Q=typeof globalThis<"u"?globalThis:Q||self,z(Q.TextEditor={},Q.React,Q.LucideReact))})(this,(function(Q,z,N){"use strict";var ye=document.createElement("style");ye.textContent=`@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-duration:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-y-reverse:0;--tw-leading:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-600:oklch(64.6% .222 41.116);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-bold:700;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.-top-2{top:calc(var(--spacing)*-2)}.-right-2{right:calc(var(--spacing)*-2)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mt-2{margin-top:calc(var(--spacing)*2)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-9{height:calc(var(--spacing)*9)}.min-h-\\[200px\\]{min-height:200px}.min-h-\\[400px\\]{min-height:400px}.w-4{width:calc(var(--spacing)*4)}.w-9{width:calc(var(--spacing)*9)}.w-full{width:100%}.w-px{width:1px}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-text{cursor:text}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-6{gap:calc(var(--spacing)*6)}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-blue-300{border-color:var(--color-blue-300)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-600{background-color:var(--color-green-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-blue-600{color:var(--color-blue-600)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-orange-600{color:var(--color-orange-600)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{color:var(--color-gray-400)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.opacity-80{opacity:.8}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.hover\\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\\:bg-red-700:hover{background-color:var(--color-red-700)}}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-blue-300:disabled{background-color:var(--color-blue-300)}@media(min-width:40rem){.sm\\:mt-0{margin-top:calc(var(--spacing)*0)}}.\\[\\&_\\.image-failed\\]\\:border-2 .image-failed{border-style:var(--tw-border-style);border-width:2px}.\\[\\&_\\.image-failed\\]\\:border-red-500 .image-failed{border-color:var(--color-red-500)}.\\[\\&_\\.image-uploading\\]\\:animate-pulse .image-uploading{animation:var(--animate-pulse)}.\\[\\&_\\.image-uploading\\]\\:opacity-50 .image-uploading{opacity:.5}.\\[\\&_a\\]\\:text-blue-600 a{color:var(--color-blue-600)}.\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.\\[\\&_a\\]\\:transition-colors a{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.\\[\\&_a\\]\\:hover\\:text-blue-800 a:hover{color:var(--color-blue-800)}}.\\[\\&_blockquote\\]\\:my-4 blockquote{margin-block:calc(var(--spacing)*4)}.\\[\\&_blockquote\\]\\:border-l-4 blockquote{border-left-style:var(--tw-border-style);border-left-width:4px}.\\[\\&_blockquote\\]\\:border-blue-500 blockquote{border-color:var(--color-blue-500)}.\\[\\&_blockquote\\]\\:pl-4 blockquote{padding-left:calc(var(--spacing)*4)}.\\[\\&_blockquote\\]\\:text-gray-600 blockquote{color:var(--color-gray-600)}.\\[\\&_blockquote\\]\\:italic blockquote{font-style:italic}.\\[\\&_code\\]\\:rounded code{border-radius:.25rem}.\\[\\&_code\\]\\:bg-gray-100 code{background-color:var(--color-gray-100)}.\\[\\&_code\\]\\:px-2 code{padding-inline:calc(var(--spacing)*2)}.\\[\\&_code\\]\\:py-1 code{padding-block:calc(var(--spacing)*1)}.\\[\\&_code\\]\\:font-mono code{font-family:var(--font-mono)}.\\[\\&_code\\]\\:text-sm code{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\\[\\&_h1\\]\\:mt-6 h1{margin-top:calc(var(--spacing)*6)}.\\[\\&_h1\\]\\:mb-4 h1{margin-bottom:calc(var(--spacing)*4)}.\\[\\&_h1\\]\\:border-b h1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\\[\\&_h1\\]\\:pb-2 h1{padding-bottom:calc(var(--spacing)*2)}.\\[\\&_h1\\]\\:text-3xl h1{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.\\[\\&_h1\\]\\:font-bold h1{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\\[\\&_h1\\]\\:text-gray-800 h1{color:var(--color-gray-800)}.\\[\\&_h2\\]\\:mt-5 h2{margin-top:calc(var(--spacing)*5)}.\\[\\&_h2\\]\\:mb-3 h2{margin-bottom:calc(var(--spacing)*3)}.\\[\\&_h2\\]\\:text-2xl h2{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.\\[\\&_h2\\]\\:font-bold h2{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\\[\\&_h2\\]\\:text-gray-800 h2{color:var(--color-gray-800)}.\\[\\&_h3\\]\\:mt-4 h3{margin-top:calc(var(--spacing)*4)}.\\[\\&_h3\\]\\:mb-2 h3{margin-bottom:calc(var(--spacing)*2)}.\\[\\&_h3\\]\\:text-xl h3{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.\\[\\&_h3\\]\\:font-bold h3{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\\[\\&_h3\\]\\:text-gray-800 h3{color:var(--color-gray-800)}.\\[\\&_img\\]\\:my-4 img{margin-block:calc(var(--spacing)*4)}.\\[\\&_img\\]\\:h-auto img{height:auto}.\\[\\&_img\\]\\:max-w-full img{max-width:100%}.\\[\\&_img\\]\\:rounded-lg img{border-radius:var(--radius-lg)}.\\[\\&_img\\]\\:shadow-md img{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\\[\\&_li\\]\\:mb-1 li{margin-bottom:calc(var(--spacing)*1)}.\\[\\&_ol\\]\\:mb-4 ol{margin-bottom:calc(var(--spacing)*4)}.\\[\\&_ol\\]\\:ml-4 ol{margin-left:calc(var(--spacing)*4)}.\\[\\&_ol\\]\\:list-inside ol{list-style-position:inside}.\\[\\&_ol\\]\\:list-decimal ol{list-style-type:decimal}:where(.\\[\\&_ol\\]\\:space-y-1 ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}.\\[\\&_p\\]\\:mb-4 p{margin-bottom:calc(var(--spacing)*4)}.\\[\\&_p\\]\\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\\[\\&_p\\]\\:text-gray-700 p{color:var(--color-gray-700)}.\\[\\&_pre\\]\\:my-4 pre{margin-block:calc(var(--spacing)*4)}.\\[\\&_pre\\]\\:overflow-x-auto pre{overflow-x:auto}.\\[\\&_pre\\]\\:rounded-lg pre{border-radius:var(--radius-lg)}.\\[\\&_pre\\]\\:bg-gray-800 pre{background-color:var(--color-gray-800)}.\\[\\&_pre\\]\\:p-4 pre{padding:calc(var(--spacing)*4)}.\\[\\&_pre\\]\\:text-gray-100 pre{color:var(--color-gray-100)}.\\[\\&_pre_code\\]\\:bg-transparent pre code{background-color:#0000}.\\[\\&_pre_code\\]\\:p-0 pre code{padding:calc(var(--spacing)*0)}.\\[\\&_pre_code\\]\\:text-inherit pre code{color:inherit}.\\[\\&_ul\\]\\:mb-4 ul{margin-bottom:calc(var(--spacing)*4)}.\\[\\&_ul\\]\\:ml-4 ul{margin-left:calc(var(--spacing)*4)}.\\[\\&_ul\\]\\:list-inside ul{list-style-position:inside}.\\[\\&_ul\\]\\:list-disc ul{list-style-type:disc}:where(.\\[\\&_ul\\]\\:space-y-1 ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
2
- /*$vite$:1*/`,document.head.appendChild(ye);var de={exports:{}},se={};var ke;function We(){if(ke)return se;ke=1;var e=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function r(o,n,l){var i=null;if(l!==void 0&&(i=""+l),n.key!==void 0&&(i=""+n.key),"key"in n){l={};for(var c in n)c!=="key"&&(l[c]=n[c])}else l=n;return n=l.ref,{$$typeof:e,type:o,key:i,ref:n!==void 0?n:null,props:l}}return se.Fragment=a,se.jsx=r,se.jsxs=r,se}var le={};var _e;function Ye(){return _e||(_e=1,process.env.NODE_ENV!=="production"&&(function(){function e(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===V?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case E:return"Fragment";case G:return"Profiler";case U:return"StrictMode";case w:return"Suspense";case j:return"SuspenseList";case R:return"Activity"}if(typeof t=="object")switch(typeof t.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),t.$$typeof){case h:return"Portal";case L:return t.displayName||"Context";case F:return(t._context.displayName||"Context")+".Consumer";case g:var b=t.render;return t=t.displayName,t||(t=b.displayName||b.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case s:return b=t.displayName||null,b!==null?b:e(t.type)||"Memo";case S:b=t._payload,t=t._init;try{return e(t(b))}catch{}}return null}function a(t){return""+t}function r(t){try{a(t);var b=!1}catch{b=!0}if(b){b=console;var x=b.error,T=typeof Symbol=="function"&&Symbol.toStringTag&&t[Symbol.toStringTag]||t.constructor.name||"Object";return x.call(b,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",T),a(t)}}function o(t){if(t===E)return"<>";if(typeof t=="object"&&t!==null&&t.$$typeof===S)return"<...>";try{var b=e(t);return b?"<"+b+">":"<...>"}catch{return"<...>"}}function n(){var t=O.A;return t===null?null:t.getOwner()}function l(){return Error("react-stack-top-frame")}function i(t){if(W.call(t,"key")){var b=Object.getOwnPropertyDescriptor(t,"key").get;if(b&&b.isReactWarning)return!1}return t.key!==void 0}function c(t,b){function x(){Y||(Y=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",b))}x.isReactWarning=!0,Object.defineProperty(t,"key",{get:x,configurable:!0})}function m(){var t=e(this.type);return q[t]||(q[t]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),t=this.props.ref,t!==void 0?t:null}function _(t,b,x,T,X,ne){var k=x.ref;return t={$$typeof:M,type:t,key:b,props:x,_owner:T},(k!==void 0?k:null)!==null?Object.defineProperty(t,"ref",{enumerable:!1,get:m}):Object.defineProperty(t,"ref",{enumerable:!1,value:null}),t._store={},Object.defineProperty(t._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(t,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(t,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:X}),Object.defineProperty(t,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ne}),Object.freeze&&(Object.freeze(t.props),Object.freeze(t)),t}function C(t,b,x,T,X,ne){var k=b.children;if(k!==void 0)if(T)if(B(k)){for(T=0;T<k.length;T++)I(k[T]);Object.freeze&&Object.freeze(k)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else I(k);if(W.call(b,"key")){k=e(t);var Z=Object.keys(b).filter(function(ie){return ie!=="key"});T=0<Z.length?"{key: someKey, "+Z.join(": ..., ")+": ...}":"{key: someKey}",A[k+T]||(Z=0<Z.length?"{"+Z.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ (function(se,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("react"),require("lucide-react")):typeof define=="function"&&define.amd?define(["exports","react","lucide-react"],y):(se=typeof globalThis<"u"?globalThis:se||self,y(se.TextEditor={},se.React,se.LucideReact))})(this,(function(se,y,N){"use strict";var Ge=document.createElement("style");Ge.textContent=`@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.-top-2{top:calc(var(--spacing)*-2)}.top-6{top:calc(var(--spacing)*6)}.-right-2{right:calc(var(--spacing)*-2)}.right-2{right:calc(var(--spacing)*2)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-6{left:calc(var(--spacing)*6)}.order-1{order:1}.order-2{order:2}.order-3{order:3}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-0\\.5{margin-inline:calc(var(--spacing)*.5)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-2{margin-right:calc(var(--spacing)*2)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-9{height:calc(var(--spacing)*9)}.h-auto{height:auto}.min-h-\\[200px\\]{min-height:200px}.min-h-\\[400px\\]{min-height:400px}.w-2{width:calc(var(--spacing)*2)}.w-4{width:calc(var(--spacing)*4)}.w-full{width:100%}.w-px{width:1px}.max-w-full{max-width:100%}.min-w-\\[36px\\]{min-width:36px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-text{cursor:text}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-6{gap:calc(var(--spacing)*6)}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-300{border-color:var(--color-blue-300)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-100{border-color:var(--color-green-100)}.border-red-100{border-color:var(--color-red-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-600{background-color:var(--color-green-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pr-2{padding-right:calc(var(--spacing)*2)}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-amber-600{color:var(--color-amber-600)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-orange-600{color:var(--color-orange-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.placeholder\\:text-gray-400::-moz-placeholder{color:var(--color-gray-400)}.placeholder\\:text-gray-400::placeholder{color:var(--color-gray-400)}.last\\:mr-0:last-child{margin-right:calc(var(--spacing)*0)}.last\\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\\:pr-0:last-child{padding-right:calc(var(--spacing)*0)}@media(hover:hover){.hover\\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\\:bg-red-700:hover{background-color:var(--color-red-700)}}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-blue-300:disabled{background-color:var(--color-blue-300)}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:order-2{order:2}.sm\\:order-3{order:3}.sm\\:mt-0{margin-top:calc(var(--spacing)*0)}.sm\\:inline{display:inline}.sm\\:w-auto{width:auto}.sm\\:flex-row{flex-direction:row}.sm\\:items-center{align-items:center}}@media(min-width:48rem){.md\\:block{display:block}.md\\:p-6{padding:calc(var(--spacing)*6)}.md\\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
2
+ /*$vite$:1*/`,document.head.appendChild(Ge);var be=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function At(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xe={exports:{}},ge={};var We;function zt(){if(We)return ge;We=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(o,a,u){var c=null;if(u!==void 0&&(c=""+u),a.key!==void 0&&(c=""+a.key),"key"in a){u={};for(var i in a)i!=="key"&&(u[i]=a[i])}else u=a;return a=u.ref,{$$typeof:e,type:o,key:c,ref:a!==void 0?a:null,props:u}}return ge.Fragment=t,ge.jsx=r,ge.jsxs=r,ge}var pe={};var Ve;function _t(){return Ve||(Ve=1,process.env.NODE_ENV!=="production"&&(function(){function e(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===S?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case O:return"Fragment";case W:return"Profiler";case J:return"StrictMode";case Y:return"Suspense";case X:return"SuspenseList";case w:return"Activity"}if(typeof n=="object")switch(typeof n.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),n.$$typeof){case B:return"Portal";case I:return n.displayName||"Context";case C:return(n._context.displayName||"Context")+".Consumer";case K:var j=n.render;return n=n.displayName,n||(n=j.displayName||j.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case h:return j=n.displayName||null,j!==null?j:e(n.type)||"Memo";case d:j=n._payload,n=n._init;try{return e(n(j))}catch{}}return null}function t(n){return""+n}function r(n){try{t(n);var j=!1}catch{j=!0}if(j){j=console;var k=j.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object";return k.call(j,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),t(n)}}function o(n){if(n===O)return"<>";if(typeof n=="object"&&n!==null&&n.$$typeof===d)return"<...>";try{var j=e(n);return j?"<"+j+">":"<...>"}catch{return"<...>"}}function a(){var n=x.A;return n===null?null:n.getOwner()}function u(){return Error("react-stack-top-frame")}function c(n){if(v.call(n,"key")){var j=Object.getOwnPropertyDescriptor(n,"key").get;if(j&&j.isReactWarning)return!1}return n.key!==void 0}function i(n,j){function k(){M||(M=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",j))}k.isReactWarning=!0,Object.defineProperty(n,"key",{get:k,configurable:!0})}function m(){var n=e(this.type);return G[n]||(G[n]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),n=this.props.ref,n!==void 0?n:null}function f(n,j,k,R,ee,ne){var E=k.ref;return n={$$typeof:T,type:n,key:j,props:k,_owner:R},(E!==void 0?E:null)!==null?Object.defineProperty(n,"ref",{enumerable:!1,get:m}):Object.defineProperty(n,"ref",{enumerable:!1,value:null}),n._store={},Object.defineProperty(n._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(n,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(n,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:ee}),Object.defineProperty(n,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ne}),Object.freeze&&(Object.freeze(n.props),Object.freeze(n)),n}function A(n,j,k,R,ee,ne){var E=j.children;if(E!==void 0)if(R)if(z(E)){for(R=0;R<E.length;R++)L(E[R]);Object.freeze&&Object.freeze(E)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else L(E);if(v.call(j,"key")){E=e(n);var $=Object.keys(j).filter(function(ae){return ae!=="key"});R=0<$.length?"{key: someKey, "+$.join(": ..., ")+": ...}":"{key: someKey}",re[E+R]||($=0<$.length?"{"+$.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
3
3
  let props = %s;
4
4
  <%s {...props} />
5
5
  React keys must be passed directly to JSX without using spread:
6
6
  let props = %s;
7
- <%s key={someKey} {...props} />`,T,k,Z,k),A[k+T]=!0)}if(k=null,x!==void 0&&(r(x),k=""+x),i(b)&&(r(b.key),k=""+b.key),"key"in b){x={};for(var $ in b)$!=="key"&&(x[$]=b[$])}else x=b;return k&&c(x,typeof t=="function"?t.displayName||t.name||"Unknown":t),_(t,k,x,n(),X,ne)}function I(t){P(t)?t._store&&(t._store.validated=1):typeof t=="object"&&t!==null&&t.$$typeof===S&&(t._payload.status==="fulfilled"?P(t._payload.value)&&t._payload.value._store&&(t._payload.value._store.validated=1):t._store&&(t._store.validated=1))}function P(t){return typeof t=="object"&&t!==null&&t.$$typeof===M}var v=z,M=Symbol.for("react.transitional.element"),h=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),U=Symbol.for("react.strict_mode"),G=Symbol.for("react.profiler"),F=Symbol.for("react.consumer"),L=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),s=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),R=Symbol.for("react.activity"),V=Symbol.for("react.client.reference"),O=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=Object.prototype.hasOwnProperty,B=Array.isArray,H=console.createTask?console.createTask:function(){return null};v={react_stack_bottom_frame:function(t){return t()}};var Y,q={},f=v.react_stack_bottom_frame.bind(v,l)(),ae=H(o(l)),A={};le.Fragment=E,le.jsx=function(t,b,x){var T=1e4>O.recentlyCreatedOwnerStacks++;return C(t,b,x,!1,T?Error("react-stack-top-frame"):f,T?H(o(t)):ae)},le.jsxs=function(t,b,x){var T=1e4>O.recentlyCreatedOwnerStacks++;return C(t,b,x,!0,T?Error("react-stack-top-frame"):f,T?H(o(t)):ae)}})()),le}var Ce;function Be(){return Ce||(Ce=1,process.env.NODE_ENV==="production"?de.exports=We():de.exports=Ye()),de.exports}var p=Be();const He=({onCommand:e,onSave:a,onExport:r,onClear:o,onImageUpload:n,showButtons:l=!1,hasUnsavedChanges:i,pendingImagesCount:c=0})=>{const[m,_]=z.useState([]),[C,I]=z.useState("p"),P=()=>{const h=[];let E="p";document.queryCommandState("bold")&&h.push("bold"),document.queryCommandState("italic")&&h.push("italic"),document.queryCommandState("underline")&&h.push("underline"),document.queryCommandState("strikeThrough")&&h.push("strikeThrough"),document.queryCommandState("insertUnorderedList")&&h.push("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&h.push("insertOrderedList"),document.queryCommandState("justifyLeft")&&h.push("justifyLeft"),document.queryCommandState("justifyCenter")&&h.push("justifyCenter"),document.queryCommandState("justifyRight")&&h.push("justifyRight");const U=window.getSelection();if(U&&U.rangeCount>0){let G=U.getRangeAt(0).commonAncestorContainer;for(;G&&G.nodeType===Node.ELEMENT_NODE;){const F=G,L=F.tagName.toLowerCase();if(["h1","h2","p","div"].includes(L)){L==="h1"||L==="h2"?(E=L,h.push(`formatBlock:${L}`)):(L==="p"||L==="div"&&!E)&&(E="p");break}G=F.parentNode}}I(E),_(h)};z.useEffect(()=>{const h=()=>{P()},E=()=>{setTimeout(P,10)};return document.addEventListener("selectionchange",h),document.addEventListener("click",E),document.addEventListener("keyup",E),()=>{document.removeEventListener("selectionchange",h),document.removeEventListener("click",E),document.removeEventListener("keyup",E)}},[]);const v=()=>{const h=prompt("Enter URL:");h&&e("createLink",h)},M=[{id:"bold",command:"bold",icon:p.jsx(N.Bold,{size:18}),title:"Bold"},{id:"italic",command:"italic",icon:p.jsx(N.Italic,{size:18}),title:"Italic"},{id:"underline",command:"underline",icon:p.jsx(N.Underline,{size:18}),title:"Underline"},{id:"strikeThrough",command:"strikeThrough",icon:p.jsx(N.Strikethrough,{size:18}),title:"Strikethrough"},{id:"separator-1",separator:!0},{id:"unordered-list",command:"insertUnorderedList",icon:p.jsx(N.List,{size:18}),title:"Bullet List"},{id:"ordered-list",command:"insertOrderedList",icon:p.jsx(N.ListOrdered,{size:18}),title:"Numbered List"},{id:"separator-2",separator:!0},{id:"heading-1",command:"formatBlock",value:"h1",icon:p.jsx(N.Heading1,{size:18}),title:"Heading 1",isActive:C==="h1"},{id:"heading-2",command:"formatBlock",value:"h2",icon:p.jsx(N.Heading2,{size:18}),title:"Heading 2",isActive:C==="h2"},{id:"paragraph",command:"formatBlock",value:"p",icon:p.jsx(N.Type,{size:18}),title:"Paragraph",isActive:C==="p"},{id:"separator-3",separator:!0},{id:"align-left",command:"justifyLeft",icon:p.jsx(N.AlignLeft,{size:18}),title:"Align Left"},{id:"align-center",command:"justifyCenter",icon:p.jsx(N.AlignCenter,{size:18}),title:"Center"},{id:"align-right",command:"justifyRight",icon:p.jsx(N.AlignRight,{size:18}),title:"Align Right"},{id:"separator-4",separator:!0},{id:"link",command:"createLink",icon:p.jsx(N.Link,{size:18}),title:"Insert Link",onClick:v},{id:"image",command:"insertImage",icon:c>0?p.jsxs("div",{className:"relative",children:[p.jsx(N.Image,{size:18}),p.jsx("span",{className:"absolute -top-2 -right-2 bg-blue-600 text-white text-xs rounded-full w-4 h-4 flex items-center justify-center",children:c})]}):p.jsx(N.Image,{size:18}),title:"Insert Image",onClick:n}];return p.jsxs("div",{className:"flex flex-wrap justify-between items-center p-3 bg-gray-50 border-b border-gray-200",children:[p.jsx("div",{className:"flex flex-wrap items-center gap-1",children:M.map(h=>{if("separator"in h)return p.jsx("div",{className:"w-px h-6 bg-gray-300 mx-2"},h.id);const E=h.isActive!==void 0?h.isActive:m.includes(h.command);return p.jsx("button",{onClick:()=>h.onClick?h.onClick():e(h.command,h.value),title:h.title,type:"button",className:`w-9 h-9 flex items-center justify-center rounded-md border transition-colors duration-200 ${E?"bg-blue-100 text-blue-600 border-blue-300 hover:bg-blue-200":"bg-white border-gray-300 text-gray-700 hover:bg-gray-100"}`,children:h.icon},h.id)})}),l&&p.jsxs("div",{className:"flex items-center gap-2 mt-2 sm:mt-0",children:[p.jsxs("button",{onClick:a,disabled:!i,title:"Save Document",className:"flex items-center gap-2 px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded-md hover:bg-blue-700 disabled:bg-blue-300 disabled:cursor-not-allowed transition-colors duration-200",children:[p.jsx(N.Save,{size:16}),p.jsx("span",{children:"Save"})]}),p.jsxs("button",{onClick:r,title:"Export as HTML",className:"flex items-center gap-2 px-4 py-2 bg-green-600 text-white text-sm font-medium rounded-md hover:bg-green-700 transition-colors duration-200",children:[p.jsx(N.FileDown,{size:16}),p.jsx("span",{children:"Export"})]}),p.jsxs("button",{onClick:o,title:"Clear Editor",className:"flex items-center gap-2 px-4 py-2 bg-red-600 text-white text-sm font-medium rounded-md hover:bg-red-700 transition-colors duration-200",children:[p.jsx(N.Trash2,{size:16}),p.jsx("span",{children:"Clear"})]})]})]})},qe=({wordCount:e,characterCount:a,hasUnsavedChanges:r,pendingImagesCount:o=0})=>p.jsxs("div",{className:"flex justify-between items-center px-5 py-3 bg-gray-50 border-t border-gray-200 text-sm text-gray-600",children:[p.jsxs("div",{className:"flex items-center gap-6",children:[p.jsxs("div",{children:["Words: ",p.jsx("strong",{className:"text-gray-800",children:e})]}),p.jsxs("div",{children:["Characters: ",p.jsx("strong",{className:"text-gray-800",children:a})]}),o>0&&p.jsxs("div",{className:"flex items-center gap-1",children:[p.jsx(N.Image,{size:14,className:"text-blue-600"}),p.jsxs("span",{className:"text-blue-600",children:[o," image",o!==1?"s":""]})]})]}),p.jsx("div",{className:"flex items-center gap-2",children:p.jsxs("div",{className:`flex items-center gap-1 ${r?"text-orange-600":"text-green-600"}`,children:[r&&p.jsx(N.Save,{size:14,className:"animate-pulse"}),p.jsx("strong",{children:r?"Unsaved Changes":"Saved"})]})})]}),Je=({initialContent:e="",onImageUpload:a,imageUploadEndpoint:r,allowedImageTypes:o,maxImageSize:n})=>{const[l,i]=z.useState({content:e,title:"Untitled Document",wordCount:e.trim()?e.trim().split(/\s+/).length:0,characterCount:e.length,hasUnsavedChanges:!1,pendingImages:[]}),c=z.useRef(null),m=z.useRef(new Map),_=z.useRef(e);z.useEffect(()=>{e!==_.current&&(c.current&&(c.current.innerHTML=e),i(g=>({...g,content:e,wordCount:e.trim()?e.trim().split(/\s+/).length:0,characterCount:e.length,hasUnsavedChanges:!1})),_.current=e)},[e]),z.useEffect(()=>{c.current&&!c.current.innerHTML&&e&&(c.current.innerHTML=e)},[e]);const C=z.useCallback(g=>{const w=g.trim()?g.trim().split(/\s+/).length:0,j=g.length;i(s=>({...s,content:g,wordCount:w,characterCount:j,hasUnsavedChanges:!0})),_.current=g},[]),I=z.useCallback(g=>{i(w=>({...w,title:g,hasUnsavedChanges:!0}))},[]),P=z.useCallback((g,w)=>{c.current&&(c.current.focus(),document.execCommand(g,!1,w),C(c.current.innerHTML))},[C]),v=g=>o.includes(g.type)?g.size>n?{valid:!1,error:`File too large. Maximum size: ${Math.round(n/(1024*1024))}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type. Allowed types: ${o.join(", ")}`},M=z.useCallback(async(g,w=!0)=>{const j=v(g);if(!j.valid){alert(j.error);return}if(!c.current)return;const s=`image-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,S=new FileReader;S.onload=R=>{const V=R.target?.result;m.current.set(s,{originalUrl:V,fileName:g.name,size:g.size,type:g.type});const O=document.createElement("img");if(O.src=V,O.alt=g.name,O.className="image-uploading",O.setAttribute("data-image-id",s),O.setAttribute("data-file-name",g.name),w&&window.getSelection){const W=window.getSelection();if(W&&W.rangeCount>0){const B=W.getRangeAt(0);B.deleteContents(),B.insertNode(O),B.setStartAfter(O),B.collapse(!0),W.removeAllRanges(),W.addRange(B)}else c.current.appendChild(O)}else c.current.appendChild(O);C(c.current.innerHTML),(a||r)&&i(W=>({...W,pendingImages:[...W.pendingImages,{id:s,file:g,placeholderUrl:V,status:"pending"}]}))},S.readAsDataURL(g)},[a,r,C,o,n]),h=z.useCallback(async()=>{if(!a&&!r)return;const g=l.pendingImages.filter(w=>w.status==="pending");if(g.length!==0){for(const w of g)try{i(S=>({...S,pendingImages:S.pendingImages.map(R=>R.id===w.id?{...R,status:"uploading"}:R)}));let j;if(a)j=await a(w.file);else if(r){const S=new FormData;S.append("image",w.file);const R=await fetch(r,{method:"POST",body:S});if(!R.ok)throw new Error(`Upload failed: ${R.statusText}`);const V=await R.json();j=V.url||V.imageUrl||V.data}else throw new Error("No upload method provided");const s=c.current?.querySelector(`img[data-image-id="${w.id}"]`);if(s){s.src=j,s.classList.remove("image-uploading"),s.classList.add("image-uploaded");const S=m.current.get(w.id);S&&m.current.set(w.id,{...S,uploadedUrl:j})}i(S=>({...S,pendingImages:S.pendingImages.map(R=>R.id===w.id?{...R,status:"uploaded"}:R)}))}catch(j){console.error("Image upload failed:",j);const s=c.current?.querySelector(`img[data-image-id="${w.id}"]`);s&&(s.classList.remove("image-uploading"),s.classList.add("image-failed")),i(S=>({...S,pendingImages:S.pendingImages.map(R=>R.id===w.id?{...R,status:"failed"}:R)}))}c.current&&C(c.current.innerHTML)}},[l.pendingImages,a,r,C]),E=z.useCallback(g=>{const w=g.clipboardData.items;for(const j of w)if(j.type.indexOf("image")!==-1){g.preventDefault();const s=j.getAsFile();s&&M(s);break}setTimeout(()=>{c.current&&C(c.current.innerHTML)},0)},[M,C]),U=z.useCallback(g=>{g.preventDefault();const w=g.dataTransfer.files;for(const j of w)j.type.startsWith("image/")&&M(j,!1)},[M]),G=z.useCallback(()=>{try{const g=c.current?.innerHTML||l.content;return{success:!0,data:{title:l.title,content:g,metadata:{createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),wordCount:l.wordCount,characterCount:l.characterCount}}}}catch(g){return{success:!1,error:g instanceof Error?g.message:"Validation failed"}}},[l]),F=z.useCallback((g={includeStyles:!0,includeMeta:!0})=>{const w=G();if(!w.success)throw new Error(w.error);const{data:j}=w;let s=`<!DOCTYPE html>
7
+ <%s key={someKey} {...props} />`,R,E,$,E),re[E+R]=!0)}if(E=null,k!==void 0&&(r(k),E=""+k),c(j)&&(r(j.key),E=""+j.key),"key"in j){k={};for(var oe in j)oe!=="key"&&(k[oe]=j[oe])}else k=j;return E&&i(k,typeof n=="function"?n.displayName||n.name||"Unknown":n),f(n,E,k,a(),ee,ne)}function L(n){U(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===d&&(n._payload.status==="fulfilled"?U(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function U(n){return typeof n=="object"&&n!==null&&n.$$typeof===T}var D=y,T=Symbol.for("react.transitional.element"),B=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),J=Symbol.for("react.strict_mode"),W=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),I=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),w=Symbol.for("react.activity"),S=Symbol.for("react.client.reference"),x=D.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,v=Object.prototype.hasOwnProperty,z=Array.isArray,F=console.createTask?console.createTask:function(){return null};D={react_stack_bottom_frame:function(n){return n()}};var M,G={},b=D.react_stack_bottom_frame.bind(D,u)(),V=F(o(u)),re={};pe.Fragment=O,pe.jsx=function(n,j,k){var R=1e4>x.recentlyCreatedOwnerStacks++;return A(n,j,k,!1,R?Error("react-stack-top-frame"):b,R?F(o(n)):V)},pe.jsxs=function(n,j,k){var R=1e4>x.recentlyCreatedOwnerStacks++;return A(n,j,k,!0,R?Error("react-stack-top-frame"):b,R?F(o(n)):V)}})()),pe}var He;function It(){return He||(He=1,process.env.NODE_ENV==="production"?xe.exports=zt():xe.exports=_t()),xe.exports}var s=It();const Nt=({onCommand:e,onSave:t,onExport:r,onClear:o,onImageUpload:a,showButtons:u=!1,hasUnsavedChanges:c,pendingImagesCount:i=0})=>{const[m,f]=y.useState([]),[A,L]=y.useState("p"),[U,D]=y.useState(!1),[T,B]=y.useState(!1),[O,J]=y.useState(!1),[W,C]=y.useState(!1),[I,K]=y.useState(!1),[Y,X]=y.useState(!1),[h,d]=y.useState("left"),w=y.useRef(null),S=y.useCallback(()=>{if(typeof window>"u"||typeof document>"u")return;const P=window.getSelection();if(!P||P.rangeCount===0||P.isCollapsed)return;const H=P.getRangeAt(0).commonAncestorContainer;D(document.queryCommandState("bold")),B(document.queryCommandState("italic")),J(document.queryCommandState("underline")),C(document.queryCommandState("strikeThrough")),K(document.queryCommandState("insertUnorderedList")),X(document.queryCommandState("insertOrderedList")),document.queryCommandState("justifyLeft")?d("left"):document.queryCommandState("justifyCenter")?d("center"):document.queryCommandState("justifyRight")&&d("right");let Q=H,Z="p";for(;Q&&Q!==document.body;){if(Q.nodeType===Node.ELEMENT_NODE){const Be=Q.tagName.toLowerCase();if(["h1","h2","h3","h4","h5","h6","p","div","blockquote","pre"].includes(Be)){["h1","h2"].includes(Be)&&(Z=Be);break}}Q=Q.parentNode}L(Z);const te=[];U&&te.push("bold"),T&&te.push("italic"),O&&te.push("underline"),W&&te.push("strikeThrough"),I&&te.push("insertUnorderedList"),Y&&te.push("insertOrderedList"),h==="left"&&te.push("justifyLeft"),h==="center"&&te.push("justifyCenter"),h==="right"&&te.push("justifyRight"),(Z==="h1"||Z==="h2")&&te.push(`formatBlock:${Z}`),f(te)},[U,T,O,W,I,Y,h]);y.useEffect(()=>{const P=()=>{requestAnimationFrame(S)},l=()=>{setTimeout(S,10)},H=()=>{setTimeout(S,10)};return document.addEventListener("selectionchange",P),document.addEventListener("mouseup",l),document.addEventListener("keyup",H),S(),()=>{document.removeEventListener("selectionchange",P),document.removeEventListener("mouseup",l),document.removeEventListener("keyup",H)}},[S]);const x=()=>{const P=prompt("Enter URL:","https://");P&&e("createLink",P)},v=()=>{a()},z=P=>{e("formatBlock",P)},F=()=>{e("indent")},M=()=>{e("outdent")},G=()=>{e("undo")},b=()=>{e("redo")},V=()=>{e("formatBlock","pre")},re=()=>{e("formatBlock","blockquote")},n=()=>{e("superscript")},j=()=>{e("subscript")},k=[{id:"undo",command:"undo",icon:s.jsx(N.Undo,{size:18}),title:"Undo",onClick:G},{id:"redo",command:"redo",icon:s.jsx(N.Redo,{size:18}),title:"Redo",onClick:b},{id:"separator-1",separator:!0},{id:"bold",command:"bold",icon:s.jsx(N.Bold,{size:18}),title:"Bold (Ctrl+B)",isActive:U},{id:"italic",command:"italic",icon:s.jsx(N.Italic,{size:18}),title:"Italic (Ctrl+I)",isActive:T},{id:"underline",command:"underline",icon:s.jsx(N.Underline,{size:18}),title:"Underline (Ctrl+U)",isActive:O},{id:"strikeThrough",command:"strikeThrough",icon:s.jsx(N.Strikethrough,{size:18}),title:"Strikethrough",isActive:W},{id:"separator-2",separator:!0},{id:"heading-1",command:"formatBlock",value:"h1",icon:s.jsx(N.Heading1,{size:18}),title:"Heading 1",isActive:A==="h1"},{id:"heading-2",command:"formatBlock",value:"h2",icon:s.jsx(N.Heading2,{size:18}),title:"Heading 2",isActive:A==="h2"},{id:"paragraph",command:"formatBlock",value:"p",icon:s.jsx(N.Type,{size:18}),title:"Paragraph",isActive:A==="p"},{id:"code",command:"formatBlock",value:"pre",icon:s.jsx(N.Code,{size:18}),title:"Code Block",onClick:V},{id:"quote",command:"formatBlock",value:"blockquote",icon:s.jsx(N.Quote,{size:18}),title:"Blockquote",onClick:re},{id:"separator-3",separator:!0},{id:"unordered-list",command:"insertUnorderedList",icon:s.jsx(N.List,{size:18}),title:"Bullet List",isActive:I},{id:"ordered-list",command:"insertOrderedList",icon:s.jsx(N.ListOrdered,{size:18}),title:"Numbered List",isActive:Y},{id:"indent",command:"indent",icon:s.jsx(N.Indent,{size:18}),title:"Indent",onClick:F},{id:"outdent",command:"outdent",icon:s.jsx(N.Outdent,{size:18}),title:"Outdent",onClick:M},{id:"separator-4",separator:!0},{id:"align-left",command:"justifyLeft",icon:s.jsx(N.AlignLeft,{size:18}),title:"Align Left",isActive:h==="left"},{id:"align-center",command:"justifyCenter",icon:s.jsx(N.AlignCenter,{size:18}),title:"Center",isActive:h==="center"},{id:"align-right",command:"justifyRight",icon:s.jsx(N.AlignRight,{size:18}),title:"Align Right",isActive:h==="right"},{id:"separator-5",separator:!0},{id:"superscript",command:"superscript",icon:s.jsx(N.Superscript,{size:18}),title:"Superscript",onClick:n},{id:"subscript",command:"subscript",icon:s.jsx(N.Subscript,{size:18}),title:"Subscript",onClick:j},{id:"link",command:"createLink",icon:s.jsx(N.Link,{size:18}),title:"Insert Link",onClick:x},{id:"image",command:"insertImage",icon:i>0?s.jsxs("div",{className:"relative",children:[s.jsx(N.Image,{size:18}),s.jsx("span",{className:"absolute -top-2 -right-2 bg-blue-600 text-white text-xs rounded-full w-4 h-4 flex items-center justify-center",children:i})]}):s.jsx(N.Image,{size:18}),title:"Insert Image",onClick:v}],R=P=>s.jsx("div",{className:"flex items-center border-r border-gray-200 pr-2 mr-2 last:border-r-0 last:pr-0 last:mr-0",children:P.map(l=>{if(l.separator)return s.jsx("div",{className:"w-px h-6 bg-gray-300 mx-2"},l.id);const H=l.isActive!==void 0?l.isActive:l.command?m.includes(l.command)||l.command==="formatBlock"&&l.value===A:!1;return s.jsx("button",{onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),l.onClick?l.onClick():l.command==="formatBlock"&&l.value?z(l.value):l.command&&e(l.command,l.value),setTimeout(()=>{const Z=document.querySelector('[contenteditable="true"]');Z&&Z.focus()},10)},title:l.title,type:"button",className:`min-w-[36px] h-9 flex items-center justify-center rounded-md border transition-all duration-150 ${H?"bg-blue-100 text-blue-600 border-blue-300 hover:bg-blue-200 shadow-sm":"bg-white border-gray-300 text-gray-700 hover:bg-gray-100 hover:border-gray-400"} active:scale-95 mx-0.5`,disabled:l.disabled,children:l.icon},l.id)})}),ee=k.slice(0,3),ne=k.slice(3,10),E=k.slice(10,16),$=k.slice(16,20),oe=k.slice(20,24),ae=k.slice(24,28),de=k.slice(28);return s.jsxs("div",{ref:w,className:"flex flex-col sm:flex-row flex-wrap items-start sm:items-center justify-between p-3 bg-gray-50 border-b border-gray-200 gap-2",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-1 order-1 w-full sm:w-auto",children:[R(ee),R(ne),R(E),R($),R(oe),R(ae),R(de)]}),u&&s.jsxs("div",{className:"flex items-center gap-2 order-2 sm:order-3 mt-2 sm:mt-0 flex-shrink-0",children:[s.jsxs("button",{onClick:P=>{P.preventDefault(),P.stopPropagation(),t(),setTimeout(()=>{const l=document.querySelector('[contenteditable="true"]');l&&l.focus()},10)},disabled:!c,title:"Save Document (Ctrl+S)",className:"flex items-center gap-2 px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded-md hover:bg-blue-700 disabled:bg-blue-300 disabled:cursor-not-allowed transition-colors duration-200 active:scale-95",children:[s.jsx(N.Save,{size:16}),s.jsx("span",{className:"hidden sm:inline",children:"Save"})]}),s.jsxs("button",{onClick:P=>{P.preventDefault(),P.stopPropagation(),r(),setTimeout(()=>{const l=document.querySelector('[contenteditable="true"]');l&&l.focus()},10)},title:"Export as HTML",className:"flex items-center gap-2 px-4 py-2 bg-green-600 text-white text-sm font-medium rounded-md hover:bg-green-700 transition-colors duration-200 active:scale-95",children:[s.jsx(N.FileDown,{size:16}),s.jsx("span",{className:"hidden sm:inline",children:"Export"})]}),s.jsxs("button",{onClick:P=>{P.preventDefault(),P.stopPropagation(),o(),setTimeout(()=>{const l=document.querySelector('[contenteditable="true"]');l&&l.focus()},10)},title:"Clear Editor",className:"flex items-center gap-2 px-4 py-2 bg-red-600 text-white text-sm font-medium rounded-md hover:bg-red-700 transition-colors duration-200 active:scale-95",children:[s.jsx(N.Trash2,{size:16}),s.jsx("span",{className:"hidden sm:inline",children:"Clear"})]})]}),s.jsxs("div",{className:"flex items-center gap-3 text-sm text-gray-500 order-3 sm:order-2 mt-2 sm:mt-0 flex-shrink-0",children:[i>0&&s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(N.Image,{size:14}),s.jsxs("span",{children:[i," pending"]})]}),c&&s.jsxs("span",{className:"flex items-center gap-1 text-amber-600",children:[s.jsx("span",{className:"w-2 h-2 bg-amber-500 rounded-full animate-pulse"}),s.jsx("span",{children:"Unsaved changes"})]})]})]})},Lt=({wordCount:e,characterCount:t,hasUnsavedChanges:r,pendingImagesCount:o=0})=>s.jsxs("div",{className:"flex justify-between items-center px-5 py-3 bg-gray-50 border-t border-gray-200 text-sm text-gray-600",children:[s.jsxs("div",{className:"flex items-center gap-6",children:[s.jsxs("div",{children:["Words: ",s.jsx("strong",{className:"text-gray-800",children:e})]}),s.jsxs("div",{children:["Characters: ",s.jsx("strong",{className:"text-gray-800",children:t})]}),o>0&&s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx(N.Image,{size:14,className:"text-blue-600"}),s.jsxs("span",{className:"text-blue-600",children:[o," image",o!==1?"s":""]})]})]}),s.jsx("div",{className:"flex items-center gap-2",children:s.jsxs("div",{className:`flex items-center gap-1 ${r?"text-orange-600":"text-green-600"}`,children:[r&&s.jsx(N.Save,{size:14,className:"animate-pulse"}),s.jsx("strong",{children:r?"Unsaved Changes":"Saved"})]})})]}),Ot=({initialContent:e="",onImageUpload:t,imageUploadEndpoint:r,allowedImageTypes:o=["image/jpeg","image/png","image/gif","image/webp"],maxImageSize:a=5*1024*1024})=>{const[u,c]=y.useState({content:e,title:"Untitled Document",wordCount:e.trim()?e.trim().split(/\s+/).length:0,characterCount:e.length,hasUnsavedChanges:!1,pendingImages:[]}),i=y.useRef(null),m=y.useRef(new Map),f=y.useRef(e),A=y.useRef(!0),L=y.useCallback(()=>{if(!i.current)return;i.current.focus();const d=window.getSelection();if(d&&d.rangeCount>0){const x=d.getRangeAt(0);if(i.current.contains(x.commonAncestorContainer))return}const w=document.createRange();w.selectNodeContents(i.current),w.collapse(!1);const S=window.getSelection();S?.removeAllRanges(),S?.addRange(w)},[]),U=y.useCallback(()=>{const d=window.getSelection();if(!d||d.rangeCount===0||!i.current)return null;const w=d.getRangeAt(0);return i.current.contains(w.commonAncestorContainer)?w.cloneRange():null},[]),D=y.useCallback(d=>{if(!d||!i.current)return;i.current.focus();const w=window.getSelection();w?.removeAllRanges(),w?.addRange(d)},[]);y.useEffect(()=>{i.current&&A.current&&(i.current.innerHTML=e||"",A.current=!1)},[e]),y.useEffect(()=>{e!==f.current&&i.current&&(i.current.innerHTML=e,f.current=e,c(d=>({...d,content:e,wordCount:e.trim()?e.trim().split(/\s+/).length:0,characterCount:e.length,hasUnsavedChanges:!1})))},[e]);const T=y.useCallback(d=>{const w=d.trim()?d.trim().split(/\s+/).length:0,S=d.length;c(x=>({...x,content:d,wordCount:w,characterCount:S,hasUnsavedChanges:!0})),f.current=d},[]),B=y.useCallback(d=>{c(w=>({...w,title:d,hasUnsavedChanges:!0}))},[]),O=y.useCallback((d,w)=>{if(!i.current)return;const S=U();if(i.current.focus(),S)D(S);else{const x=window.getSelection();if(!x||x.rangeCount===0){const v=document.createRange();v.selectNodeContents(i.current),v.collapse(!1),x?.removeAllRanges(),x?.addRange(v)}}try{let x=!1;if(d==="formatBlock"&&w)x=document.execCommand("formatBlock",!1,`<${w}>`);else if(d==="createLink"&&w){const v=window.getSelection();v&&!v.isCollapsed?x=document.execCommand("createLink",!1,w):(document.execCommand("insertHTML",!1,`<a href="${w}" target="_blank">${w}</a>`),x=!0)}else x=document.execCommand(d,!1,w);x||console.warn(`Command ${d} failed to execute`),setTimeout(()=>{i.current&&T(i.current.innerHTML)},0)}catch(x){console.error(`Command ${d} failed:`,x)}i.current.focus()},[T,U,D]),J=y.useCallback(d=>o.includes(d.type)?d.size>a?{valid:!1,error:`File too large. Maximum size: ${Math.round(a/(1024*1024))}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type. Allowed types: ${o.join(", ")}`},[o,a]),W=y.useCallback(async(d,w=!0)=>{const S=J(d);if(!S.valid){alert(S.error);return}if(!i.current)return;const x=`image-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,v=new FileReader;v.onload=z=>{const F=z.target?.result;m.current.set(x,{originalUrl:F,fileName:d.name,size:d.size,type:d.type});const M=document.createElement("img");M.src=F,M.alt=d.name,M.className="max-w-full h-auto border rounded",M.setAttribute("data-image-id",x),M.setAttribute("data-file-name",d.name),M.style.maxWidth="100%",M.style.height="auto";const G=U();if(w&&G){G.deleteContents(),G.insertNode(M);const b=document.createRange();b.setStartAfter(M),b.collapse(!0);const V=window.getSelection();V?.removeAllRanges(),V?.addRange(b)}else i.current?.appendChild(M);i.current&&T(i?.current?.innerHTML),(t||r)&&c(b=>({...b,pendingImages:[...b.pendingImages,{id:x,file:d,placeholderUrl:F,status:"pending"}]})),i.current?.focus()},v.readAsDataURL(d)},[J,T,t,r,U]),C=y.useCallback(async()=>{if(!t&&!r)return;const d=u.pendingImages.filter(w=>w.status==="pending");if(d.length!==0){for(const w of d)try{c(v=>({...v,pendingImages:v.pendingImages.map(z=>z.id===w.id?{...z,status:"uploading"}:z)}));let S;if(t)S=await t(w.file);else if(r){const v=new FormData;v.append("image",w.file);const z=await fetch(r,{method:"POST",body:v});if(!z.ok)throw new Error(`Upload failed: ${z.statusText}`);const F=await z.json();S=F.url||F.imageUrl||F.data}else throw new Error("No upload method provided");const x=i.current?.querySelector(`img[data-image-id="${w.id}"]`);if(x){x.src=S,x.classList.add("uploaded");const v=m.current.get(w.id);v&&m.current.set(w.id,{...v,uploadedUrl:S})}c(v=>({...v,pendingImages:v.pendingImages.map(z=>z.id===w.id?{...z,status:"uploaded"}:z)}))}catch(S){console.error("Image upload failed:",S);const x=i.current?.querySelector(`img[data-image-id="${w.id}"]`);x&&x.classList.add("failed"),c(v=>({...v,pendingImages:v.pendingImages.map(z=>z.id===w.id?{...z,status:"failed"}:z)}))}i.current&&T(i.current.innerHTML)}},[u.pendingImages,t,r,T]),I=y.useCallback(d=>{const w=d.clipboardData.items;let S=!1;for(const x of w)if(x.type.indexOf("image")!==-1){d.preventDefault();const v=x.getAsFile();v&&(S=!0,W(v));break}S||setTimeout(()=>{i.current&&T(i.current.innerHTML)},0)},[W,T]),K=y.useCallback(d=>{d.preventDefault();const w=Array.from(d.dataTransfer.files);let S=!1;for(const x of w)x.type.startsWith("image/")&&(S=!0,W(x,!1));if(!S&&i.current){const x=window.getSelection();if(x&&x.rangeCount>0){const v=x.getRangeAt(0);i.current.contains(v.commonAncestorContainer)&&setTimeout(()=>{i.current&&T(i.current.innerHTML)},0)}}},[W,T]),Y=y.useCallback(()=>{try{const d=i.current?.innerHTML||u.content;return{success:!0,data:{title:u.title,content:d,metadata:{createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),wordCount:u.wordCount,characterCount:u.characterCount}}}}catch(d){return{success:!1,error:d instanceof Error?d.message:"Validation failed"}}},[u]),X=y.useCallback((d={includeStyles:!0,includeMeta:!0})=>{const w=Y();if(!w.success)throw new Error(w.error);const{data:S}=w;let x=`<!DOCTYPE html>
8
8
  <html>
9
9
  <head>
10
10
  <meta charset="UTF-8">
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
12
- <title>${j?.title||"Document"}</title>`;return g.includeStyles&&(s+=`
12
+ <title>${S?.title||"Document"}</title>`;return d.includeStyles&&(x+=`
13
13
  <style>
14
14
  body {
15
15
  font-family: system-ui, -apple-system, sans-serif;
@@ -37,41 +37,25 @@ React keys must be passed directly to JSX without using spread:
37
37
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
38
38
  margin: 16px 0;
39
39
  }
40
- </style>`),s+=`
40
+ h1 { font-size: 2em; margin: 0.67em 0; }
41
+ h2 { font-size: 1.5em; margin: 0.75em 0; }
42
+ p { margin: 1em 0; }
43
+ ul, ol { margin: 1em 0; padding-left: 2em; }
44
+ a { color: #2563eb; text-decoration: underline; }
45
+ .image-uploading { opacity: 0.7; }
46
+ .image-failed { border: 2px solid #ef4444; }
47
+ </style>`),x+=`
41
48
  </head>
42
- <body>`,g.includeMeta&&j&&(s+=`
49
+ <body>`,d.includeMeta&&S&&(x+=`
43
50
  <div class="document-meta">
44
- <h1>${j.title}</h1>
45
- <p><small>Created: ${new Date(j.metadata.createdAt).toLocaleString()} |
46
- Words: ${j.metadata.wordCount} |
47
- Characters: ${j.metadata.characterCount}</small></p>
51
+ <h1>${S.title}</h1>
52
+ <p><small>Created: ${new Date(S.metadata.createdAt).toLocaleString()} |
53
+ Words: ${S.metadata.wordCount} |
54
+ Characters: ${S.metadata.characterCount}</small></p>
48
55
  <hr>
49
- </div>`),s+=`
50
- <div class="${g.includeStyles?"readonly-content":""}">
51
- ${j?.content||""}
56
+ </div>`),x+=`
57
+ <div class="${d.includeStyles?"readonly-content":""}">
58
+ ${S?.content||""}
52
59
  </div>
53
60
  </body>
54
- </html>`,s},[G]),L=z.useCallback(()=>{i({content:"",title:"Untitled Document",wordCount:0,characterCount:0,hasUnsavedChanges:!1,pendingImages:[]}),m.current.clear(),c.current&&(c.current.innerHTML=""),_.current=""},[]);return{editorState:l,editorRef:c,updateContent:C,updateTitle:I,executeCommand:P,getValidationResult:G,exportToHTML:F,clearEditor:L,handlePaste:E,handleDrop:U,insertImage:M,uploadPendingImages:h}},Xe=(e,a)=>{const r=new Array(e.length+a.length);for(let o=0;o<e.length;o++)r[o]=e[o];for(let o=0;o<a.length;o++)r[e.length+o]=a[o];return r},Ze=(e,a)=>({classGroupId:e,validator:a}),je=(e=new Map,a=null,r)=>({nextPart:e,validators:a,classGroupId:r}),ue="-",Ee=[],Qe="arbitrary..",Ke=e=>{const a=et(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return $e(i);const c=i.split(ue),m=c[0]===""&&c.length>1?1:0;return Se(c,m,a)},getConflictingClassGroupIds:(i,c)=>{if(c){const m=o[i],_=r[i];return m?_?Xe(_,m):m:_||Ee}return r[i]||Ee}}},Se=(e,a,r)=>{if(e.length-a===0)return r.classGroupId;const n=e[a],l=r.nextPart.get(n);if(l){const _=Se(e,a+1,l);if(_)return _}const i=r.validators;if(i===null)return;const c=a===0?e.join(ue):e.slice(a).join(ue),m=i.length;for(let _=0;_<m;_++){const C=i[_];if(C.validator(c))return C.classGroupId}},$e=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=e.slice(1,-1),r=a.indexOf(":"),o=a.slice(0,r);return o?Qe+o:void 0})(),et=e=>{const{theme:a,classGroups:r}=e;return tt(r,a)},tt=(e,a)=>{const r=je();for(const o in e){const n=e[o];fe(n,r,o,a)}return r},fe=(e,a,r,o)=>{const n=e.length;for(let l=0;l<n;l++){const i=e[l];rt(i,a,r,o)}},rt=(e,a,r,o)=>{if(typeof e=="string"){ot(e,a,r);return}if(typeof e=="function"){at(e,a,r,o);return}nt(e,a,r,o)},ot=(e,a,r)=>{const o=e===""?a:Te(a,e);o.classGroupId=r},at=(e,a,r,o)=>{if(it(e)){fe(e(o),a,r,o);return}a.validators===null&&(a.validators=[]),a.validators.push(Ze(r,e))},nt=(e,a,r,o)=>{const n=Object.entries(e),l=n.length;for(let i=0;i<l;i++){const[c,m]=n[i];fe(m,Te(a,c),r,o)}},Te=(e,a)=>{let r=e;const o=a.split(ue),n=o.length;for(let l=0;l<n;l++){const i=o[l];let c=r.nextPart.get(i);c||(c=je(),r.nextPart.set(i,c)),r=c}return r},it=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,st=e=>{if(e<1)return{get:()=>{},set:()=>{}};let a=0,r=Object.create(null),o=Object.create(null);const n=(l,i)=>{r[l]=i,a++,a>e&&(a=0,o=r,r=Object.create(null))};return{get(l){let i=r[l];if(i!==void 0)return i;if((i=o[l])!==void 0)return n(l,i),i},set(l,i){l in r?r[l]=i:n(l,i)}}},he="!",ze=":",lt=[],Ae=(e,a,r,o,n)=>({modifiers:e,hasImportantModifier:a,baseClassName:r,maybePostfixModifierPosition:o,isExternal:n}),ct=e=>{const{prefix:a,experimentalParseClassName:r}=e;let o=n=>{const l=[];let i=0,c=0,m=0,_;const C=n.length;for(let h=0;h<C;h++){const E=n[h];if(i===0&&c===0){if(E===ze){l.push(n.slice(m,h)),m=h+1;continue}if(E==="/"){_=h;continue}}E==="["?i++:E==="]"?i--:E==="("?c++:E===")"&&c--}const I=l.length===0?n:n.slice(m);let P=I,v=!1;I.endsWith(he)?(P=I.slice(0,-1),v=!0):I.startsWith(he)&&(P=I.slice(1),v=!0);const M=_&&_>m?_-m:void 0;return Ae(l,v,P,M)};if(a){const n=a+ze,l=o;o=i=>i.startsWith(n)?l(i.slice(n.length)):Ae(lt,!1,i,void 0,!0)}if(r){const n=o;o=l=>r({className:l,parseClassName:n})}return o},dt=e=>{const a=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{a.set(r,1e6+o)}),r=>{const o=[];let n=[];for(let l=0;l<r.length;l++){const i=r[l],c=i[0]==="[",m=a.has(i);c||m?(n.length>0&&(n.sort(),o.push(...n),n=[]),o.push(i)):n.push(i)}return n.length>0&&(n.sort(),o.push(...n)),o}},ut=e=>({cache:st(e.cacheSize),parseClassName:ct(e),sortModifiers:dt(e),...Ke(e)}),mt=/\s+/,pt=(e,a)=>{const{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n,sortModifiers:l}=a,i=[],c=e.trim().split(mt);let m="";for(let _=c.length-1;_>=0;_-=1){const C=c[_],{isExternal:I,modifiers:P,hasImportantModifier:v,baseClassName:M,maybePostfixModifierPosition:h}=r(C);if(I){m=C+(m.length>0?" "+m:m);continue}let E=!!h,U=o(E?M.substring(0,h):M);if(!U){if(!E){m=C+(m.length>0?" "+m:m);continue}if(U=o(M),!U){m=C+(m.length>0?" "+m:m);continue}E=!1}const G=P.length===0?"":P.length===1?P[0]:l(P).join(":"),F=v?G+he:G,L=F+U;if(i.indexOf(L)>-1)continue;i.push(L);const g=n(U,E);for(let w=0;w<g.length;++w){const j=g[w];i.push(F+j)}m=C+(m.length>0?" "+m:m)}return m},gt=(...e)=>{let a=0,r,o,n="";for(;a<e.length;)(r=e[a++])&&(o=Re(r))&&(n&&(n+=" "),n+=o);return n},Re=e=>{if(typeof e=="string")return e;let a,r="";for(let o=0;o<e.length;o++)e[o]&&(a=Re(e[o]))&&(r&&(r+=" "),r+=a);return r},ft=(e,...a)=>{let r,o,n,l;const i=m=>{const _=a.reduce((C,I)=>I(C),e());return r=ut(_),o=r.cache.get,n=r.cache.set,l=c,c(m)},c=m=>{const _=o(m);if(_)return _;const C=pt(m,r);return n(m,C),C};return l=i,(...m)=>l(gt(...m))},ht=[],D=e=>{const a=r=>r[e]||ht;return a.isThemeGetter=!0,a},Ne=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ie=/^\((?:(\w[\w-]*):)?(.+)\)$/i,bt=/^\d+\/\d+$/,xt=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,vt=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,wt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,yt=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,kt=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,te=e=>bt.test(e),y=e=>!!e&&!Number.isNaN(Number(e)),K=e=>!!e&&Number.isInteger(Number(e)),be=e=>e.endsWith("%")&&y(e.slice(0,-1)),J=e=>xt.test(e),_t=()=>!0,Ct=e=>vt.test(e)&&!wt.test(e),Le=()=>!1,jt=e=>yt.test(e),Et=e=>kt.test(e),St=e=>!d(e)&&!u(e),Tt=e=>re(e,Fe,Le),d=e=>Ne.test(e),ee=e=>re(e,Ue,Ct),xe=e=>re(e,It,y),Pe=e=>re(e,Oe,Le),zt=e=>re(e,De,Et),me=e=>re(e,Ge,jt),u=e=>Ie.test(e),ce=e=>oe(e,Ue),At=e=>oe(e,Lt),Me=e=>oe(e,Oe),Rt=e=>oe(e,Fe),Nt=e=>oe(e,De),pe=e=>oe(e,Ge,!0),re=(e,a,r)=>{const o=Ne.exec(e);return o?o[1]?a(o[1]):r(o[2]):!1},oe=(e,a,r=!1)=>{const o=Ie.exec(e);return o?o[1]?a(o[1]):r:!1},Oe=e=>e==="position"||e==="percentage",De=e=>e==="image"||e==="url",Fe=e=>e==="length"||e==="size"||e==="bg-size",Ue=e=>e==="length",It=e=>e==="number",Lt=e=>e==="family-name",Ge=e=>e==="shadow",Pt=ft(()=>{const e=D("color"),a=D("font"),r=D("text"),o=D("font-weight"),n=D("tracking"),l=D("leading"),i=D("breakpoint"),c=D("container"),m=D("spacing"),_=D("radius"),C=D("shadow"),I=D("inset-shadow"),P=D("text-shadow"),v=D("drop-shadow"),M=D("blur"),h=D("perspective"),E=D("aspect"),U=D("ease"),G=D("animate"),F=()=>["auto","avoid","all","avoid-page","page","left","right","column"],L=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],g=()=>[...L(),u,d],w=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],s=()=>[u,d,m],S=()=>[te,"full","auto",...s()],R=()=>[K,"none","subgrid",u,d],V=()=>["auto",{span:["full",K,u,d]},K,u,d],O=()=>[K,"auto",u,d],W=()=>["auto","min","max","fr",u,d],B=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],H=()=>["start","end","center","stretch","center-safe","end-safe"],Y=()=>["auto",...s()],q=()=>[te,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...s()],f=()=>[e,u,d],ae=()=>[...L(),Me,Pe,{position:[u,d]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],t=()=>["auto","cover","contain",Rt,Tt,{size:[u,d]}],b=()=>[be,ce,ee],x=()=>["","none","full",_,u,d],T=()=>["",y,ce,ee],X=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],k=()=>[y,be,Me,Pe],Z=()=>["","none",M,u,d],$=()=>["none",y,u,d],ie=()=>["none",y,u,d],we=()=>[y,u,d],ge=()=>[te,"full",...s()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[J],breakpoint:[J],color:[_t],container:[J],"drop-shadow":[J],ease:["in","out","in-out"],font:[St],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[J],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[J],shadow:[J],spacing:["px",y],text:[J],"text-shadow":[J],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",te,d,u,E]}],container:["container"],columns:[{columns:[y,d,u,c]}],"break-after":[{"break-after":F()}],"break-before":[{"break-before":F()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:g()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{start:S()}],end:[{end:S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:["visible","invisible","collapse"],z:[{z:[K,"auto",u,d]}],basis:[{basis:[te,"full","auto",c,...s()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[y,te,"auto","initial","none",d]}],grow:[{grow:["",y,u,d]}],shrink:[{shrink:["",y,u,d]}],order:[{order:[K,"first","last","none",u,d]}],"grid-cols":[{"grid-cols":R()}],"col-start-end":[{col:V()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":R()}],"row-start-end":[{row:V()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":W()}],"auto-rows":[{"auto-rows":W()}],gap:[{gap:s()}],"gap-x":[{"gap-x":s()}],"gap-y":[{"gap-y":s()}],"justify-content":[{justify:[...B(),"normal"]}],"justify-items":[{"justify-items":[...H(),"normal"]}],"justify-self":[{"justify-self":["auto",...H()]}],"align-content":[{content:["normal",...B()]}],"align-items":[{items:[...H(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...H(),{baseline:["","last"]}]}],"place-content":[{"place-content":B()}],"place-items":[{"place-items":[...H(),"baseline"]}],"place-self":[{"place-self":["auto",...H()]}],p:[{p:s()}],px:[{px:s()}],py:[{py:s()}],ps:[{ps:s()}],pe:[{pe:s()}],pt:[{pt:s()}],pr:[{pr:s()}],pb:[{pb:s()}],pl:[{pl:s()}],m:[{m:Y()}],mx:[{mx:Y()}],my:[{my:Y()}],ms:[{ms:Y()}],me:[{me:Y()}],mt:[{mt:Y()}],mr:[{mr:Y()}],mb:[{mb:Y()}],ml:[{ml:Y()}],"space-x":[{"space-x":s()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":s()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],w:[{w:[c,"screen",...q()]}],"min-w":[{"min-w":[c,"screen","none",...q()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[i]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",r,ce,ee]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,u,xe]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",be,d]}],"font-family":[{font:[At,d,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,u,d]}],"line-clamp":[{"line-clamp":[y,"none",u,xe]}],leading:[{leading:[l,...s()]}],"list-image":[{"list-image":["none",u,d]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",u,d]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:f()}],"text-color":[{text:f()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...X(),"wavy"]}],"text-decoration-thickness":[{decoration:[y,"from-font","auto",u,ee]}],"text-decoration-color":[{decoration:f()}],"underline-offset":[{"underline-offset":[y,"auto",u,d]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:s()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",u,d]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",u,d]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ae()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:t()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},K,u,d],radial:["",u,d],conic:[K,u,d]},Nt,zt]}],"bg-color":[{bg:f()}],"gradient-from-pos":[{from:b()}],"gradient-via-pos":[{via:b()}],"gradient-to-pos":[{to:b()}],"gradient-from":[{from:f()}],"gradient-via":[{via:f()}],"gradient-to":[{to:f()}],rounded:[{rounded:x()}],"rounded-s":[{"rounded-s":x()}],"rounded-e":[{"rounded-e":x()}],"rounded-t":[{"rounded-t":x()}],"rounded-r":[{"rounded-r":x()}],"rounded-b":[{"rounded-b":x()}],"rounded-l":[{"rounded-l":x()}],"rounded-ss":[{"rounded-ss":x()}],"rounded-se":[{"rounded-se":x()}],"rounded-ee":[{"rounded-ee":x()}],"rounded-es":[{"rounded-es":x()}],"rounded-tl":[{"rounded-tl":x()}],"rounded-tr":[{"rounded-tr":x()}],"rounded-br":[{"rounded-br":x()}],"rounded-bl":[{"rounded-bl":x()}],"border-w":[{border:T()}],"border-w-x":[{"border-x":T()}],"border-w-y":[{"border-y":T()}],"border-w-s":[{"border-s":T()}],"border-w-e":[{"border-e":T()}],"border-w-t":[{"border-t":T()}],"border-w-r":[{"border-r":T()}],"border-w-b":[{"border-b":T()}],"border-w-l":[{"border-l":T()}],"divide-x":[{"divide-x":T()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":T()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...X(),"hidden","none"]}],"divide-style":[{divide:[...X(),"hidden","none"]}],"border-color":[{border:f()}],"border-color-x":[{"border-x":f()}],"border-color-y":[{"border-y":f()}],"border-color-s":[{"border-s":f()}],"border-color-e":[{"border-e":f()}],"border-color-t":[{"border-t":f()}],"border-color-r":[{"border-r":f()}],"border-color-b":[{"border-b":f()}],"border-color-l":[{"border-l":f()}],"divide-color":[{divide:f()}],"outline-style":[{outline:[...X(),"none","hidden"]}],"outline-offset":[{"outline-offset":[y,u,d]}],"outline-w":[{outline:["",y,ce,ee]}],"outline-color":[{outline:f()}],shadow:[{shadow:["","none",C,pe,me]}],"shadow-color":[{shadow:f()}],"inset-shadow":[{"inset-shadow":["none",I,pe,me]}],"inset-shadow-color":[{"inset-shadow":f()}],"ring-w":[{ring:T()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:f()}],"ring-offset-w":[{"ring-offset":[y,ee]}],"ring-offset-color":[{"ring-offset":f()}],"inset-ring-w":[{"inset-ring":T()}],"inset-ring-color":[{"inset-ring":f()}],"text-shadow":[{"text-shadow":["none",P,pe,me]}],"text-shadow-color":[{"text-shadow":f()}],opacity:[{opacity:[y,u,d]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[y]}],"mask-image-linear-from-pos":[{"mask-linear-from":k()}],"mask-image-linear-to-pos":[{"mask-linear-to":k()}],"mask-image-linear-from-color":[{"mask-linear-from":f()}],"mask-image-linear-to-color":[{"mask-linear-to":f()}],"mask-image-t-from-pos":[{"mask-t-from":k()}],"mask-image-t-to-pos":[{"mask-t-to":k()}],"mask-image-t-from-color":[{"mask-t-from":f()}],"mask-image-t-to-color":[{"mask-t-to":f()}],"mask-image-r-from-pos":[{"mask-r-from":k()}],"mask-image-r-to-pos":[{"mask-r-to":k()}],"mask-image-r-from-color":[{"mask-r-from":f()}],"mask-image-r-to-color":[{"mask-r-to":f()}],"mask-image-b-from-pos":[{"mask-b-from":k()}],"mask-image-b-to-pos":[{"mask-b-to":k()}],"mask-image-b-from-color":[{"mask-b-from":f()}],"mask-image-b-to-color":[{"mask-b-to":f()}],"mask-image-l-from-pos":[{"mask-l-from":k()}],"mask-image-l-to-pos":[{"mask-l-to":k()}],"mask-image-l-from-color":[{"mask-l-from":f()}],"mask-image-l-to-color":[{"mask-l-to":f()}],"mask-image-x-from-pos":[{"mask-x-from":k()}],"mask-image-x-to-pos":[{"mask-x-to":k()}],"mask-image-x-from-color":[{"mask-x-from":f()}],"mask-image-x-to-color":[{"mask-x-to":f()}],"mask-image-y-from-pos":[{"mask-y-from":k()}],"mask-image-y-to-pos":[{"mask-y-to":k()}],"mask-image-y-from-color":[{"mask-y-from":f()}],"mask-image-y-to-color":[{"mask-y-to":f()}],"mask-image-radial":[{"mask-radial":[u,d]}],"mask-image-radial-from-pos":[{"mask-radial-from":k()}],"mask-image-radial-to-pos":[{"mask-radial-to":k()}],"mask-image-radial-from-color":[{"mask-radial-from":f()}],"mask-image-radial-to-color":[{"mask-radial-to":f()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":L()}],"mask-image-conic-pos":[{"mask-conic":[y]}],"mask-image-conic-from-pos":[{"mask-conic-from":k()}],"mask-image-conic-to-pos":[{"mask-conic-to":k()}],"mask-image-conic-from-color":[{"mask-conic-from":f()}],"mask-image-conic-to-color":[{"mask-conic-to":f()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ae()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:t()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",u,d]}],filter:[{filter:["","none",u,d]}],blur:[{blur:Z()}],brightness:[{brightness:[y,u,d]}],contrast:[{contrast:[y,u,d]}],"drop-shadow":[{"drop-shadow":["","none",v,pe,me]}],"drop-shadow-color":[{"drop-shadow":f()}],grayscale:[{grayscale:["",y,u,d]}],"hue-rotate":[{"hue-rotate":[y,u,d]}],invert:[{invert:["",y,u,d]}],saturate:[{saturate:[y,u,d]}],sepia:[{sepia:["",y,u,d]}],"backdrop-filter":[{"backdrop-filter":["","none",u,d]}],"backdrop-blur":[{"backdrop-blur":Z()}],"backdrop-brightness":[{"backdrop-brightness":[y,u,d]}],"backdrop-contrast":[{"backdrop-contrast":[y,u,d]}],"backdrop-grayscale":[{"backdrop-grayscale":["",y,u,d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[y,u,d]}],"backdrop-invert":[{"backdrop-invert":["",y,u,d]}],"backdrop-opacity":[{"backdrop-opacity":[y,u,d]}],"backdrop-saturate":[{"backdrop-saturate":[y,u,d]}],"backdrop-sepia":[{"backdrop-sepia":["",y,u,d]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":s()}],"border-spacing-x":[{"border-spacing-x":s()}],"border-spacing-y":[{"border-spacing-y":s()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",u,d]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[y,"initial",u,d]}],ease:[{ease:["linear","initial",U,u,d]}],delay:[{delay:[y,u,d]}],animate:[{animate:["none",G,u,d]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[h,u,d]}],"perspective-origin":[{"perspective-origin":g()}],rotate:[{rotate:$()}],"rotate-x":[{"rotate-x":$()}],"rotate-y":[{"rotate-y":$()}],"rotate-z":[{"rotate-z":$()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":["scale-3d"],skew:[{skew:we()}],"skew-x":[{"skew-x":we()}],"skew-y":[{"skew-y":we()}],transform:[{transform:[u,d,"","none","gpu","cpu"]}],"transform-origin":[{origin:g()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ge()}],"translate-x":[{"translate-x":ge()}],"translate-y":[{"translate-y":ge()}],"translate-z":[{"translate-z":ge()}],"translate-none":["translate-none"],accent:[{accent:f()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:f()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",u,d]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":s()}],"scroll-mx":[{"scroll-mx":s()}],"scroll-my":[{"scroll-my":s()}],"scroll-ms":[{"scroll-ms":s()}],"scroll-me":[{"scroll-me":s()}],"scroll-mt":[{"scroll-mt":s()}],"scroll-mr":[{"scroll-mr":s()}],"scroll-mb":[{"scroll-mb":s()}],"scroll-ml":[{"scroll-ml":s()}],"scroll-p":[{"scroll-p":s()}],"scroll-px":[{"scroll-px":s()}],"scroll-py":[{"scroll-py":s()}],"scroll-ps":[{"scroll-ps":s()}],"scroll-pe":[{"scroll-pe":s()}],"scroll-pt":[{"scroll-pt":s()}],"scroll-pr":[{"scroll-pr":s()}],"scroll-pb":[{"scroll-pb":s()}],"scroll-pl":[{"scroll-pl":s()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",u,d]}],fill:[{fill:["none",...f()]}],"stroke-w":[{stroke:[y,ce,ee,xe]}],stroke:[{stroke:["none",...f()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function Ve(e){var a,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(a=0;a<n;a++)e[a]&&(r=Ve(e[a]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function Mt(){for(var e,a,r=0,o="",n=arguments.length;r<n;r++)(e=arguments[r])&&(a=Ve(e))&&(o&&(o+=" "),o+=a);return o}function ve(...e){return Pt(Mt(e))}const Ot=({initialContent:e="",onChange:a,onSave:r,onExport:o,readOnly:n=!1,showButtons:l=!1,showSaveTitle:i=!1,showStatusBar:c=!1,height:m="500px",onImageUpload:_,imageUploadEndpoint:C,allowedImageTypes:I=["image/jpeg","image/png","image/gif","image/webp"],maxImageSize:P=5*1024*1024})=>{const{editorState:v,editorRef:M,updateContent:h,updateTitle:E,executeCommand:U,getValidationResult:G,exportToHTML:F,clearEditor:L,handlePaste:g,handleDrop:w,insertImage:j,uploadPendingImages:s}=Je({initialContent:e,onImageUpload:_,imageUploadEndpoint:C,allowedImageTypes:I,maxImageSize:P}),[S,R]=z.useState(!1),V=z.useRef(null);z.useEffect(()=>{if(a)try{const A=F({includeStyles:!1,includeMeta:!1});a(v.content,A,v.title)}catch{const t=`<!DOCTYPE html><html><body>${v.content}</body></html>`;a(v.content,t,v.title)}},[v.content,v.title,a,F]);const O=z.useCallback(async()=>{if(v.pendingImages.length>0)try{await s()}catch{alert("Failed to upload some images. Please check and try again.");return}if(G().success){const t=F();r?.(v.content,t)}else R(!0),setTimeout(()=>R(!1),3e3)},[v.content,v.pendingImages,G,F,r,s]),W=z.useCallback(async()=>{try{v.pendingImages.length>0&&await s();const A=F();o?.(A);const t=new Blob([A],{type:"text/html"}),b=URL.createObjectURL(t),x=document.createElement("a");x.href=b,x.download=`${v.title.replace(/\s+/g,"_")||"document"}.html`,document.body.appendChild(x),x.click(),document.body.removeChild(x),URL.revokeObjectURL(b)}catch(A){alert("Export failed: "+(A instanceof Error?A.message:"Unknown error"))}},[F,v.title,v.pendingImages,o,s]),B=z.useCallback(()=>{confirm("Are you sure you want to clear the editor? All unsaved changes will be lost.")&&L()},[L]),H=z.useCallback(A=>{h(A)},[h]),Y=A=>{E(A.target.value)},q=()=>{V.current?.click()},f=async A=>{const t=A.target.files;if(!(!t||t.length===0)){for(const b of Array.from(t))await j(b);V.current&&(V.current.value="")}};return p.jsxs("div",{className:ve("relative w-full bg-white border border-gray-300 rounded-lg overflow-hidden",n&&"pointer-events-none opacity-80"),style:{height:m},children:[i&&p.jsx("div",{className:"p-6 border-b border-gray-200 bg-gray-50",children:p.jsx("input",{type:"text",className:ve("w-full bg-transparent text-2xl font-bold text-gray-800 outline-none placeholder-gray-400",n&&"cursor-default"),value:v.title,onChange:Y,placeholder:"Document Title",readOnly:n})}),p.jsx(He,{onCommand:U,onSave:O,onExport:W,showButtons:l,onClear:B,hasUnsavedChanges:v.hasUnsavedChanges,onImageUpload:q,pendingImagesCount:v.pendingImages.length}),p.jsx("input",{type:"file",ref:V,className:"hidden",accept:I.join(","),multiple:!0,onChange:f}),S&&p.jsx("div",{className:"px-8 py-2 bg-red-50 text-red-600 text-sm",children:"Please fix validation errors before saving."}),p.jsx("div",{ref:M,className:ve("p-6 outline-none overflow-y-auto",`
55
- /* Heading styles */
56
- [&_h1]:text-3xl [&_h1]:font-bold [&_h1]:mt-6 [&_h1]:mb-4 [&_h1]:text-gray-800 [&_h1]:border-b [&_h1]:pb-2
57
- [&_h2]:text-2xl [&_h2]:font-bold [&_h2]:mt-5 [&_h2]:mb-3 [&_h2]:text-gray-800
58
- [&_h3]:text-xl [&_h3]:font-bold [&_h3]:mt-4 [&_h3]:mb-2 [&_h3]:text-gray-800
59
- /* Paragraph styles */
60
- [&_p]:mb-4 [&_p]:text-gray-700 [&_p]:leading-relaxed
61
- /* List styles */
62
- [&_ul]:list-disc [&_ul]:list-inside [&_ul]:mb-4 [&_ul]:ml-4 [&_ul]:space-y-1
63
- [&_ol]:list-decimal [&_ol]:list-inside [&_ol]:mb-4 [&_ol]:ml-4 [&_ol]:space-y-1
64
- [&_li]:mb-1
65
- /* Link styles */
66
- [&_a]:text-blue-600 [&_a]:hover:text-blue-800 [&_a]:underline [&_a]:transition-colors
67
- /* Blockquote styles */
68
- [&_blockquote]:border-l-4 [&_blockquote]:border-blue-500 [&_blockquote]:pl-4 [&_blockquote]:italic [&_blockquote]:text-gray-600 [&_blockquote]:my-4
69
- /* Code styles */
70
- [&_code]:bg-gray-100 [&_code]:px-2 [&_code]:py-1 [&_code]:rounded [&_code]:text-sm [&_code]:font-mono
71
- [&_pre]:bg-gray-800 [&_pre]:text-gray-100 [&_pre]:p-4 [&_pre]:rounded-lg [&_pre]:overflow-x-auto [&_pre]:my-4
72
- [&_pre_code]:bg-transparent [&_pre_code]:text-inherit [&_pre_code]:p-0
73
- /* Image styles */
74
- [&_img]:max-w-full [&_img]:h-auto [&_img]:rounded-lg [&_img]:shadow-md [&_img]:my-4
75
- [&_.image-uploading]:opacity-50 [&_.image-uploading]:animate-pulse
76
- [&_.image-failed]:border-2 [&_.image-failed]:border-red-500
77
- `,n?"bg-transparent cursor-default":"cursor-text bg-white","min-h-[200px]"),contentEditable:!n,suppressContentEditableWarning:!0,onInput:A=>H(A.currentTarget.innerHTML),onPaste:g,onDrop:w,onDragOver:A=>A.preventDefault(),onKeyDown:A=>{A.key==="Tab"&&(A.preventDefault(),U("indent"))},"data-placeholder":n?"":"Start typing...",style:{minHeight:"200px",maxHeight:`calc(${m} - ${i?"140px":"80px"} - ${c?"40px":"0px"})`}}),v.pendingImages.length>0&&p.jsx("div",{className:"px-8 pb-4",children:p.jsxs("div",{className:"flex items-center gap-2 text-sm text-blue-600 bg-blue-50 p-3 rounded-lg",children:[p.jsx(N.Upload,{size:16}),p.jsxs("span",{children:[v.pendingImages.length," image(s) pending upload. They will be uploaded when you save or export."]})]})}),c&&p.jsx(qe,{wordCount:v.wordCount,characterCount:v.characterCount,hasUnsavedChanges:v.hasUnsavedChanges,pendingImagesCount:v.pendingImages.length})]})};Q.TextEditor=Ot,Object.defineProperty(Q,Symbol.toStringTag,{value:"Module"})}));
61
+ </html>`,x},[Y]),h=y.useCallback(()=>{c({content:"",title:"Untitled Document",wordCount:0,characterCount:0,hasUnsavedChanges:!1,pendingImages:[]}),m.current.clear(),i.current&&(i.current.innerHTML="",L()),f.current=""},[L]);return{editorState:u,editorRef:i,updateContent:T,updateTitle:B,executeCommand:O,getValidationResult:Y,exportToHTML:X,clearEditor:h,handlePaste:I,handleDrop:K,insertImage:W,uploadPendingImages:C}},Mt=(e,t)=>{const r=new Array(e.length+t.length);for(let o=0;o<e.length;o++)r[o]=e[o];for(let o=0;o<t.length;o++)r[e.length+o]=t[o];return r},Pt=(e,t)=>({classGroupId:e,validator:t}),Ye=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),ve="-",Je=[],Ut="arbitrary..",Ft=e=>{const t=Bt(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:c=>{if(c.startsWith("[")&&c.endsWith("]"))return Dt(c);const i=c.split(ve),m=i[0]===""&&i.length>1?1:0;return qe(i,m,t)},getConflictingClassGroupIds:(c,i)=>{if(i){const m=o[c],f=r[c];return m?f?Mt(f,m):m:f||Je}return r[c]||Je}}},qe=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const a=e[t],u=r.nextPart.get(a);if(u){const f=qe(e,t+1,u);if(f)return f}const c=r.validators;if(c===null)return;const i=t===0?e.join(ve):e.slice(t).join(ve),m=c.length;for(let f=0;f<m;f++){const A=c[f];if(A.validator(i))return A.classGroupId}},Dt=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),o=t.slice(0,r);return o?Ut+o:void 0})(),Bt=e=>{const{theme:t,classGroups:r}=e;return Gt(r,t)},Gt=(e,t)=>{const r=Ye();for(const o in e){const a=e[o];ke(a,r,o,t)}return r},ke=(e,t,r,o)=>{const a=e.length;for(let u=0;u<a;u++){const c=e[u];Wt(c,t,r,o)}},Wt=(e,t,r,o)=>{if(typeof e=="string"){Vt(e,t,r);return}if(typeof e=="function"){Ht(e,t,r,o);return}Yt(e,t,r,o)},Vt=(e,t,r)=>{const o=e===""?t:Ke(t,e);o.classGroupId=r},Ht=(e,t,r,o)=>{if(Jt(e)){ke(e(o),t,r,o);return}t.validators===null&&(t.validators=[]),t.validators.push(Pt(r,e))},Yt=(e,t,r,o)=>{const a=Object.entries(e),u=a.length;for(let c=0;c<u;c++){const[i,m]=a[c];ke(m,Ke(t,i),r,o)}},Ke=(e,t)=>{let r=e;const o=t.split(ve),a=o.length;for(let u=0;u<a;u++){const c=o[u];let i=r.nextPart.get(c);i||(i=Ye(),r.nextPart.set(c,i)),r=i}return r},Jt=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,qt=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),o=Object.create(null);const a=(u,c)=>{r[u]=c,t++,t>e&&(t=0,o=r,r=Object.create(null))};return{get(u){let c=r[u];if(c!==void 0)return c;if((c=o[u])!==void 0)return a(u,c),c},set(u,c){u in r?r[u]=c:a(u,c)}}},je="!",Xe=":",Kt=[],Qe=(e,t,r,o,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:o,isExternal:a}),Xt=e=>{const{prefix:t,experimentalParseClassName:r}=e;let o=a=>{const u=[];let c=0,i=0,m=0,f;const A=a.length;for(let B=0;B<A;B++){const O=a[B];if(c===0&&i===0){if(O===Xe){u.push(a.slice(m,B)),m=B+1;continue}if(O==="/"){f=B;continue}}O==="["?c++:O==="]"?c--:O==="("?i++:O===")"&&i--}const L=u.length===0?a:a.slice(m);let U=L,D=!1;L.endsWith(je)?(U=L.slice(0,-1),D=!0):L.startsWith(je)&&(U=L.slice(1),D=!0);const T=f&&f>m?f-m:void 0;return Qe(u,D,U,T)};if(t){const a=t+Xe,u=o;o=c=>c.startsWith(a)?u(c.slice(a.length)):Qe(Kt,!1,c,void 0,!0)}if(r){const a=o;o=u=>r({className:u,parseClassName:a})}return o},Qt=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{t.set(r,1e6+o)}),r=>{const o=[];let a=[];for(let u=0;u<r.length;u++){const c=r[u],i=c[0]==="[",m=t.has(c);i||m?(a.length>0&&(a.sort(),o.push(...a),a=[]),o.push(c)):a.push(c)}return a.length>0&&(a.sort(),o.push(...a)),o}},Zt=e=>({cache:qt(e.cacheSize),parseClassName:Xt(e),sortModifiers:Qt(e),...Ft(e)}),$t=/\s+/,er=(e,t)=>{const{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:a,sortModifiers:u}=t,c=[],i=e.trim().split($t);let m="";for(let f=i.length-1;f>=0;f-=1){const A=i[f],{isExternal:L,modifiers:U,hasImportantModifier:D,baseClassName:T,maybePostfixModifierPosition:B}=r(A);if(L){m=A+(m.length>0?" "+m:m);continue}let O=!!B,J=o(O?T.substring(0,B):T);if(!J){if(!O){m=A+(m.length>0?" "+m:m);continue}if(J=o(T),!J){m=A+(m.length>0?" "+m:m);continue}O=!1}const W=U.length===0?"":U.length===1?U[0]:u(U).join(":"),C=D?W+je:W,I=C+J;if(c.indexOf(I)>-1)continue;c.push(I);const K=a(J,O);for(let Y=0;Y<K.length;++Y){const X=K[Y];c.push(C+X)}m=A+(m.length>0?" "+m:m)}return m},tr=(...e)=>{let t=0,r,o,a="";for(;t<e.length;)(r=e[t++])&&(o=Ze(r))&&(a&&(a+=" "),a+=o);return a},Ze=e=>{if(typeof e=="string")return e;let t,r="";for(let o=0;o<e.length;o++)e[o]&&(t=Ze(e[o]))&&(r&&(r+=" "),r+=t);return r},rr=(e,...t)=>{let r,o,a,u;const c=m=>{const f=t.reduce((A,L)=>L(A),e());return r=Zt(f),o=r.cache.get,a=r.cache.set,u=i,i(m)},i=m=>{const f=o(m);if(f)return f;const A=er(m,r);return a(m,A),A};return u=c,(...m)=>u(tr(...m))},or=[],q=e=>{const t=r=>r[e]||or;return t.isThemeGetter=!0,t},$e=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,et=/^\((?:(\w[\w-]*):)?(.+)\)$/i,nr=/^\d+\/\d+$/,ar=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ir=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,sr=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,lr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,cr=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ue=e=>nr.test(e),_=e=>!!e&&!Number.isNaN(Number(e)),le=e=>!!e&&Number.isInteger(Number(e)),Ce=e=>e.endsWith("%")&&_(e.slice(0,-1)),ie=e=>ar.test(e),dr=()=>!0,ur=e=>ir.test(e)&&!sr.test(e),tt=()=>!1,mr=e=>lr.test(e),fr=e=>cr.test(e),gr=e=>!g(e)&&!p(e),pr=e=>me(e,it,tt),g=e=>$e.test(e),ce=e=>me(e,st,ur),Se=e=>me(e,wr,_),rt=e=>me(e,nt,tt),hr=e=>me(e,at,fr),we=e=>me(e,lt,mr),p=e=>et.test(e),he=e=>fe(e,st),br=e=>fe(e,yr),ot=e=>fe(e,nt),xr=e=>fe(e,it),vr=e=>fe(e,at),ye=e=>fe(e,lt,!0),me=(e,t,r)=>{const o=$e.exec(e);return o?o[1]?t(o[1]):r(o[2]):!1},fe=(e,t,r=!1)=>{const o=et.exec(e);return o?o[1]?t(o[1]):r:!1},nt=e=>e==="position"||e==="percentage",at=e=>e==="image"||e==="url",it=e=>e==="length"||e==="size"||e==="bg-size",st=e=>e==="length",wr=e=>e==="number",yr=e=>e==="family-name",lt=e=>e==="shadow",kr=rr(()=>{const e=q("color"),t=q("font"),r=q("text"),o=q("font-weight"),a=q("tracking"),u=q("leading"),c=q("breakpoint"),i=q("container"),m=q("spacing"),f=q("radius"),A=q("shadow"),L=q("inset-shadow"),U=q("text-shadow"),D=q("drop-shadow"),T=q("blur"),B=q("perspective"),O=q("aspect"),J=q("ease"),W=q("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],I=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],K=()=>[...I(),p,g],Y=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto","contain","none"],h=()=>[p,g,m],d=()=>[ue,"full","auto",...h()],w=()=>[le,"none","subgrid",p,g],S=()=>["auto",{span:["full",le,p,g]},le,p,g],x=()=>[le,"auto",p,g],v=()=>["auto","min","max","fr",p,g],z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],F=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",...h()],G=()=>[ue,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...h()],b=()=>[e,p,g],V=()=>[...I(),ot,rt,{position:[p,g]}],re=()=>["no-repeat",{repeat:["","x","y","space","round"]}],n=()=>["auto","cover","contain",xr,pr,{size:[p,g]}],j=()=>[Ce,he,ce],k=()=>["","none","full",f,p,g],R=()=>["",_,he,ce],ee=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],E=()=>[_,Ce,ot,rt],$=()=>["","none",T,p,g],oe=()=>["none",_,p,g],ae=()=>["none",_,p,g],de=()=>[_,p,g],P=()=>[ue,"full",...h()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ie],breakpoint:[ie],color:[dr],container:[ie],"drop-shadow":[ie],ease:["in","out","in-out"],font:[gr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ie],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ie],shadow:[ie],spacing:["px",_],text:[ie],"text-shadow":[ie],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ue,g,p,O]}],container:["container"],columns:[{columns:[_,g,p,i]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:K()}],overflow:[{overflow:Y()}],"overflow-x":[{"overflow-x":Y()}],"overflow-y":[{"overflow-y":Y()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:d()}],"inset-x":[{"inset-x":d()}],"inset-y":[{"inset-y":d()}],start:[{start:d()}],end:[{end:d()}],top:[{top:d()}],right:[{right:d()}],bottom:[{bottom:d()}],left:[{left:d()}],visibility:["visible","invisible","collapse"],z:[{z:[le,"auto",p,g]}],basis:[{basis:[ue,"full","auto",i,...h()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[_,ue,"auto","initial","none",g]}],grow:[{grow:["",_,p,g]}],shrink:[{shrink:["",_,p,g]}],order:[{order:[le,"first","last","none",p,g]}],"grid-cols":[{"grid-cols":w()}],"col-start-end":[{col:S()}],"col-start":[{"col-start":x()}],"col-end":[{"col-end":x()}],"grid-rows":[{"grid-rows":w()}],"row-start-end":[{row:S()}],"row-start":[{"row-start":x()}],"row-end":[{"row-end":x()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":v()}],"auto-rows":[{"auto-rows":v()}],gap:[{gap:h()}],"gap-x":[{"gap-x":h()}],"gap-y":[{"gap-y":h()}],"justify-content":[{justify:[...z(),"normal"]}],"justify-items":[{"justify-items":[...F(),"normal"]}],"justify-self":[{"justify-self":["auto",...F()]}],"align-content":[{content:["normal",...z()]}],"align-items":[{items:[...F(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...F(),{baseline:["","last"]}]}],"place-content":[{"place-content":z()}],"place-items":[{"place-items":[...F(),"baseline"]}],"place-self":[{"place-self":["auto",...F()]}],p:[{p:h()}],px:[{px:h()}],py:[{py:h()}],ps:[{ps:h()}],pe:[{pe:h()}],pt:[{pt:h()}],pr:[{pr:h()}],pb:[{pb:h()}],pl:[{pl:h()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":h()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":h()}],"space-y-reverse":["space-y-reverse"],size:[{size:G()}],w:[{w:[i,"screen",...G()]}],"min-w":[{"min-w":[i,"screen","none",...G()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[c]},...G()]}],h:[{h:["screen","lh",...G()]}],"min-h":[{"min-h":["screen","lh","none",...G()]}],"max-h":[{"max-h":["screen","lh",...G()]}],"font-size":[{text:["base",r,he,ce]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,p,Se]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ce,g]}],"font-family":[{font:[br,g,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,p,g]}],"line-clamp":[{"line-clamp":[_,"none",p,Se]}],leading:[{leading:[u,...h()]}],"list-image":[{"list-image":["none",p,g]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",p,g]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:b()}],"text-color":[{text:b()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[_,"from-font","auto",p,ce]}],"text-decoration-color":[{decoration:b()}],"underline-offset":[{"underline-offset":[_,"auto",p,g]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:h()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",p,g]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",p,g]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:V()}],"bg-repeat":[{bg:re()}],"bg-size":[{bg:n()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},le,p,g],radial:["",p,g],conic:[le,p,g]},vr,hr]}],"bg-color":[{bg:b()}],"gradient-from-pos":[{from:j()}],"gradient-via-pos":[{via:j()}],"gradient-to-pos":[{to:j()}],"gradient-from":[{from:b()}],"gradient-via":[{via:b()}],"gradient-to":[{to:b()}],rounded:[{rounded:k()}],"rounded-s":[{"rounded-s":k()}],"rounded-e":[{"rounded-e":k()}],"rounded-t":[{"rounded-t":k()}],"rounded-r":[{"rounded-r":k()}],"rounded-b":[{"rounded-b":k()}],"rounded-l":[{"rounded-l":k()}],"rounded-ss":[{"rounded-ss":k()}],"rounded-se":[{"rounded-se":k()}],"rounded-ee":[{"rounded-ee":k()}],"rounded-es":[{"rounded-es":k()}],"rounded-tl":[{"rounded-tl":k()}],"rounded-tr":[{"rounded-tr":k()}],"rounded-br":[{"rounded-br":k()}],"rounded-bl":[{"rounded-bl":k()}],"border-w":[{border:R()}],"border-w-x":[{"border-x":R()}],"border-w-y":[{"border-y":R()}],"border-w-s":[{"border-s":R()}],"border-w-e":[{"border-e":R()}],"border-w-t":[{"border-t":R()}],"border-w-r":[{"border-r":R()}],"border-w-b":[{"border-b":R()}],"border-w-l":[{"border-l":R()}],"divide-x":[{"divide-x":R()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":R()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:b()}],"border-color-x":[{"border-x":b()}],"border-color-y":[{"border-y":b()}],"border-color-s":[{"border-s":b()}],"border-color-e":[{"border-e":b()}],"border-color-t":[{"border-t":b()}],"border-color-r":[{"border-r":b()}],"border-color-b":[{"border-b":b()}],"border-color-l":[{"border-l":b()}],"divide-color":[{divide:b()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[_,p,g]}],"outline-w":[{outline:["",_,he,ce]}],"outline-color":[{outline:b()}],shadow:[{shadow:["","none",A,ye,we]}],"shadow-color":[{shadow:b()}],"inset-shadow":[{"inset-shadow":["none",L,ye,we]}],"inset-shadow-color":[{"inset-shadow":b()}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:b()}],"ring-offset-w":[{"ring-offset":[_,ce]}],"ring-offset-color":[{"ring-offset":b()}],"inset-ring-w":[{"inset-ring":R()}],"inset-ring-color":[{"inset-ring":b()}],"text-shadow":[{"text-shadow":["none",U,ye,we]}],"text-shadow-color":[{"text-shadow":b()}],opacity:[{opacity:[_,p,g]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[_]}],"mask-image-linear-from-pos":[{"mask-linear-from":E()}],"mask-image-linear-to-pos":[{"mask-linear-to":E()}],"mask-image-linear-from-color":[{"mask-linear-from":b()}],"mask-image-linear-to-color":[{"mask-linear-to":b()}],"mask-image-t-from-pos":[{"mask-t-from":E()}],"mask-image-t-to-pos":[{"mask-t-to":E()}],"mask-image-t-from-color":[{"mask-t-from":b()}],"mask-image-t-to-color":[{"mask-t-to":b()}],"mask-image-r-from-pos":[{"mask-r-from":E()}],"mask-image-r-to-pos":[{"mask-r-to":E()}],"mask-image-r-from-color":[{"mask-r-from":b()}],"mask-image-r-to-color":[{"mask-r-to":b()}],"mask-image-b-from-pos":[{"mask-b-from":E()}],"mask-image-b-to-pos":[{"mask-b-to":E()}],"mask-image-b-from-color":[{"mask-b-from":b()}],"mask-image-b-to-color":[{"mask-b-to":b()}],"mask-image-l-from-pos":[{"mask-l-from":E()}],"mask-image-l-to-pos":[{"mask-l-to":E()}],"mask-image-l-from-color":[{"mask-l-from":b()}],"mask-image-l-to-color":[{"mask-l-to":b()}],"mask-image-x-from-pos":[{"mask-x-from":E()}],"mask-image-x-to-pos":[{"mask-x-to":E()}],"mask-image-x-from-color":[{"mask-x-from":b()}],"mask-image-x-to-color":[{"mask-x-to":b()}],"mask-image-y-from-pos":[{"mask-y-from":E()}],"mask-image-y-to-pos":[{"mask-y-to":E()}],"mask-image-y-from-color":[{"mask-y-from":b()}],"mask-image-y-to-color":[{"mask-y-to":b()}],"mask-image-radial":[{"mask-radial":[p,g]}],"mask-image-radial-from-pos":[{"mask-radial-from":E()}],"mask-image-radial-to-pos":[{"mask-radial-to":E()}],"mask-image-radial-from-color":[{"mask-radial-from":b()}],"mask-image-radial-to-color":[{"mask-radial-to":b()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":I()}],"mask-image-conic-pos":[{"mask-conic":[_]}],"mask-image-conic-from-pos":[{"mask-conic-from":E()}],"mask-image-conic-to-pos":[{"mask-conic-to":E()}],"mask-image-conic-from-color":[{"mask-conic-from":b()}],"mask-image-conic-to-color":[{"mask-conic-to":b()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:V()}],"mask-repeat":[{mask:re()}],"mask-size":[{mask:n()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",p,g]}],filter:[{filter:["","none",p,g]}],blur:[{blur:$()}],brightness:[{brightness:[_,p,g]}],contrast:[{contrast:[_,p,g]}],"drop-shadow":[{"drop-shadow":["","none",D,ye,we]}],"drop-shadow-color":[{"drop-shadow":b()}],grayscale:[{grayscale:["",_,p,g]}],"hue-rotate":[{"hue-rotate":[_,p,g]}],invert:[{invert:["",_,p,g]}],saturate:[{saturate:[_,p,g]}],sepia:[{sepia:["",_,p,g]}],"backdrop-filter":[{"backdrop-filter":["","none",p,g]}],"backdrop-blur":[{"backdrop-blur":$()}],"backdrop-brightness":[{"backdrop-brightness":[_,p,g]}],"backdrop-contrast":[{"backdrop-contrast":[_,p,g]}],"backdrop-grayscale":[{"backdrop-grayscale":["",_,p,g]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[_,p,g]}],"backdrop-invert":[{"backdrop-invert":["",_,p,g]}],"backdrop-opacity":[{"backdrop-opacity":[_,p,g]}],"backdrop-saturate":[{"backdrop-saturate":[_,p,g]}],"backdrop-sepia":[{"backdrop-sepia":["",_,p,g]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":h()}],"border-spacing-x":[{"border-spacing-x":h()}],"border-spacing-y":[{"border-spacing-y":h()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",p,g]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[_,"initial",p,g]}],ease:[{ease:["linear","initial",J,p,g]}],delay:[{delay:[_,p,g]}],animate:[{animate:["none",W,p,g]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[B,p,g]}],"perspective-origin":[{"perspective-origin":K()}],rotate:[{rotate:oe()}],"rotate-x":[{"rotate-x":oe()}],"rotate-y":[{"rotate-y":oe()}],"rotate-z":[{"rotate-z":oe()}],scale:[{scale:ae()}],"scale-x":[{"scale-x":ae()}],"scale-y":[{"scale-y":ae()}],"scale-z":[{"scale-z":ae()}],"scale-3d":["scale-3d"],skew:[{skew:de()}],"skew-x":[{"skew-x":de()}],"skew-y":[{"skew-y":de()}],transform:[{transform:[p,g,"","none","gpu","cpu"]}],"transform-origin":[{origin:K()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:P()}],"translate-x":[{"translate-x":P()}],"translate-y":[{"translate-y":P()}],"translate-z":[{"translate-z":P()}],"translate-none":["translate-none"],accent:[{accent:b()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:b()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",p,g]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":h()}],"scroll-mx":[{"scroll-mx":h()}],"scroll-my":[{"scroll-my":h()}],"scroll-ms":[{"scroll-ms":h()}],"scroll-me":[{"scroll-me":h()}],"scroll-mt":[{"scroll-mt":h()}],"scroll-mr":[{"scroll-mr":h()}],"scroll-mb":[{"scroll-mb":h()}],"scroll-ml":[{"scroll-ml":h()}],"scroll-p":[{"scroll-p":h()}],"scroll-px":[{"scroll-px":h()}],"scroll-py":[{"scroll-py":h()}],"scroll-ps":[{"scroll-ps":h()}],"scroll-pe":[{"scroll-pe":h()}],"scroll-pt":[{"scroll-pt":h()}],"scroll-pr":[{"scroll-pr":h()}],"scroll-pb":[{"scroll-pb":h()}],"scroll-pl":[{"scroll-pl":h()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",p,g]}],fill:[{fill:["none",...b()]}],"stroke-w":[{stroke:[_,he,ce,Se]}],stroke:[{stroke:["none",...b()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function ct(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=ct(e[t]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function jr(){for(var e,t,r=0,o="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=ct(e))&&(o&&(o+=" "),o+=t);return o}function Te(...e){return kr(jr(e))}var Re,dt;function ut(){if(dt)return Re;dt=1;function e(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}return Re=e,Re}var Ee,mt;function Cr(){if(mt)return Ee;mt=1;var e=typeof be=="object"&&be&&be.Object===Object&&be;return Ee=e,Ee}var Ae,ft;function gt(){if(ft)return Ae;ft=1;var e=Cr(),t=typeof self=="object"&&self&&self.Object===Object&&self,r=e||t||Function("return this")();return Ae=r,Ae}var ze,pt;function Sr(){if(pt)return ze;pt=1;var e=gt(),t=function(){return e.Date.now()};return ze=t,ze}var _e,ht;function Tr(){if(ht)return _e;ht=1;var e=/\s/;function t(r){for(var o=r.length;o--&&e.test(r.charAt(o)););return o}return _e=t,_e}var Ie,bt;function Rr(){if(bt)return Ie;bt=1;var e=Tr(),t=/^\s+/;function r(o){return o&&o.slice(0,e(o)+1).replace(t,"")}return Ie=r,Ie}var Ne,xt;function vt(){if(xt)return Ne;xt=1;var e=gt(),t=e.Symbol;return Ne=t,Ne}var Le,wt;function Er(){if(wt)return Le;wt=1;var e=vt(),t=Object.prototype,r=t.hasOwnProperty,o=t.toString,a=e?e.toStringTag:void 0;function u(c){var i=r.call(c,a),m=c[a];try{c[a]=void 0;var f=!0}catch{}var A=o.call(c);return f&&(i?c[a]=m:delete c[a]),A}return Le=u,Le}var Oe,yt;function Ar(){if(yt)return Oe;yt=1;var e=Object.prototype,t=e.toString;function r(o){return t.call(o)}return Oe=r,Oe}var Me,kt;function zr(){if(kt)return Me;kt=1;var e=vt(),t=Er(),r=Ar(),o="[object Null]",a="[object Undefined]",u=e?e.toStringTag:void 0;function c(i){return i==null?i===void 0?a:o:u&&u in Object(i)?t(i):r(i)}return Me=c,Me}var Pe,jt;function _r(){if(jt)return Pe;jt=1;function e(t){return t!=null&&typeof t=="object"}return Pe=e,Pe}var Ue,Ct;function Ir(){if(Ct)return Ue;Ct=1;var e=zr(),t=_r(),r="[object Symbol]";function o(a){return typeof a=="symbol"||t(a)&&e(a)==r}return Ue=o,Ue}var Fe,St;function Nr(){if(St)return Fe;St=1;var e=Rr(),t=ut(),r=Ir(),o=NaN,a=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,i=parseInt;function m(f){if(typeof f=="number")return f;if(r(f))return o;if(t(f)){var A=typeof f.valueOf=="function"?f.valueOf():f;f=t(A)?A+"":A}if(typeof f!="string")return f===0?f:+f;f=e(f);var L=u.test(f);return L||c.test(f)?i(f.slice(2),L?2:8):a.test(f)?o:+f}return Fe=m,Fe}var De,Tt;function Lr(){if(Tt)return De;Tt=1;var e=ut(),t=Sr(),r=Nr(),o="Expected a function",a=Math.max,u=Math.min;function c(i,m,f){var A,L,U,D,T,B,O=0,J=!1,W=!1,C=!0;if(typeof i!="function")throw new TypeError(o);m=r(m)||0,e(f)&&(J=!!f.leading,W="maxWait"in f,U=W?a(r(f.maxWait)||0,m):U,C="trailing"in f?!!f.trailing:C);function I(v){var z=A,F=L;return A=L=void 0,O=v,D=i.apply(F,z),D}function K(v){return O=v,T=setTimeout(h,m),J?I(v):D}function Y(v){var z=v-B,F=v-O,M=m-z;return W?u(M,U-F):M}function X(v){var z=v-B,F=v-O;return B===void 0||z>=m||z<0||W&&F>=U}function h(){var v=t();if(X(v))return d(v);T=setTimeout(h,Y(v))}function d(v){return T=void 0,C&&A?I(v):(A=L=void 0,D)}function w(){T!==void 0&&clearTimeout(T),O=0,A=B=L=T=void 0}function S(){return T===void 0?D:d(t())}function x(){var v=t(),z=X(v);if(A=arguments,L=this,B=v,z){if(T===void 0)return K(B);if(W)return clearTimeout(T),T=setTimeout(h,m),I(B)}return T===void 0&&(T=setTimeout(h,m)),D}return x.cancel=w,x.flush=S,x}return De=c,De}var Or=Lr();const Mr=At(Or),Rt=y.forwardRef(({initialContent:e="",onChange:t,onSave:r,onExport:o,readOnly:a=!1,showButtons:u=!1,showSaveTitle:c=!1,showStatusBar:i=!1,height:m="500px",onImageUpload:f,imageUploadEndpoint:A,allowedImageTypes:L=["image/jpeg","image/png","image/gif","image/webp","image/svg+xml"],maxImageSize:U=5*1024*1024,onInit:D,debounceDelay:T=300,className:B="",placeholder:O="Start typing here...",autoFocus:J=!1},W)=>{const{editorState:C,editorRef:I,updateContent:K,updateTitle:Y,executeCommand:X,getValidationResult:h,exportToHTML:d,clearEditor:w,handlePaste:S,handleDrop:x,insertImage:v,uploadPendingImages:z}=Ot({initialContent:e,onImageUpload:f,imageUploadEndpoint:A,allowedImageTypes:L,maxImageSize:U}),F=y.useRef(null),M=y.useRef(!1),G=y.useRef(null),[b,V]=y.useState(!1),[re,n]=y.useState(""),[j,k]=y.useState(!1),[R,ee]=y.useState(0),ne=y.useRef(null);y.useImperativeHandle(W,()=>({getContent:()=>C.content,getHTML:()=>d(),getTitle:()=>C.title,clear:w,focus:()=>{if(I.current){I.current.focus();const l=document.createRange();l.selectNodeContents(I.current),l.collapse(!1);const H=window.getSelection();H?.removeAllRanges(),H?.addRange(l)}},insertText:l=>{I.current&&(document.execCommand("insertText",!1,l),K(I.current.innerHTML))},insertHTML:l=>{I.current&&(document.execCommand("insertHTML",!1,l),K(I.current.innerHTML))},executeCommand:(l,H)=>{X(l,H)}})),y.useEffect(()=>{D&&I.current&&!M.current&&(D(I.current),M.current=!0)},[D,I]),y.useEffect(()=>{J&&I.current&&!a&&setTimeout(()=>{if(I.current){I.current.focus();const l=document.createRange();l.selectNodeContents(I.current),l.collapse(!1);const H=window.getSelection();H?.removeAllRanges(),H?.addRange(l)}},100)},[J,a,I]),y.useEffect(()=>{if(t)return G.current=Mr((l,H,Q)=>{t(l,H,Q)},T),()=>{G.current&&G.current.cancel()}},[t,T]),y.useEffect(()=>{if(!t||!C.content&&!C.content.trim())return;const l=(()=>{try{return d({includeStyles:!1,includeMeta:!1})}catch{return`<!DOCTYPE html><html><body>${C.content}</body></html>`}})();T>0&&G.current?G.current(C.content,l,C.title):t(C.content,l,C.title)},[C.content,C.title,t,d,T]);const E=y.useCallback(async()=>{if(G.current&&G.current.flush?.(),C.pendingImages.length>0){k(!0);try{await z(),n("Images uploaded successfully!"),setTimeout(()=>n(""),3e3)}catch{n("Failed to upload images. Please try again."),V(!0),setTimeout(()=>{V(!1),n("")},5e3),k(!1);return}finally{k(!1)}}const l=h();if(!l.success){n(l.error||"Please fix validation errors before saving."),V(!0),setTimeout(()=>{V(!1),n("")},3e3);return}try{r?.(C.content,d()),n("Document saved successfully!"),V(!0),setTimeout(()=>{V(!1),n("")},2e3)}catch{n("Failed to save document."),V(!0),setTimeout(()=>{V(!1),n("")},3e3)}},[C,z,h,d,r]),$=y.useCallback(async()=>{if(G.current&&G.current.flush?.(),C.pendingImages.length>0){k(!0);try{await z()}catch(l){console.error("Failed to upload images:",l)}finally{k(!1)}}try{const l=d();o?.(l);const H=new Blob([l],{type:"text/html"}),Q=URL.createObjectURL(H),Z=document.createElement("a");Z.href=Q,Z.download=`${C.title.replace(/[^\w\s]/gi,"").replace(/\s+/g,"_")||"document"}.html`,document.body.appendChild(Z),Z.click(),document.body.removeChild(Z),URL.revokeObjectURL(Q),n("Document exported successfully!"),V(!0),setTimeout(()=>{V(!1),n("")},2e3)}catch{n("Failed to export document."),V(!0),setTimeout(()=>{V(!1),n("")},3e3)}},[C,z,d,o]),oe=y.useCallback(l=>{K(l)},[K]),ae=async l=>{if(!l.target.files||a)return;const H=Array.from(l.target.files);let Q=0;const Z=H.length;for(const te of H)try{await v(te),Q++,ee(Math.round(Q/Z*100))}catch(Et){console.error("Failed to insert image:",Et)}ee(0),l.target.value=""},de=y.useCallback(()=>{a||I.current&&I.current.focus()},[a,I]),P=y.useCallback(l=>{(l.ctrlKey||l.metaKey)&&l.key==="s"&&(l.preventDefault(),E()),(l.ctrlKey||l.metaKey)&&l.key==="e"&&(l.preventDefault(),$()),(l.ctrlKey||l.metaKey)&&l.key==="k"&&l.shiftKey&&(l.preventDefault(),w())},[E,$,w]);return s.jsxs("div",{ref:ne,className:Te("relative w-full bg-white border border-gray-300 rounded-lg overflow-hidden flex flex-col",a&&"pointer-events-none opacity-80",B),style:{height:m},children:[c&&s.jsxs("div",{className:"p-4 md:p-6 border-b bg-gradient-to-r from-gray-50 to-white",children:[s.jsx("input",{className:"w-full text-xl md:text-2xl font-bold bg-transparent outline-none placeholder:text-gray-400",value:C.title,onChange:l=>Y(l.target.value),placeholder:"Document Title",readOnly:a,maxLength:100}),C.title.length>=90&&s.jsxs("div",{className:"text-xs text-gray-500 text-right mt-1",children:[C.title.length,"/100 characters"]})]}),s.jsx(Nt,{onCommand:X,onSave:E,onExport:$,showButtons:u,onClear:w,hasUnsavedChanges:C.hasUnsavedChanges,onImageUpload:()=>F.current?.click(),pendingImagesCount:C.pendingImages.length}),s.jsx("input",{ref:F,type:"file",className:"hidden",accept:L.join(","),multiple:!0,onChange:ae,disabled:a}),(b||j)&&s.jsx("div",{className:Te("px-4 py-3 text-sm flex items-center gap-2 transition-all duration-300",j?"bg-blue-50 text-blue-700 border-b border-blue-100":re.includes("success")?"bg-green-50 text-green-700 border-b border-green-100":"bg-red-50 text-red-700 border-b border-red-100"),children:j?s.jsxs(s.Fragment,{children:[s.jsx(N.Loader2,{className:"h-4 w-4 animate-spin"}),s.jsxs("span",{children:["Uploading images... ",R>0&&`${R}%`]})]}):re.includes("success")?s.jsxs(s.Fragment,{children:[s.jsx(N.CheckCircle,{className:"h-4 w-4"}),s.jsx("span",{children:re})]}):s.jsxs(s.Fragment,{children:[s.jsx(N.AlertCircle,{className:"h-4 w-4"}),s.jsx("span",{children:re})]})}),s.jsx("div",{ref:I,className:Te("flex-1 p-4 md:p-6 outline-none overflow-y-auto min-h-[200px] bg-white",a?"cursor-default select-text":"cursor-text",!C.content&&"relative"),contentEditable:!a,suppressContentEditableWarning:!0,onInput:l=>oe(l.currentTarget.innerHTML),onPaste:S,onDrop:x,onDragOver:l=>l.preventDefault(),onClick:de,onKeyDown:P,"data-placeholder":O,role:"textbox","aria-label":"Text editor","aria-multiline":"true",children:!C.content&&s.jsx("div",{className:"absolute top-6 left-6 text-gray-400 pointer-events-none select-none",children:O})}),C.pendingImages.length>0&&s.jsxs("div",{className:"px-4 py-3 text-sm text-blue-600 bg-blue-50 border-t border-blue-100 flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(N.Upload,{size:16}),s.jsxs("span",{children:[C.pendingImages.length," image",C.pendingImages.length!==1?"s":""," pending upload"]})]}),s.jsx("button",{onClick:z,disabled:j,className:"text-sm px-3 py-1 bg-blue-100 hover:bg-blue-200 text-blue-700 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:j?"Uploading...":"Upload Now"})]}),i&&s.jsx(Lt,{wordCount:C.wordCount,characterCount:C.characterCount,hasUnsavedChanges:C.hasUnsavedChanges,pendingImagesCount:C.pendingImages.length}),!a&&s.jsx("div",{className:"hidden md:block absolute bottom-2 right-2 text-xs text-gray-400 bg-white/80 px-2 py-1 rounded",children:"Ctrl+S to save • Ctrl+E to export"})]})});Rt.displayName="TextEditor",se.TextEditor=Rt,Object.defineProperty(se,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abduljebar/text-editor",
3
- "version": "2.3.1",
3
+ "version": "2.4.0",
4
4
  "description": "A professional React text editor with export, save, and validation features",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -55,6 +55,7 @@
55
55
  "@eslint/js": "^9.36.0",
56
56
  "@tailwindcss/cli": "^4.1.14",
57
57
  "@tailwindcss/postcss": "^4.1.14",
58
+ "@types/lodash": "^4.17.21",
58
59
  "@types/node": "^24.6.0",
59
60
  "@types/react": "^19.1.16",
60
61
  "@types/react-dom": "^19.1.9",
@@ -64,6 +65,7 @@
64
65
  "eslint-plugin-react-hooks": "^5.2.0",
65
66
  "eslint-plugin-react-refresh": "^0.4.22",
66
67
  "globals": "^16.4.0",
68
+ "lodash": "^4.17.21",
67
69
  "postcss": "^8.5.6",
68
70
  "tailwindcss": "^4.1.14",
69
71
  "typescript": "~5.9.3",