@abduljebar/text-editor 2.3.2 → 2.4.1
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.
- package/README.md +260 -68
- package/dist/components/TextEditor.d.ts +14 -1
- package/dist/components/TextEditor.d.ts.map +1 -1
- package/dist/components/Toolbar.d.ts +17 -0
- package/dist/components/Toolbar.d.ts.map +1 -1
- package/dist/hooks/useTextEditor.d.ts +16 -14
- package/dist/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +1484 -1129
- package/dist/index.umd.cjs +21 -14
- package/package.json +1 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
(function(Z,C){typeof exports=="object"&&typeof module<"u"?C(exports,require("react"),require("lucide-react")):typeof define=="function"&&define.amd?define(["exports","react","lucide-react"],C):(Z=typeof globalThis<"u"?globalThis:Z||self,C(Z.TextEditor={},Z.React,Z.LucideReact))})(this,(function(Z,C,D){"use strict";var Le=document.createElement("style");Le.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}}}@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-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-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-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-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-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}.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)}.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-6{padding-inline:calc(var(--spacing)*6)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.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}.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)}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|
|
2
|
-
/*$vite$:1*/`,document.head.appendChild(
|
|
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)}.mt-4{margin-top:calc(var(--spacing)*4)}.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} />`,R,S,X,S),te[S+R]=!0)}if(S=null,w!==void 0&&(r(w),S=""+w),i(y)&&(r(y.key),S=""+y.key),"key"in y){w={};for(var K in y)K!=="key"&&(w[K]=y[K])}else w=y;return S&&s(w,typeof n=="function"?n.displayName||n.name||"Unknown":n),u(n,S,w,a(),J,ae)}function A(n){L(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===z&&(n._payload.status==="fulfilled"?L(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function L(n){return typeof n=="object"&&n!==null&&n.$$typeof===_}var I=C,_=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),G=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),V=Symbol.for("react.consumer"),P=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),k=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),c=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),O=Symbol.for("react.activity"),U=Symbol.for("react.client.reference"),M=I.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=Object.prototype.hasOwnProperty,N=Array.isArray,B=console.createTask?console.createTask:function(){return null};I={react_stack_bottom_frame:function(n){return n()}};var Y,H={},v=I.react_stack_bottom_frame.bind(I,l)(),ee=B(o(l)),te={};le.Fragment=g,le.jsx=function(n,y,w){var R=1e4>M.recentlyCreatedOwnerStacks++;return x(n,y,w,!1,R?Error("react-stack-top-frame"):v,R?B(o(n)):ee)},le.jsxs=function(n,y,w){var R=1e4>M.recentlyCreatedOwnerStacks++;return x(n,y,w,!0,R?Error("react-stack-top-frame"):v,R?B(o(n)):ee)}})()),le}var Fe;function jt(){return Fe||(Fe=1,process.env.NODE_ENV==="production"?ue.exports=wt():ue.exports=kt()),ue.exports}var h=jt();const Tt=({onCommand:e,onSave:t,onExport:r,onClear:o,onImageUpload:a,showButtons:l=!1,hasUnsavedChanges:i,pendingImagesCount:s=0})=>{const[d,u]=C.useState([]),[x,A]=C.useState("p"),L=()=>{const p=[];let g="p";document.queryCommandState("bold")&&p.push("bold"),document.queryCommandState("italic")&&p.push("italic"),document.queryCommandState("underline")&&p.push("underline"),document.queryCommandState("strikeThrough")&&p.push("strikeThrough"),document.queryCommandState("insertUnorderedList")&&p.push("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&p.push("insertOrderedList"),document.queryCommandState("justifyLeft")&&p.push("justifyLeft"),document.queryCommandState("justifyCenter")&&p.push("justifyCenter"),document.queryCommandState("justifyRight")&&p.push("justifyRight");const G=window.getSelection();if(G&&G.rangeCount>0){let F=G.getRangeAt(0).commonAncestorContainer;for(;F&&F.nodeType===Node.ELEMENT_NODE;){const V=F,P=V.tagName.toLowerCase();if(["h1","h2","p","div"].includes(P)){P==="h1"||P==="h2"?(g=P,p.push(`formatBlock:${P}`)):(P==="p"||P==="div"&&!g)&&(g="p");break}F=V.parentNode}}A(g),u(p)};C.useEffect(()=>{const p=()=>{L()},g=()=>{setTimeout(L,10)};return document.addEventListener("selectionchange",p),document.addEventListener("click",g),document.addEventListener("keyup",g),()=>{document.removeEventListener("selectionchange",p),document.removeEventListener("click",g),document.removeEventListener("keyup",g)}},[]);const I=()=>{const p=prompt("Enter URL:");p&&e("createLink",p)},_=[{id:"bold",command:"bold",icon:h.jsx(D.Bold,{size:18}),title:"Bold"},{id:"italic",command:"italic",icon:h.jsx(D.Italic,{size:18}),title:"Italic"},{id:"underline",command:"underline",icon:h.jsx(D.Underline,{size:18}),title:"Underline"},{id:"strikeThrough",command:"strikeThrough",icon:h.jsx(D.Strikethrough,{size:18}),title:"Strikethrough"},{id:"separator-1",separator:!0},{id:"unordered-list",command:"insertUnorderedList",icon:h.jsx(D.List,{size:18}),title:"Bullet List"},{id:"ordered-list",command:"insertOrderedList",icon:h.jsx(D.ListOrdered,{size:18}),title:"Numbered List"},{id:"separator-2",separator:!0},{id:"heading-1",command:"formatBlock",value:"h1",icon:h.jsx(D.Heading1,{size:18}),title:"Heading 1",isActive:x==="h1"},{id:"heading-2",command:"formatBlock",value:"h2",icon:h.jsx(D.Heading2,{size:18}),title:"Heading 2",isActive:x==="h2"},{id:"paragraph",command:"formatBlock",value:"p",icon:h.jsx(D.Type,{size:18}),title:"Paragraph",isActive:x==="p"},{id:"separator-3",separator:!0},{id:"align-left",command:"justifyLeft",icon:h.jsx(D.AlignLeft,{size:18}),title:"Align Left"},{id:"align-center",command:"justifyCenter",icon:h.jsx(D.AlignCenter,{size:18}),title:"Center"},{id:"align-right",command:"justifyRight",icon:h.jsx(D.AlignRight,{size:18}),title:"Align Right"},{id:"separator-4",separator:!0},{id:"link",command:"createLink",icon:h.jsx(D.Link,{size:18}),title:"Insert Link",onClick:I},{id:"image",command:"insertImage",icon:s>0?h.jsxs("div",{className:"relative",children:[h.jsx(D.Image,{size:18}),h.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:s})]}):h.jsx(D.Image,{size:18}),title:"Insert Image",onClick:a}];return h.jsxs("div",{className:"flex flex-wrap justify-between items-center p-3 bg-gray-50 border-b border-gray-200",children:[h.jsx("div",{className:"flex flex-wrap items-center gap-1",children:_.map(p=>{if("separator"in p)return h.jsx("div",{className:"w-px h-6 bg-gray-300 mx-2"},p.id);const g=p.isActive!==void 0?p.isActive:d.includes(p.command);return h.jsx("button",{onClick:()=>p.onClick?p.onClick():e(p.command,p.value),title:p.title,type:"button",className:`w-9 h-9 flex items-center justify-center rounded-md border transition-colors duration-200 ${g?"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:p.icon},p.id)})}),l&&h.jsxs("div",{className:"flex items-center gap-2 mt-2 sm:mt-0",children:[h.jsxs("button",{onClick:t,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:[h.jsx(D.Save,{size:16}),h.jsx("span",{children:"Save"})]}),h.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:[h.jsx(D.FileDown,{size:16}),h.jsx("span",{children:"Export"})]}),h.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:[h.jsx(D.Trash2,{size:16}),h.jsx("span",{children:"Clear"})]})]})]})},St=({wordCount:e,characterCount:t,hasUnsavedChanges:r,pendingImagesCount:o=0})=>h.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:[h.jsxs("div",{className:"flex items-center gap-6",children:[h.jsxs("div",{children:["Words: ",h.jsx("strong",{className:"text-gray-800",children:e})]}),h.jsxs("div",{children:["Characters: ",h.jsx("strong",{className:"text-gray-800",children:t})]}),o>0&&h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx(D.Image,{size:14,className:"text-blue-600"}),h.jsxs("span",{className:"text-blue-600",children:[o," image",o!==1?"s":""]})]})]}),h.jsx("div",{className:"flex items-center gap-2",children:h.jsxs("div",{className:`flex items-center gap-1 ${r?"text-orange-600":"text-green-600"}`,children:[r&&h.jsx(D.Save,{size:14,className:"animate-pulse"}),h.jsx("strong",{children:r?"Unsaved Changes":"Saved"})]})})]}),Ct=({initialContent:e="",onImageUpload:t,imageUploadEndpoint:r,allowedImageTypes:o,maxImageSize:a})=>{const[l,i]=C.useState({content:e,title:"Untitled Document",wordCount:e.trim()?e.trim().split(/\s+/).length:0,characterCount:e.length,hasUnsavedChanges:!1,pendingImages:[]}),s=C.useRef(null),d=C.useRef(new Map),u=C.useRef(e);C.useEffect(()=>{e!==u.current&&(s.current&&(s.current.innerHTML=e),i(b=>({...b,content:e,wordCount:e.trim()?e.trim().split(/\s+/).length:0,characterCount:e.length,hasUnsavedChanges:!1})),u.current=e)},[e]),C.useEffect(()=>{s.current&&!s.current.innerHTML&&e&&(s.current.innerHTML=e)},[e]);const x=C.useCallback(b=>{const k=b.trim()?b.trim().split(/\s+/).length:0,T=b.length;i(c=>({...c,content:b,wordCount:k,characterCount:T,hasUnsavedChanges:!0})),u.current=b},[]),A=C.useCallback(b=>{i(k=>({...k,title:b,hasUnsavedChanges:!0}))},[]),L=C.useCallback((b,k)=>{s.current&&(s.current.focus(),document.execCommand(b,!1,k),x(s.current.innerHTML))},[x]),I=b=>o.includes(b.type)?b.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(", ")}`},_=C.useCallback(async(b,k=!0)=>{const T=I(b);if(!T.valid){alert(T.error);return}if(!s.current)return;const c=`image-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,z=new FileReader;z.onload=O=>{const U=O.target?.result;d.current.set(c,{originalUrl:U,fileName:b.name,size:b.size,type:b.type});const M=document.createElement("img");if(M.src=U,M.alt=b.name,M.className="image-uploading",M.setAttribute("data-image-id",c),M.setAttribute("data-file-name",b.name),k&&window.getSelection){const E=window.getSelection();if(E&&E.rangeCount>0){const N=E.getRangeAt(0);N.deleteContents(),N.insertNode(M),N.setStartAfter(M),N.collapse(!0),E.removeAllRanges(),E.addRange(N)}else s.current.appendChild(M)}else s.current.appendChild(M);x(s.current.innerHTML),(t||r)&&i(E=>({...E,pendingImages:[...E.pendingImages,{id:c,file:b,placeholderUrl:U,status:"pending"}]}))},z.readAsDataURL(b)},[t,r,x,o,a]),p=C.useCallback(async()=>{if(!t&&!r)return;const b=l.pendingImages.filter(k=>k.status==="pending");if(b.length!==0){for(const k of b)try{i(z=>({...z,pendingImages:z.pendingImages.map(O=>O.id===k.id?{...O,status:"uploading"}:O)}));let T;if(t)T=await t(k.file);else if(r){const z=new FormData;z.append("image",k.file);const O=await fetch(r,{method:"POST",body:z});if(!O.ok)throw new Error(`Upload failed: ${O.statusText}`);const U=await O.json();T=U.url||U.imageUrl||U.data}else throw new Error("No upload method provided");const c=s.current?.querySelector(`img[data-image-id="${k.id}"]`);if(c){c.src=T,c.classList.remove("image-uploading"),c.classList.add("image-uploaded");const z=d.current.get(k.id);z&&d.current.set(k.id,{...z,uploadedUrl:T})}i(z=>({...z,pendingImages:z.pendingImages.map(O=>O.id===k.id?{...O,status:"uploaded"}:O)}))}catch(T){console.error("Image upload failed:",T);const c=s.current?.querySelector(`img[data-image-id="${k.id}"]`);c&&(c.classList.remove("image-uploading"),c.classList.add("image-failed")),i(z=>({...z,pendingImages:z.pendingImages.map(O=>O.id===k.id?{...O,status:"failed"}:O)}))}s.current&&x(s.current.innerHTML)}},[l.pendingImages,t,r,x]),g=C.useCallback(b=>{const k=b.clipboardData.items;for(const T of k)if(T.type.indexOf("image")!==-1){b.preventDefault();const c=T.getAsFile();c&&_(c);break}setTimeout(()=>{s.current&&x(s.current.innerHTML)},0)},[_,x]),G=C.useCallback(b=>{b.preventDefault();const k=b.dataTransfer.files;for(const T of k)T.type.startsWith("image/")&&_(T,!1)},[_]),F=C.useCallback(()=>{try{const b=s.current?.innerHTML||l.content;return{success:!0,data:{title:l.title,content:b,metadata:{createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),wordCount:l.wordCount,characterCount:l.characterCount}}}}catch(b){return{success:!1,error:b instanceof Error?b.message:"Validation failed"}}},[l]),V=C.useCallback((b={includeStyles:!0,includeMeta:!0})=>{const k=F();if(!k.success)throw new Error(k.error);const{data:T}=k;let c=`<!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>${
|
|
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,18 +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
|
-
|
|
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>`,
|
|
49
|
+
<body>`,d.includeMeta&&S&&(x+=`
|
|
43
50
|
<div class="document-meta">
|
|
44
|
-
<h1>${
|
|
45
|
-
<p><small>Created: ${new Date(
|
|
46
|
-
Words: ${
|
|
47
|
-
Characters: ${
|
|
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>`),
|
|
50
|
-
<div class="${
|
|
51
|
-
${
|
|
56
|
+
</div>`),x+=`
|
|
57
|
+
<div class="${d.includeStyles?"readonly-content":""}">
|
|
58
|
+
${S?.content||""}
|
|
52
59
|
</div>
|
|
53
60
|
</body>
|
|
54
|
-
</html>`,c},[F]),P=C.useCallback(()=>{i({content:"",title:"Untitled Document",wordCount:0,characterCount:0,hasUnsavedChanges:!1,pendingImages:[]}),d.current.clear(),s.current&&(s.current.innerHTML=""),u.current=""},[]);return{editorState:l,editorRef:s,updateContent:x,updateTitle:A,executeCommand:L,getValidationResult:F,exportToHTML:V,clearEditor:P,handlePaste:g,handleDrop:G,insertImage:_,uploadPendingImages:p}},Et=(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},Rt=(e,t)=>({classGroupId:e,validator:t}),De=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),me="-",Ge=[],_t="arbitrary..",zt=e=>{const t=Ot(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return At(i);const s=i.split(me),d=s[0]===""&&s.length>1?1:0;return Ue(s,d,t)},getConflictingClassGroupIds:(i,s)=>{if(s){const d=o[i],u=r[i];return d?u?Et(u,d):d:u||Ge}return r[i]||Ge}}},Ue=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const a=e[t],l=r.nextPart.get(a);if(l){const u=Ue(e,t+1,l);if(u)return u}const i=r.validators;if(i===null)return;const s=t===0?e.join(me):e.slice(t).join(me),d=i.length;for(let u=0;u<d;u++){const x=i[u];if(x.validator(s))return x.classGroupId}},At=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?_t+o:void 0})(),Ot=e=>{const{theme:t,classGroups:r}=e;return It(r,t)},It=(e,t)=>{const r=De();for(const o in e){const a=e[o];be(a,r,o,t)}return r},be=(e,t,r,o)=>{const a=e.length;for(let l=0;l<a;l++){const i=e[l];Nt(i,t,r,o)}},Nt=(e,t,r,o)=>{if(typeof e=="string"){Lt(e,t,r);return}if(typeof e=="function"){Pt(e,t,r,o);return}Mt(e,t,r,o)},Lt=(e,t,r)=>{const o=e===""?t:We(t,e);o.classGroupId=r},Pt=(e,t,r,o)=>{if(Ft(e)){be(e(o),t,r,o);return}t.validators===null&&(t.validators=[]),t.validators.push(Rt(r,e))},Mt=(e,t,r,o)=>{const a=Object.entries(e),l=a.length;for(let i=0;i<l;i++){const[s,d]=a[i];be(d,We(t,s),r,o)}},We=(e,t)=>{let r=e;const o=t.split(me),a=o.length;for(let l=0;l<a;l++){const i=o[l];let s=r.nextPart.get(i);s||(s=De(),r.nextPart.set(i,s)),r=s}return r},Ft=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Dt=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),o=Object.create(null);const a=(l,i)=>{r[l]=i,t++,t>e&&(t=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 a(l,i),i},set(l,i){l in r?r[l]=i:a(l,i)}}},he="!",Ve=":",Gt=[],Be=(e,t,r,o,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:o,isExternal:a}),Ut=e=>{const{prefix:t,experimentalParseClassName:r}=e;let o=a=>{const l=[];let i=0,s=0,d=0,u;const x=a.length;for(let p=0;p<x;p++){const g=a[p];if(i===0&&s===0){if(g===Ve){l.push(a.slice(d,p)),d=p+1;continue}if(g==="/"){u=p;continue}}g==="["?i++:g==="]"?i--:g==="("?s++:g===")"&&s--}const A=l.length===0?a:a.slice(d);let L=A,I=!1;A.endsWith(he)?(L=A.slice(0,-1),I=!0):A.startsWith(he)&&(L=A.slice(1),I=!0);const _=u&&u>d?u-d:void 0;return Be(l,I,L,_)};if(t){const a=t+Ve,l=o;o=i=>i.startsWith(a)?l(i.slice(a.length)):Be(Gt,!1,i,void 0,!0)}if(r){const a=o;o=l=>r({className:l,parseClassName:a})}return o},Wt=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{t.set(r,1e6+o)}),r=>{const o=[];let a=[];for(let l=0;l<r.length;l++){const i=r[l],s=i[0]==="[",d=t.has(i);s||d?(a.length>0&&(a.sort(),o.push(...a),a=[]),o.push(i)):a.push(i)}return a.length>0&&(a.sort(),o.push(...a)),o}},Vt=e=>({cache:Dt(e.cacheSize),parseClassName:Ut(e),sortModifiers:Wt(e),...zt(e)}),Bt=/\s+/,Yt=(e,t)=>{const{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:a,sortModifiers:l}=t,i=[],s=e.trim().split(Bt);let d="";for(let u=s.length-1;u>=0;u-=1){const x=s[u],{isExternal:A,modifiers:L,hasImportantModifier:I,baseClassName:_,maybePostfixModifierPosition:p}=r(x);if(A){d=x+(d.length>0?" "+d:d);continue}let g=!!p,G=o(g?_.substring(0,p):_);if(!G){if(!g){d=x+(d.length>0?" "+d:d);continue}if(G=o(_),!G){d=x+(d.length>0?" "+d:d);continue}g=!1}const F=L.length===0?"":L.length===1?L[0]:l(L).join(":"),V=I?F+he:F,P=V+G;if(i.indexOf(P)>-1)continue;i.push(P);const b=a(G,g);for(let k=0;k<b.length;++k){const T=b[k];i.push(V+T)}d=x+(d.length>0?" "+d:d)}return d},Ht=(...e)=>{let t=0,r,o,a="";for(;t<e.length;)(r=e[t++])&&(o=Ye(r))&&(a&&(a+=" "),a+=o);return a},Ye=e=>{if(typeof e=="string")return e;let t,r="";for(let o=0;o<e.length;o++)e[o]&&(t=Ye(e[o]))&&(r&&(r+=" "),r+=t);return r},qt=(e,...t)=>{let r,o,a,l;const i=d=>{const u=t.reduce((x,A)=>A(x),e());return r=Vt(u),o=r.cache.get,a=r.cache.set,l=s,s(d)},s=d=>{const u=o(d);if(u)return u;const x=Yt(d,r);return a(d,x),x};return l=i,(...d)=>l(Ht(...d))},Jt=[],W=e=>{const t=r=>r[e]||Jt;return t.isThemeGetter=!0,t},He=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,qe=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Xt=/^\d+\/\d+$/,Zt=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Qt=/\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$/,Kt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,$t=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,er=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,re=e=>Xt.test(e),j=e=>!!e&&!Number.isNaN(Number(e)),Q=e=>!!e&&Number.isInteger(Number(e)),ve=e=>e.endsWith("%")&&j(e.slice(0,-1)),q=e=>Zt.test(e),tr=()=>!0,rr=e=>Qt.test(e)&&!Kt.test(e),Je=()=>!1,or=e=>$t.test(e),nr=e=>er.test(e),ar=e=>!m(e)&&!f(e),ir=e=>oe(e,$e,Je),m=e=>He.test(e),$=e=>oe(e,et,rr),xe=e=>oe(e,ur,j),Xe=e=>oe(e,Qe,Je),sr=e=>oe(e,Ke,nr),fe=e=>oe(e,tt,or),f=e=>qe.test(e),ce=e=>ne(e,et),lr=e=>ne(e,mr),Ze=e=>ne(e,Qe),cr=e=>ne(e,$e),dr=e=>ne(e,Ke),ge=e=>ne(e,tt,!0),oe=(e,t,r)=>{const o=He.exec(e);return o?o[1]?t(o[1]):r(o[2]):!1},ne=(e,t,r=!1)=>{const o=qe.exec(e);return o?o[1]?t(o[1]):r:!1},Qe=e=>e==="position"||e==="percentage",Ke=e=>e==="image"||e==="url",$e=e=>e==="length"||e==="size"||e==="bg-size",et=e=>e==="length",ur=e=>e==="number",mr=e=>e==="family-name",tt=e=>e==="shadow",fr=qt(()=>{const e=W("color"),t=W("font"),r=W("text"),o=W("font-weight"),a=W("tracking"),l=W("leading"),i=W("breakpoint"),s=W("container"),d=W("spacing"),u=W("radius"),x=W("shadow"),A=W("inset-shadow"),L=W("text-shadow"),I=W("drop-shadow"),_=W("blur"),p=W("perspective"),g=W("aspect"),G=W("ease"),F=W("animate"),V=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],b=()=>[...P(),f,m],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],c=()=>[f,m,d],z=()=>[re,"full","auto",...c()],O=()=>[Q,"none","subgrid",f,m],U=()=>["auto",{span:["full",Q,f,m]},Q,f,m],M=()=>[Q,"auto",f,m],E=()=>["auto","min","max","fr",f,m],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],B=()=>["start","end","center","stretch","center-safe","end-safe"],Y=()=>["auto",...c()],H=()=>[re,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],v=()=>[e,f,m],ee=()=>[...P(),Ze,Xe,{position:[f,m]}],te=()=>["no-repeat",{repeat:["","x","y","space","round"]}],n=()=>["auto","cover","contain",cr,ir,{size:[f,m]}],y=()=>[ve,ce,$],w=()=>["","none","full",u,f,m],R=()=>["",j,ce,$],J=()=>["solid","dashed","dotted","double"],ae=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],S=()=>[j,ve,Ze,Xe],X=()=>["","none",_,f,m],K=()=>["none",j,f,m],ie=()=>["none",j,f,m],Ne=()=>[j,f,m],pe=()=>[re,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[q],breakpoint:[q],color:[tr],container:[q],"drop-shadow":[q],ease:["in","out","in-out"],font:[ar],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[q],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[q],shadow:[q],spacing:["px",j],text:[q],"text-shadow":[q],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",re,m,f,g]}],container:["container"],columns:[{columns:[j,m,f,s]}],"break-after":[{"break-after":V()}],"break-before":[{"break-before":V()}],"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:b()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:z()}],"inset-x":[{"inset-x":z()}],"inset-y":[{"inset-y":z()}],start:[{start:z()}],end:[{end:z()}],top:[{top:z()}],right:[{right:z()}],bottom:[{bottom:z()}],left:[{left:z()}],visibility:["visible","invisible","collapse"],z:[{z:[Q,"auto",f,m]}],basis:[{basis:[re,"full","auto",s,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[j,re,"auto","initial","none",m]}],grow:[{grow:["",j,f,m]}],shrink:[{shrink:["",j,f,m]}],order:[{order:[Q,"first","last","none",f,m]}],"grid-cols":[{"grid-cols":O()}],"col-start-end":[{col:U()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":O()}],"row-start-end":[{row:U()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":E()}],"auto-rows":[{"auto-rows":E()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...B(),"normal"]}],"justify-self":[{"justify-self":["auto",...B()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...B(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...B(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...B(),"baseline"]}],"place-self":[{"place-self":["auto",...B()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],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":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],w:[{w:[s,"screen",...H()]}],"min-w":[{"min-w":[s,"screen","none",...H()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[i]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",r,ce,$]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,f,xe]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ve,m]}],"font-family":[{font:[lr,m,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,f,m]}],"line-clamp":[{"line-clamp":[j,"none",f,xe]}],leading:[{leading:[l,...c()]}],"list-image":[{"list-image":["none",f,m]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",f,m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:v()}],"text-color":[{text:v()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...J(),"wavy"]}],"text-decoration-thickness":[{decoration:[j,"from-font","auto",f,$]}],"text-decoration-color":[{decoration:v()}],"underline-offset":[{"underline-offset":[j,"auto",f,m]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",f,m]}],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",f,m]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ee()}],"bg-repeat":[{bg:te()}],"bg-size":[{bg:n()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Q,f,m],radial:["",f,m],conic:[Q,f,m]},dr,sr]}],"bg-color":[{bg:v()}],"gradient-from-pos":[{from:y()}],"gradient-via-pos":[{via:y()}],"gradient-to-pos":[{to:y()}],"gradient-from":[{from:v()}],"gradient-via":[{via:v()}],"gradient-to":[{to:v()}],rounded:[{rounded:w()}],"rounded-s":[{"rounded-s":w()}],"rounded-e":[{"rounded-e":w()}],"rounded-t":[{"rounded-t":w()}],"rounded-r":[{"rounded-r":w()}],"rounded-b":[{"rounded-b":w()}],"rounded-l":[{"rounded-l":w()}],"rounded-ss":[{"rounded-ss":w()}],"rounded-se":[{"rounded-se":w()}],"rounded-ee":[{"rounded-ee":w()}],"rounded-es":[{"rounded-es":w()}],"rounded-tl":[{"rounded-tl":w()}],"rounded-tr":[{"rounded-tr":w()}],"rounded-br":[{"rounded-br":w()}],"rounded-bl":[{"rounded-bl":w()}],"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:[...J(),"hidden","none"]}],"divide-style":[{divide:[...J(),"hidden","none"]}],"border-color":[{border:v()}],"border-color-x":[{"border-x":v()}],"border-color-y":[{"border-y":v()}],"border-color-s":[{"border-s":v()}],"border-color-e":[{"border-e":v()}],"border-color-t":[{"border-t":v()}],"border-color-r":[{"border-r":v()}],"border-color-b":[{"border-b":v()}],"border-color-l":[{"border-l":v()}],"divide-color":[{divide:v()}],"outline-style":[{outline:[...J(),"none","hidden"]}],"outline-offset":[{"outline-offset":[j,f,m]}],"outline-w":[{outline:["",j,ce,$]}],"outline-color":[{outline:v()}],shadow:[{shadow:["","none",x,ge,fe]}],"shadow-color":[{shadow:v()}],"inset-shadow":[{"inset-shadow":["none",A,ge,fe]}],"inset-shadow-color":[{"inset-shadow":v()}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:v()}],"ring-offset-w":[{"ring-offset":[j,$]}],"ring-offset-color":[{"ring-offset":v()}],"inset-ring-w":[{"inset-ring":R()}],"inset-ring-color":[{"inset-ring":v()}],"text-shadow":[{"text-shadow":["none",L,ge,fe]}],"text-shadow-color":[{"text-shadow":v()}],opacity:[{opacity:[j,f,m]}],"mix-blend":[{"mix-blend":[...ae(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ae()}],"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":[j]}],"mask-image-linear-from-pos":[{"mask-linear-from":S()}],"mask-image-linear-to-pos":[{"mask-linear-to":S()}],"mask-image-linear-from-color":[{"mask-linear-from":v()}],"mask-image-linear-to-color":[{"mask-linear-to":v()}],"mask-image-t-from-pos":[{"mask-t-from":S()}],"mask-image-t-to-pos":[{"mask-t-to":S()}],"mask-image-t-from-color":[{"mask-t-from":v()}],"mask-image-t-to-color":[{"mask-t-to":v()}],"mask-image-r-from-pos":[{"mask-r-from":S()}],"mask-image-r-to-pos":[{"mask-r-to":S()}],"mask-image-r-from-color":[{"mask-r-from":v()}],"mask-image-r-to-color":[{"mask-r-to":v()}],"mask-image-b-from-pos":[{"mask-b-from":S()}],"mask-image-b-to-pos":[{"mask-b-to":S()}],"mask-image-b-from-color":[{"mask-b-from":v()}],"mask-image-b-to-color":[{"mask-b-to":v()}],"mask-image-l-from-pos":[{"mask-l-from":S()}],"mask-image-l-to-pos":[{"mask-l-to":S()}],"mask-image-l-from-color":[{"mask-l-from":v()}],"mask-image-l-to-color":[{"mask-l-to":v()}],"mask-image-x-from-pos":[{"mask-x-from":S()}],"mask-image-x-to-pos":[{"mask-x-to":S()}],"mask-image-x-from-color":[{"mask-x-from":v()}],"mask-image-x-to-color":[{"mask-x-to":v()}],"mask-image-y-from-pos":[{"mask-y-from":S()}],"mask-image-y-to-pos":[{"mask-y-to":S()}],"mask-image-y-from-color":[{"mask-y-from":v()}],"mask-image-y-to-color":[{"mask-y-to":v()}],"mask-image-radial":[{"mask-radial":[f,m]}],"mask-image-radial-from-pos":[{"mask-radial-from":S()}],"mask-image-radial-to-pos":[{"mask-radial-to":S()}],"mask-image-radial-from-color":[{"mask-radial-from":v()}],"mask-image-radial-to-color":[{"mask-radial-to":v()}],"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":P()}],"mask-image-conic-pos":[{"mask-conic":[j]}],"mask-image-conic-from-pos":[{"mask-conic-from":S()}],"mask-image-conic-to-pos":[{"mask-conic-to":S()}],"mask-image-conic-from-color":[{"mask-conic-from":v()}],"mask-image-conic-to-color":[{"mask-conic-to":v()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ee()}],"mask-repeat":[{mask:te()}],"mask-size":[{mask:n()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",f,m]}],filter:[{filter:["","none",f,m]}],blur:[{blur:X()}],brightness:[{brightness:[j,f,m]}],contrast:[{contrast:[j,f,m]}],"drop-shadow":[{"drop-shadow":["","none",I,ge,fe]}],"drop-shadow-color":[{"drop-shadow":v()}],grayscale:[{grayscale:["",j,f,m]}],"hue-rotate":[{"hue-rotate":[j,f,m]}],invert:[{invert:["",j,f,m]}],saturate:[{saturate:[j,f,m]}],sepia:[{sepia:["",j,f,m]}],"backdrop-filter":[{"backdrop-filter":["","none",f,m]}],"backdrop-blur":[{"backdrop-blur":X()}],"backdrop-brightness":[{"backdrop-brightness":[j,f,m]}],"backdrop-contrast":[{"backdrop-contrast":[j,f,m]}],"backdrop-grayscale":[{"backdrop-grayscale":["",j,f,m]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[j,f,m]}],"backdrop-invert":[{"backdrop-invert":["",j,f,m]}],"backdrop-opacity":[{"backdrop-opacity":[j,f,m]}],"backdrop-saturate":[{"backdrop-saturate":[j,f,m]}],"backdrop-sepia":[{"backdrop-sepia":["",j,f,m]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",f,m]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[j,"initial",f,m]}],ease:[{ease:["linear","initial",G,f,m]}],delay:[{delay:[j,f,m]}],animate:[{animate:["none",F,f,m]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,f,m]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":["scale-3d"],skew:[{skew:Ne()}],"skew-x":[{"skew-x":Ne()}],"skew-y":[{"skew-y":Ne()}],transform:[{transform:[f,m,"","none","gpu","cpu"]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:pe()}],"translate-x":[{"translate-x":pe()}],"translate-y":[{"translate-y":pe()}],"translate-z":[{"translate-z":pe()}],"translate-none":["translate-none"],accent:[{accent:v()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:v()}],"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",f,m]}],"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":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"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",f,m]}],fill:[{fill:["none",...v()]}],"stroke-w":[{stroke:[j,ce,$,xe]}],stroke:[{stroke:["none",...v()]}],"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 rt(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=rt(e[t]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function gr(){for(var e,t,r=0,o="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=rt(e))&&(o&&(o+=" "),o+=t);return o}function pr(...e){return fr(gr(e))}var ye,ot;function nt(){if(ot)return ye;ot=1;function e(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}return ye=e,ye}var we,at;function br(){if(at)return we;at=1;var e=typeof de=="object"&&de&&de.Object===Object&&de;return we=e,we}var ke,it;function st(){if(it)return ke;it=1;var e=br(),t=typeof self=="object"&&self&&self.Object===Object&&self,r=e||t||Function("return this")();return ke=r,ke}var je,lt;function hr(){if(lt)return je;lt=1;var e=st(),t=function(){return e.Date.now()};return je=t,je}var Te,ct;function vr(){if(ct)return Te;ct=1;var e=/\s/;function t(r){for(var o=r.length;o--&&e.test(r.charAt(o)););return o}return Te=t,Te}var Se,dt;function xr(){if(dt)return Se;dt=1;var e=vr(),t=/^\s+/;function r(o){return o&&o.slice(0,e(o)+1).replace(t,"")}return Se=r,Se}var Ce,ut;function mt(){if(ut)return Ce;ut=1;var e=st(),t=e.Symbol;return Ce=t,Ce}var Ee,ft;function yr(){if(ft)return Ee;ft=1;var e=mt(),t=Object.prototype,r=t.hasOwnProperty,o=t.toString,a=e?e.toStringTag:void 0;function l(i){var s=r.call(i,a),d=i[a];try{i[a]=void 0;var u=!0}catch{}var x=o.call(i);return u&&(s?i[a]=d:delete i[a]),x}return Ee=l,Ee}var Re,gt;function wr(){if(gt)return Re;gt=1;var e=Object.prototype,t=e.toString;function r(o){return t.call(o)}return Re=r,Re}var _e,pt;function kr(){if(pt)return _e;pt=1;var e=mt(),t=yr(),r=wr(),o="[object Null]",a="[object Undefined]",l=e?e.toStringTag:void 0;function i(s){return s==null?s===void 0?a:o:l&&l in Object(s)?t(s):r(s)}return _e=i,_e}var ze,bt;function jr(){if(bt)return ze;bt=1;function e(t){return t!=null&&typeof t=="object"}return ze=e,ze}var Ae,ht;function Tr(){if(ht)return Ae;ht=1;var e=kr(),t=jr(),r="[object Symbol]";function o(a){return typeof a=="symbol"||t(a)&&e(a)==r}return Ae=o,Ae}var Oe,vt;function Sr(){if(vt)return Oe;vt=1;var e=xr(),t=nt(),r=Tr(),o=NaN,a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt;function d(u){if(typeof u=="number")return u;if(r(u))return o;if(t(u)){var x=typeof u.valueOf=="function"?u.valueOf():u;u=t(x)?x+"":x}if(typeof u!="string")return u===0?u:+u;u=e(u);var A=l.test(u);return A||i.test(u)?s(u.slice(2),A?2:8):a.test(u)?o:+u}return Oe=d,Oe}var Ie,xt;function Cr(){if(xt)return Ie;xt=1;var e=nt(),t=hr(),r=Sr(),o="Expected a function",a=Math.max,l=Math.min;function i(s,d,u){var x,A,L,I,_,p,g=0,G=!1,F=!1,V=!0;if(typeof s!="function")throw new TypeError(o);d=r(d)||0,e(u)&&(G=!!u.leading,F="maxWait"in u,L=F?a(r(u.maxWait)||0,d):L,V="trailing"in u?!!u.trailing:V);function P(E){var N=x,B=A;return x=A=void 0,g=E,I=s.apply(B,N),I}function b(E){return g=E,_=setTimeout(c,d),G?P(E):I}function k(E){var N=E-p,B=E-g,Y=d-N;return F?l(Y,L-B):Y}function T(E){var N=E-p,B=E-g;return p===void 0||N>=d||N<0||F&&B>=L}function c(){var E=t();if(T(E))return z(E);_=setTimeout(c,k(E))}function z(E){return _=void 0,V&&x?P(E):(x=A=void 0,I)}function O(){_!==void 0&&clearTimeout(_),g=0,x=p=A=_=void 0}function U(){return _===void 0?I:z(t())}function M(){var E=t(),N=T(E);if(x=arguments,A=this,p=E,N){if(_===void 0)return b(p);if(F)return clearTimeout(_),_=setTimeout(c,d),P(p)}return _===void 0&&(_=setTimeout(c,d)),I}return M.cancel=O,M.flush=U,M}return Ie=i,Ie}var Er=Cr();const Rr=yt(Er),_r=C.forwardRef(({initialContent:e="",onChange:t,onSave:r,onExport:o,readOnly:a=!1,showButtons:l=!1,showSaveTitle:i=!1,showStatusBar:s=!1,height:d="500px",onImageUpload:u,imageUploadEndpoint:x,allowedImageTypes:A=["image/jpeg","image/png","image/gif","image/webp"],maxImageSize:L=5*1024*1024,onInit:I,debounceDelay:_=300},p)=>{const{editorState:g,updateContent:G,updateTitle:F,executeCommand:V,getValidationResult:P,exportToHTML:b,clearEditor:k,handlePaste:T,handleDrop:c,insertImage:z,uploadPendingImages:O}=Ct({initialContent:e,onImageUpload:u,imageUploadEndpoint:x,allowedImageTypes:A,maxImageSize:L}),U=C.useRef(null),M=C.useRef(null),E=C.useRef(!1),N=C.useRef(null),[B,Y]=C.useState(!1);C.useEffect(()=>{U.current&&(typeof p=="function"?p(U.current):p&&(p.current=U.current))},[p]),C.useEffect(()=>{I&&U.current&&!E.current&&(I(U.current),E.current=!0)},[I]),C.useEffect(()=>{if(t)return N.current=Rr((n,y,w)=>{t(n,y,w)},_),()=>N.current?.cancel()},[t,_]),C.useEffect(()=>{if(!t||!g.content)return;const n=(()=>{try{return b({includeStyles:!1,includeMeta:!1})}catch{return`<!DOCTYPE html><html><body>${g.content}</body></html>`}})();_>0&&N.current?N.current(g.content,n,g.title):t(g.content,n,g.title)},[g.content,g.title,t,b,_]);const H=C.useCallback(async()=>{if(N.current?.flush(),g.pendingImages.length>0&&await O(),!P().success){Y(!0),setTimeout(()=>Y(!1),3e3);return}r?.(g.content,b())},[g,O,P,b,r]),v=C.useCallback(async()=>{N.current?.flush(),g.pendingImages.length>0&&await O();const n=b();o?.(n);const y=new Blob([n],{type:"text/html"}),w=URL.createObjectURL(y),R=document.createElement("a");R.href=w,R.download=g.title.replace(/\s+/g,"_")||"document.html",R.click(),URL.revokeObjectURL(w)},[g,O,b,o]),ee=C.useCallback(n=>G(n),[G]),te=async n=>{if(n.target.files){for(const y of Array.from(n.target.files))await z(y);n.target.value=""}};return h.jsxs("div",{className:pr("relative w-full bg-white border border-gray-300 rounded-lg overflow-hidden",a&&"pointer-events-none opacity-80"),style:{height:d},children:[i&&h.jsx("div",{className:"p-6 border-b bg-gray-50",children:h.jsx("input",{className:"w-full text-2xl font-bold bg-transparent outline-none",value:g.title,onChange:n=>F(n.target.value),placeholder:"Document Title",readOnly:a})}),h.jsx(Tt,{onCommand:V,onSave:H,onExport:v,showButtons:l,onClear:k,hasUnsavedChanges:g.hasUnsavedChanges,onImageUpload:()=>M.current?.click(),pendingImagesCount:g.pendingImages.length}),h.jsx("input",{ref:M,type:"file",className:"hidden",accept:A.join(","),multiple:!0,onChange:te}),B&&h.jsx("div",{className:"px-6 py-2 text-sm text-red-600 bg-red-50",children:"Please fix validation errors before saving."}),h.jsx("div",{ref:U,className:"p-6 outline-none overflow-y-auto min-h-[200px]",contentEditable:!a,suppressContentEditableWarning:!0,onInput:n=>ee(n.currentTarget.innerHTML),onPaste:T,onDrop:c,onDragOver:n=>n.preventDefault()}),g.pendingImages.length>0&&h.jsxs("div",{className:"p-4 text-sm text-blue-600 bg-blue-50 flex gap-2",children:[h.jsx(D.Upload,{size:16}),g.pendingImages.length," image(s) pending upload"]}),s&&h.jsx(St,{wordCount:g.wordCount,characterCount:g.characterCount,hasUnsavedChanges:g.hasUnsavedChanges,pendingImagesCount:g.pendingImages.length})]})});Z.TextEditor=_r,Object.defineProperty(Z,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"})}));
|