forge-edit 0.1.0-beta.2 → 0.1.0-beta.21

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/dist/react.js ADDED
@@ -0,0 +1,27 @@
1
+ (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-100:oklch(96.7% .003 264.542);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--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-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--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-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::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]){appearance:button}::file-selector-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}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-top-2{top:calc(var(--spacing) * -2)}.top-0{top:0}.top-\\[1px\\]{top:1px}.top-\\[calc\\(100\\%\\+4px\\)\\]{top:calc(100% + 4px)}.top-\\[calc\\(100\\%\\+8px\\)\\]{top:calc(100% + 8px)}.top-full{top:100%}.left-0{left:0}.left-1\\/2{left:50%}.left-\\[-7px\\]{left:-7px}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-\\[1\\]{z-index:1}.z-\\[2\\]{z-index:2}.z-\\[3\\]{z-index:3}.z-\\[5\\]{z-index:5}.z-\\[9999\\]{z-index:9999}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-1{margin-top:var(--spacing)}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing) * 2)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-40{height:calc(var(--spacing) * 40)}.h-\\[30px\\]{height:30px}.h-full{height:100%}.h-px{height:1px}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-\\[220px\\]{max-height:220px}.min-h-\\[60px\\]{min-height:60px}.min-h-\\[120px\\]{min-height:120px}.w-2{width:calc(var(--spacing) * 2)}.w-2\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-40{width:calc(var(--spacing) * 40)}.w-\\[1px\\]{width:1px}.w-\\[70px\\]{width:70px}.w-full{width:100%}.max-w-\\[50px\\]{max-width:50px}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-\\[18px\\]{min-width:18px}.min-w-\\[28px\\]{min-width:28px}.min-w-\\[110px\\]{min-width:110px}.min-w-\\[130px\\]{min-width:130px}.min-w-\\[150px\\]{min-width:150px}.min-w-\\[160px\\]{min-width:160px}.min-w-\\[180px\\]{min-width:180px}.min-w-\\[200px\\]{min-width:200px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.cursor-s-resize{cursor:s-resize}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-\\[4px\\]{gap:4px}.gap-px{gap:1px}:where(.-space-x-px>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(-1px * var(--tw-space-x-reverse));margin-inline-end:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-\\[\\#ccc\\]>:not(:last-child)){border-color:#ccc}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-\\[3px\\]{border-top-left-radius:3px;border-top-right-radius:3px}.rounded-b-\\[3px\\]{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-r-7{border-right-style:var(--tw-border-style);border-right-width:7px}.border-r-8{border-right-style:var(--tw-border-style);border-right-width:8px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-7{border-bottom-style:var(--tw-border-style);border-bottom-width:7px}.border-b-8{border-bottom-style:var(--tw-border-style);border-bottom-width:8px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-7{border-left-style:var(--tw-border-style);border-left-width:7px}.border-l-8{border-left-style:var(--tw-border-style);border-left-width:8px}.border-none{--tw-border-style:none;border-style:none}.border-\\[\\#2c2c2c\\]{border-color:#2c2c2c}.border-\\[\\#4a90d9\\]{border-color:#4a90d9}.border-\\[\\#ccc\\]{border-color:#ccc}.border-\\[\\#d1d5db\\]{border-color:#d1d5db}.border-\\[\\#ddd\\]{border-color:#ddd}.border-\\[\\#eee\\]{border-color:#eee}.border-black{border-color:var(--color-black)}.border-r-transparent{border-right-color:#0000}.border-b-\\[\\#ccc\\]{border-bottom-color:#ccc}.border-b-white{border-bottom-color:var(--color-white)}.border-l-transparent{border-left-color:#0000}.bg-\\[\\#1e1e1e\\]{background-color:#1e1e1e}.bg-\\[\\#888\\]{background-color:#888}.bg-\\[\\#e2e8f0\\]{background-color:#e2e8f0}.bg-\\[\\#e5e7eb\\]{background-color:#e5e7eb}.bg-\\[\\#f0f0f0\\]{background-color:#f0f0f0}.bg-\\[\\#f5f5f5\\]{background-color:#f5f5f5}.bg-\\[rgba\\(74\\,144\\,217\\,0\\.4\\)\\]{background-color:#4a90d966}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\\/30{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.bg-\\[linear-gradient\\(rgba\\(0\\,0\\,0\\,0\\.05\\)_1px\\,transparent_1px\\)\\,linear-gradient\\(90deg\\,rgba\\(0\\,0\\,0\\,0\\.05\\)_1px\\,transparent_1px\\)\\]{background-image:linear-gradient(#0000000d 1px,#0000 1px),linear-gradient(90deg,#0000000d 1px,#0000 1px)}.bg-\\[size\\:16px_16px\\]{background-size:16px 16px}.fill-current{fill:currentColor}.fill-none{fill:none}.stroke-black{stroke:var(--color-black)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-\\[5px\\]{padding:5px}.p-\\[10px\\]{padding:10px}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-\\[7px\\]{padding-inline:7px}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pb-0\\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-serif{font-family:var(--font-serif)}.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))}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.text-\\[14px\\]{font-size:14px}.text-\\[15px\\]{font-size:15px}.text-\\[16px\\]{font-size:16px}.text-\\[18px\\]{font-size:18px}.text-\\[20px\\]{font-size:20px}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-none{--tw-leading:1;line-height:1}.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)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-\\[\\#333\\]{color:#333}.text-\\[\\#666\\]{color:#666}.text-black{color:var(--color-black)}.text-gray-700{color:var(--color-gray-700)}.text-white{color:var(--color-white)}.not-italic{font-style:normal}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-\\[0_2px_6px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_2px_8px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[inset_0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 1px 3px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\\[width\\,height\\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-\\[\\.is-open\\]\\:hidden:is(:where(.group):has(.is-open) *){display:none}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:bottom-full:before{content:var(--tw-content);bottom:100%}.before\\:left-1\\/2:before{content:var(--tw-content);left:50%}.before\\:-translate-x-1\\/2:before{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.before\\:border-x-\\[5px\\]:before{content:var(--tw-content);border-inline-style:var(--tw-border-style);border-inline-width:5px}.before\\:border-t-0:before{content:var(--tw-content);border-top-style:var(--tw-border-style);border-top-width:0}.before\\:border-b-\\[5px\\]:before{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:5px}.before\\:border-solid:before{content:var(--tw-content);--tw-border-style:solid;border-style:solid}.before\\:border-x-transparent:before{content:var(--tw-content);border-inline-color:#0000}.before\\:border-b-\\[\\#2c2c2c\\]:before{content:var(--tw-content);border-bottom-color:#2c2c2c}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:bottom-full:after{content:var(--tw-content);bottom:100%}.after\\:left-1\\/2:after{content:var(--tw-content);left:50%}.after\\:-translate-x-1\\/2:after{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.after\\:translate-y-\\[1px\\]:after{content:var(--tw-content);--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\\:border-x-\\[4px\\]:after{content:var(--tw-content);border-inline-style:var(--tw-border-style);border-inline-width:4px}.after\\:border-t-0:after{content:var(--tw-content);border-top-style:var(--tw-border-style);border-top-width:0}.after\\:border-b-\\[4px\\]:after{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.after\\:border-solid:after{content:var(--tw-content);--tw-border-style:solid;border-style:solid}.after\\:border-x-transparent:after{content:var(--tw-content);border-inline-color:#0000}.after\\:border-b-\\[\\#1e1e1e\\]:after{content:var(--tw-content);border-bottom-color:#1e1e1e}.last\\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\\:pr-0:last-child{padding-right:0}@media (hover:hover){.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:border-\\[\\#999\\]:hover{border-color:#999}.hover\\:border-\\[\\#aaa\\]:hover{border-color:#aaa}.hover\\:border-black:hover{border-color:var(--color-black)}.hover\\:bg-\\[\\#e6e6e6\\]:hover{background-color:#e6e6e6}.hover\\:bg-\\[\\#f0f0f0\\]:hover{background-color:#f0f0f0}.hover\\:bg-\\[\\#f5f5f5\\]:hover{background-color:#f5f5f5}.hover\\:bg-\\[\\#f9f9f9\\]:hover{background-color:#f9f9f9}.hover\\:bg-black\\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\\:bg-\\[\\#d0d0d0\\]:active{background-color:#d0d0d0}.active\\:bg-\\[\\#e8e8e8\\]:active{background-color:#e8e8e8}.rtl\\:right-0:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){right:0}.rtl\\:left-1\\/2:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){left:50%}.rtl\\:left-auto:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){left:auto}.rtl\\:-translate-x-1\\/2:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.rtl\\:divide-x-reverse:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *)>:not(:last-child)){--tw-divide-x-reverse:1}.\\[\\&_blockquote\\]\\:my-2 blockquote{margin-block:calc(var(--spacing) * 2)}.\\[\\&_blockquote\\]\\:border-l-4 blockquote{border-left-style:var(--tw-border-style);border-left-width:4px}.\\[\\&_blockquote\\]\\:border-\\[\\#ccc\\] blockquote{border-color:#ccc}.\\[\\&_blockquote\\]\\:pl-4 blockquote{padding-left:calc(var(--spacing) * 4)}.\\[\\&_blockquote\\]\\:italic blockquote{font-style:italic}.\\[\\&_h1\\]\\:text-2xl h1{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.\\[\\&_h1\\]\\:font-bold h1{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\\[\\&_h2\\]\\:text-xl h2{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.\\[\\&_h2\\]\\:font-bold h2{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\\[\\&_h3\\]\\:text-lg h3{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.\\[\\&_h3\\]\\:font-bold h3{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\\[\\&_pre\\]\\:rounded pre{border-radius:.25rem}.\\[\\&_pre\\]\\:bg-\\[\\#f4f4f4\\] pre{background-color:#f4f4f4}.\\[\\&_pre\\]\\:p-2 pre{padding:calc(var(--spacing) * 2)}.\\[\\&\\.is-active\\]\\:bg-\\[\\#e5e5e5\\].is-active{background-color:#e5e5e5}.\\[\\&\\.is-open\\]\\:block.is-open{display:block}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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}/*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
2
+ import { t as e } from "./light-CM1Yx-3B.js";
3
+ import { createElement as t, useEffect as n, useRef as r } from "react";
4
+ //#region src/react/ForgeEditor.js
5
+ function i(i) {
6
+ let a = r(null), o = r(null);
7
+ return n(() => {
8
+ let t = a.current;
9
+ if (!t) return;
10
+ let n = e({
11
+ type: i.type || "light",
12
+ placeholder: i.placeholder || "",
13
+ width: i.width || "100%",
14
+ height: i.height || "300px",
15
+ lang: i.lang || "en",
16
+ dir: i.dir || "ltr"
17
+ });
18
+ return n.element.style.width = i.width || "100%", n.element.style.height = i.height || "300px", t.appendChild(n.element), o.current = n, typeof i.onReady == "function" && i.onReady(n), () => {
19
+ t.innerHTML = "", o.current = null;
20
+ };
21
+ }, []), t("div", {
22
+ ref: a,
23
+ className: "forge-editor-react-container"
24
+ });
25
+ }
26
+ //#endregion
27
+ export { i as ForgeEditor };
package/package.json CHANGED
@@ -1,15 +1,13 @@
1
1
  {
2
2
  "name": "forge-edit",
3
- "version": "0.1.0-beta.2",
3
+ "version": "0.1.0-beta.21",
4
4
  "description": "A lightweight WYSIWYG editor built with Preact",
5
- "main": "./dist/main/index.js",
6
- "module": "./dist/main/index.js",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
7
  "type": "module",
8
8
  "exports": {
9
- ".": {
10
- "import": "./dist/main/index.js"
11
- },
12
- "./style.css": "./dist/main/index.css"
9
+ ".": "./dist/index.js",
10
+ "./react": "./dist/react.js"
13
11
  },
14
12
  "files": [
15
13
  "dist"
@@ -23,15 +21,24 @@
23
21
  "editor",
24
22
  "wysiwyg",
25
23
  "preact",
26
- "rich-text",
27
- "text-editor"
24
+ "rich-text"
28
25
  ],
29
26
  "author": "",
30
27
  "license": "MIT",
28
+ "peerDependencies": {
29
+ "react": ">=16.8.0"
30
+ },
31
+ "peerDependenciesMeta": {
32
+ "react": {
33
+ "optional": true
34
+ }
35
+ },
31
36
  "devDependencies": {
32
- "vite": "^8.2.0"
37
+ "vite": "^8.2.0",
38
+ "vite-plugin-css-injected-by-js": "^5.0.2"
33
39
  },
34
40
  "dependencies": {
41
+ "@tailwindcss/vite": "^4.3.3",
35
42
  "preact": "^10.29.8",
36
43
  "sweetalert2": "^11.26.25"
37
44
  }
package/README.md DELETED
@@ -1,216 +0,0 @@
1
- # Forge Editor
2
-
3
- A lightweight WYSIWYG editor built with Preact.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install forge-edit
9
- ```
10
-
11
- ## Usage
12
-
13
- ### Basic HTML Usage
14
-
15
- ```html
16
- <!DOCTYPE html>
17
- <html lang="en">
18
- <head>
19
- <meta charset="UTF-8">
20
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
21
- <title>Forge Editor</title>
22
- </head>
23
- <body>
24
- <forge-editor
25
- type="light"
26
- placeholder="Write something..."
27
- width="628px"
28
- height="200px"
29
- lang="en"
30
- dir="ltr"></forge-editor>
31
-
32
- <script type="module">
33
- import ForgeEditor from 'forge-edit'
34
-
35
- const element = document.querySelector('forge-editor')
36
- const editor = ForgeEditor(element)
37
-
38
- // Get HTML content
39
- const html = editor.getHTML()
40
- console.log(html)
41
-
42
- // Set HTML content
43
- editor.setHTML('<p>New content</p>')
44
-
45
- // Get text content
46
- const text = editor.getText()
47
- console.log(text)
48
-
49
- // Get selected text
50
- const selection = editor.getSelection()
51
- console.log(selection)
52
- </script>
53
- </body>
54
- </html>
55
- ```
56
-
57
- ### React Usage
58
-
59
- Create a wrapper component:
60
-
61
- ```jsx
62
- import { useEffect, useRef, forwardRef, useImperativeHandle } from 'react'
63
-
64
- const ReactForgeEditor = forwardRef(({
65
- placeholder = 'Write something...',
66
- width = '628px',
67
- height = '200px',
68
- lang = 'en',
69
- dir = 'ltr',
70
- onChange,
71
- onInit
72
- }, ref) => {
73
- const containerRef = useRef(null)
74
- const editorRef = useRef(null)
75
- const apiRef = useRef(null)
76
-
77
- useImperativeHandle(ref, () => ({
78
- getHTML: () => apiRef.current?.getHTML?.() || '',
79
- setHTML: (html) => apiRef.current?.setHTML?.(html),
80
- getText: () => apiRef.current?.getText?.() || '',
81
- getSelection: () => apiRef.current?.getSelection?.() || '',
82
- getEditorElement: () => editorRef.current
83
- }))
84
-
85
- useEffect(() => {
86
- if (!containerRef.current) return
87
-
88
- const customElement = document.createElement('forge-editor')
89
- customElement.setAttribute('type', 'light')
90
- customElement.setAttribute('placeholder', placeholder)
91
- customElement.setAttribute('width', width)
92
- customElement.setAttribute('height', height)
93
- customElement.setAttribute('lang', lang)
94
- customElement.setAttribute('dir', dir)
95
-
96
- containerRef.current.appendChild(customElement)
97
-
98
- const initEditor = async () => {
99
- try {
100
- const ForgeEditor = await import('forge-edit')
101
- const instance = ForgeEditor.default(customElement)
102
-
103
- editorRef.current = instance.element
104
- apiRef.current = {
105
- getHTML: instance.getHTML,
106
- setHTML: instance.setHTML,
107
- getText: instance.getText,
108
- getSelection: instance.getSelection
109
- }
110
-
111
- if (onInit) {
112
- onInit(apiRef.current)
113
- }
114
-
115
- const contentElement = instance.element.querySelector('.forge-editor__content')
116
- if (contentElement && onChange) {
117
- const observer = new MutationObserver(() => {
118
- onChange(apiRef.current?.getHTML?.() || '')
119
- })
120
- observer.observe(contentElement, {
121
- childList: true,
122
- subtree: true,
123
- characterData: true
124
- })
125
-
126
- return () => observer.disconnect()
127
- }
128
- } catch (error) {
129
- console.error('Failed to initialize forge-edit:', error)
130
- }
131
- }
132
-
133
- initEditor()
134
-
135
- return () => {
136
- if (containerRef.current && customElement) {
137
- containerRef.current.removeChild(customElement)
138
- }
139
- }
140
- }, [placeholder, width, height, lang, dir, onChange, onInit])
141
-
142
- return <div ref={containerRef} />
143
- })
144
-
145
- ReactForgeEditor.displayName = 'ReactForgeEditor'
146
-
147
- export default ReactForgeEditor
148
- ```
149
-
150
- Use it in your app:
151
-
152
- ```jsx
153
- import React, { useRef } from 'react'
154
- import ReactForgeEditor from './ReactForgeEditor'
155
-
156
- function App() {
157
- const editorRef = useRef(null)
158
-
159
- const handleInit = (api) => {
160
- api.setHTML('<p>Hello from React!</p>')
161
- }
162
-
163
- return (
164
- <div>
165
- <ReactForgeEditor
166
- ref={editorRef}
167
- placeholder="Write something..."
168
- width="628px"
169
- height="200px"
170
- onInit={handleInit}
171
- onChange={(html) => console.log(html)}
172
- />
173
- </div>
174
- )
175
- }
176
- ```
177
-
178
- ## API
179
-
180
- ### Attributes
181
-
182
- | Attribute | Type | Default | Description |
183
- |-----------|------|---------|-------------|
184
- | `type` | string | `'light'` | Editor type |
185
- | `placeholder` | string | `'Write something...'` | Placeholder text |
186
- | `width` | string | `'628px'` | Editor width |
187
- | `height` | string | `'200px'` | Editor height |
188
- | `lang` | string | `'en'` | Language code |
189
- | `dir` | string | `'ltr'` | Text direction (`'ltr'` or `'rtl'`) |
190
-
191
- ### Methods
192
-
193
- | Method | Description |
194
- |--------|-------------|
195
- | `getHTML()` | Get editor HTML content |
196
- | `setHTML(html)` | Set editor HTML content |
197
- | `getText()` | Get plain text content |
198
- | `getSelection()` | Get selected text |
199
-
200
- ## Features
201
-
202
- - Lightweight WYSIWYG editor
203
- - Built with Preact
204
- - Custom web component
205
- - Easy to integrate
206
- - Supports multiple languages
207
- - RTL support
208
- - Rich text formatting
209
- - Color picker
210
- - Font selection
211
- - Image insertion
212
- - Table insertion
213
-
214
- ## License
215
-
216
- MIT
@@ -1,2 +0,0 @@
1
- .forge-editor{vertical-align:top;box-sizing:border-box;display:inline-block}.forge-editor--light{background:#fff;border:1px solid #ddd;border-radius:3px;flex-direction:column;display:flex;overflow:hidden}.forge-editor__content{box-sizing:border-box;outline:none;flex:auto;min-height:0;padding:10px;overflow:auto}.forge-editor__toolbar{color:#333;background-color:#f5f5f5;border-bottom:1px solid #ddd;border-radius:3px 3px 0 0;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px;margin:0;padding:5px;display:flex;position:relative}.forge-toolbar-group{align-items:center;gap:2px;display:flex;position:relative}.forge-toolbar-button{cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #ccc;justify-content:center;align-items:center;height:28px;padding:4px 7px;font-size:14px;line-height:1;display:flex;position:relative}.forge-toolbar-button:hover{background:#f0f0f0}.forge-toolbar-button:active{transform:translateY(1px)}.forge-toolbar-dropdown{z-index:10;background:#fff;border:1px solid #ccc;min-width:100px;display:none;position:absolute;top:100%;left:0}.forge-dropdown-item{color:#333;white-space:nowrap;padding:4px 8px;text-decoration:none;display:block}.forge-toolbar-dropdown.is-open{display:block}.forge-dropdown-item:hover{background:#f0f0f0}.forge-editor__toolbar .forge-toolbar-button,.forge-editor__toolbar .forge-color-button-group{box-sizing:border-box;height:28px}.forge-toolbar-icon{text-align:center;min-width:16px;font-size:14px;font-weight:500;line-height:1;display:inline-block}.forge-tooltip{color:#000;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:30;background:#ffffe1;border:1px solid #333;border-radius:2px;padding:2px 8px;font-size:13px;line-height:1.6;transition:opacity .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:1px 1px 3px #0000004d}.forge-tooltip:before{content:"";border:5px solid #0000;border-top-width:0;border-bottom-color:#333;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.forge-tooltip:after{content:"";border:4px solid #0000;border-top-width:0;border-bottom-color:#ffffe1;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(1px)}.forge-toolbar-button:hover .forge-tooltip{opacity:1;visibility:visible}.forge-toolbar-button.is-active .forge-tooltip{opacity:0;visibility:hidden}[dir=rtl] .forge-toolbar-dropdown{left:auto;right:0}[dir=rtl] .forge-toolbar-dropdown .forge-dropdown-item{text-align:right}[dir=rtl] .forge-tooltip{left:50%;transform:translate(-50%)}.forge-toolbar-style .forge-toolbar-button{padding:0 8px}.forge-dropdown-style{z-index:20;border-radius:2px;min-width:90px;max-height:96px;padding:4px 0;top:calc(100% + 4px);overflow-y:auto;box-shadow:0 2px 6px #00000026}.forge-dropdown-style.is-open{display:block}.forge-dropdown-item{cursor:pointer;padding:4px 12px;transition:background .1s}.forge-dropdown-item p,.forge-dropdown-item blockquote,.forge-dropdown-item pre,.forge-dropdown-item h1,.forge-dropdown-item h2,.forge-dropdown-item h3,.forge-dropdown-item h4,.forge-dropdown-item h5,.forge-dropdown-item h6{margin:0;font-weight:400;line-height:1.4}.forge-dropdown-item p,.forge-dropdown-item blockquote,.forge-dropdown-item pre{font-size:13px}.forge-dropdown-item pre{font-family:monospace}.forge-dropdown-item h1{font-size:20px}.forge-dropdown-item h2{font-size:18px}.forge-dropdown-item h3{font-size:16px}.forge-dropdown-item h4{font-size:15px}.forge-dropdown-item h5{font-size:14px}.forge-dropdown-item h6{font-size:13px}[dir=rtl] .forge-dropdown-style{left:auto;right:0}[dir=rtl] .forge-dropdown-item{text-align:right}.forge-toolbar-color{align-items:center;gap:4px;display:flex}.forge-color-item{z-index:10;align-items:center;display:flex;position:relative}.forge-color-button-group{background:0 0;border:1px solid #ccc;border-radius:2px;align-items:center;height:28px;display:flex;overflow:visible}.forge-color-button-group:hover{background:#0000000d;border-color:#aaa}.forge-color-main{cursor:pointer;background:0 0;border:none;min-width:28px;padding:0;font-size:14px}.forge-color-main:hover{background:#00000014}.forge-color-dropdown-btn{cursor:pointer;color:#666;background:0 0;border:none;border-left:1px solid #ccc;min-width:18px;padding:0 4px;font-size:10px}.forge-color-dropdown-btn:hover{background:#00000014}.forge-recent-color{border:1px solid #ccc;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;font-weight:700;display:flex}.forge-toolbar-dropdown.forge-dropdown-color{border-radius:3px;min-width:160px;max-height:200px;margin-top:4px;padding:6px;overflow-y:auto;box-shadow:0 2px 6px #00000026}.forge-toolbar-dropdown.forge-dropdown-color.is-open{display:block}[dir=rtl] .forge-toolbar-dropdown.forge-dropdown-color{left:auto;right:0}.forge-color-section{margin-bottom:6px}.forge-color-section:last-child{margin-bottom:0}.forge-color-section-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.forge-color-title{color:#333;font-size:12px;font-weight:700}.forge-color-reset{color:#333;cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:2px;padding:2px 8px;font-size:11px;font-weight:500;transition:all .15s}.forge-color-reset:hover{background:#e6e6e6;border-color:#999}.forge-color-reset:active{background:#d0d0d0;border-color:#666;transform:translateY(1px)}.forge-color-palette{flex-direction:column;gap:2px;display:flex}.forge-color-row{gap:2px;display:flex}.forge-color-button{cursor:pointer;border:1px solid #ccc;border-radius:2px;width:20px;height:20px;padding:0}.forge-color-button:hover{border-color:#000;transform:scale(1.1)}.forge-toolbar-color .forge-toolbar-button .forge-tooltip{padding:2px 7px}.forge-toolbar-button{gap:2px}.note-popover{z-index:1000;background:#fff;border:1px solid #ccc;border-radius:4px;min-width:200px;padding:6px;display:none;position:absolute;box-shadow:0 2px 8px #00000026}.note-popover.bottom .note-popover-arrow{border-bottom:8px solid #ccc;border-left:8px solid #0000;border-right:8px solid #0000;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.note-popover.bottom .note-popover-arrow:after{content:"";border-bottom:7px solid #fff;border-left:7px solid #0000;border-right:7px solid #0000;position:absolute;top:1px;left:-7px}.popover-content{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.note-btn-group{border-right:1px solid #ddd;gap:2px;padding-right:4px;display:flex}.note-btn-group:last-child{border-right:none;padding-right:0}.note-btn{cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:2px;padding:4px 8px;font-size:12px;line-height:1.4;transition:all .1s}.note-btn:hover{background:#e6e6e6;border-color:#999}.note-btn:active{background:#d0d0d0;transform:translateY(1px)}.note-fontsize-10{font-size:10px}.note-icon-float-left,.note-icon-float-right,.note-icon-rollback,.note-icon-trash{font-size:14px;font-style:normal;line-height:1}[dir=rtl] .note-popover.bottom .note-popover-arrow{left:50%;transform:translate(-50%)}.forge-toolbar-paragraph .forge-toolbar-button{width:28px;padding:0}.forge-toolbar-paragraph .forge-toolbar-icon{width:16px;height:16px}.forge-toolbar-paragraph .forge-toolbar-icon svg{width:16px;height:16px;display:block}.forge-toolbar-paragraph .forge-toolbar-icon svg rect,.forge-toolbar-paragraph .forge-toolbar-icon svg circle,.forge-toolbar-paragraph .forge-toolbar-icon svg text{fill:#000!important;stroke:none!important}.forge-toolbar-paragraph .forge-toolbar-icon svg line,.forge-toolbar-paragraph .forge-toolbar-icon svg polyline{stroke:#000!important}.forge-dropdown-paragraph{min-width:130px;padding:4px}.forge-dropdown-paragraph .forge-toolbar-group{gap:2px;padding:2px 0}.forge-dropdown-paragraph .forge-toolbar-group:not(:last-child){border-bottom:1px solid #eee;margin-bottom:2px}.forge-dropdown-paragraph .forge-toolbar-button{width:28px;padding:0}.forge-editor__content table{border-collapse:collapse;border:1px solid #ddd;width:100%;margin:8px 0}.forge-editor__content table td{vertical-align:top;border:1px solid #ddd;min-width:30px;padding:8px}.forge-editor__content table td:focus{outline:none}.forge-dropdown-table{padding:8px}.note-dimension-picker{cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:3px;width:160px;height:160px;margin:0 auto;position:relative;overflow:hidden}.note-dimension-picker-mousecatcher{z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.note-dimension-picker-highlighted{z-index:3;pointer-events:none;background:#4a90d966;border:2px solid #4a90d9;transition:width 50ms,height 50ms;position:absolute;top:0;left:0}.note-dimension-picker-unhighlighted{z-index:2;pointer-events:none;background:#ffffff4d;width:100%;height:100%;position:absolute;top:0;left:0}.note-dimension-display{text-align:center;color:#333;padding:6px 0 2px;font-size:13px;font-weight:600}.note-dimension-picker:before{content:"";z-index:1;pointer-events:none;background-image:linear-gradient(#0000000d 1px,#0000 1px),linear-gradient(90deg,#0000000d 1px,#0000 1px);background-size:16px 16px;width:100%;height:100%;position:absolute;top:0;left:0}.forge-toolbar-view .forge-toolbar-button{padding:4px 2px}.forge-fontname-button{text-align:left;min-width:80px}.forge-toolbar-group.forge-toolbar-fontname .forge-toolbar-dropdown.forge-dropdown-fontname{z-index:10!important;background:#fff!important;border:1px solid #ccc!important;min-width:120px!important;max-height:100px!important;padding:0!important;display:none!important;position:absolute!important;top:100%!important;left:0!important;overflow:hidden auto!important}.forge-toolbar-group.forge-toolbar-fontname .forge-toolbar-dropdown.forge-dropdown-fontname.is-open{display:block!important}.forge-toolbar-group.forge-toolbar-fontname .forge-toolbar-dropdown.forge-dropdown-fontname .forge-dropdown-item{white-space:nowrap!important;color:#333!important;box-sizing:border-box!important;border-bottom:1px solid #f0f0f0!important;height:30px!important;padding:8px 12px!important;line-height:14px!important;text-decoration:none!important;display:block!important}.forge-toolbar-group.forge-toolbar-fontname .forge-toolbar-dropdown.forge-dropdown-fontname .forge-dropdown-item:last-child{border-bottom:none!important}.forge-toolbar-font .forge-toolbar-button{text-align:center;border-radius:2px;min-width:32px;padding:4px 6px;font-size:16px;transition:all .15s}.forge-toolbar-font .forge-toolbar-button:hover{background:#e6e6e6;border-color:#999;box-shadow:inset 0 1px 2px #0000001a}.forge-toolbar-font .forge-toolbar-button:active{background:#d0d0d0;border-color:#666;box-shadow:inset 0 2px 4px #0003}.forge-toolbar-font .forge-toolbar-button strong{color:#333;font-size:16px;font-weight:900;line-height:1}.forge-toolbar-font .forge-toolbar-button u{text-underline-offset:2px;color:#333;font-size:16px;line-height:1;text-decoration:underline}.forge-toolbar-font .forge-toolbar-button span{color:#333;font-size:18px;line-height:1}.forge-toolbar-font .forge-toolbar-button .forge-tooltip{font-size:13px}.forge-toolbar-font .forge-toolbar-button.is-active{background:#d4e6f7;border-color:#8ab3d6;box-shadow:inset 0 1px 3px #0003}.forge-statusbar{cursor:s-resize;box-sizing:border-box;background-color:#f0f0f0;border-top:1px solid #ccc;border-radius:0 0 3px 3px;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:10px;display:flex}.forge-resizebar{flex-direction:column;align-items:center;gap:1px;display:flex}.forge-icon-bar{background-color:#888;border-radius:1px;width:12px;height:1px}
2
- /*$vite$:1*/