@8btc/whiteboard 0.0.20-alpha.21 → 0.0.20-alpha.24
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/index.css +1 -1
- package/dist/index.js +153 -137
- package/package.json +5 -1
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@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-y-reverse:0;--tw-border-style:solid;--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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}:root{overflow-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tt-gray-light-a-50:#3838380a;--tt-gray-light-a-100:#0f16240d;--tt-gray-light-a-200:#25272d1a;--tt-gray-light-a-300:#2f323733;--tt-gray-light-a-400:#282c336b;--tt-gray-light-a-500:#34373ca3;--tt-gray-light-a-600:#24272ec7;--tt-gray-light-a-700:#23252ade;--tt-gray-light-a-800:#1e2024f2;--tt-gray-light-a-900:#1d1e20fa;--tt-gray-light-50:#fafafa;--tt-gray-light-100:#f4f4f5;--tt-gray-light-200:#eaeaeb;--tt-gray-light-300:#d5d6d7;--tt-gray-light-400:#a6a7ab;--tt-gray-light-500:#7d7f82;--tt-gray-light-600:#53565a;--tt-gray-light-700:#404145;--tt-gray-light-800:#2c2d30;--tt-gray-light-900:#222325;--tt-gray-dark-a-50:#e8e8fd0d;--tt-gray-dark-a-100:#e7e7f312;--tt-gray-dark-a-200:#eeeef61c;--tt-gray-dark-a-300:#efeff538;--tt-gray-dark-a-400:#f4f4ff5e;--tt-gray-dark-a-500:#eceefd80;--tt-gray-dark-a-600:#f7f7fda3;--tt-gray-dark-a-700:#fbfbfebf;--tt-gray-dark-a-800:#fdfdfde0;--tt-gray-dark-a-900:#fffffff5;--tt-gray-dark-50:#19191a;--tt-gray-dark-100:#202022;--tt-gray-dark-200:#2d2d2f;--tt-gray-dark-300:#464649;--tt-gray-dark-400:#636369;--tt-gray-dark-500:#7c7c83;--tt-gray-dark-600:#a3a3a8;--tt-gray-dark-700:#c0c0c3;--tt-gray-dark-800:#e0e0e1;--tt-gray-dark-900:#f5f5f5;--tt-brand-color-50:#efeeff;--tt-brand-color-100:#dedbff;--tt-brand-color-200:#c3bdff;--tt-brand-color-300:#9d8aff;--tt-brand-color-400:#7a52ff;--tt-brand-color-500:#6229ff;--tt-brand-color-600:#5400e5;--tt-brand-color-700:#4b00cc;--tt-brand-color-800:#380099;--tt-brand-color-900:#2b1966;--tt-brand-color-950:#0d002e;--tt-color-green-inc-5:#f0fff2;--tt-color-green-inc-4:#d6ffdc;--tt-color-green-inc-3:#b8ffc5;--tt-color-green-inc-2:#90fea8;--tt-color-green-inc-1:#67fe92;--tt-color-green-base:#01fe73;--tt-color-green-dec-1:#03ce5e;--tt-color-green-dec-2:#02a247;--tt-color-green-dec-3:#007a35;--tt-color-green-dec-4:#005221;--tt-color-green-dec-5:#002e0f;--tt-color-yellow-inc-5:#fffcf0;--tt-color-yellow-inc-4:#fff7d1;--tt-color-yellow-inc-3:#fff1ad;--tt-color-yellow-inc-2:#ffeb8a;--tt-color-yellow-inc-1:#ffe45c;--tt-color-yellow-base:#fd0;--tt-color-yellow-dec-1:#d1b500;--tt-color-yellow-dec-2:#a38d00;--tt-color-yellow-dec-3:#7a6a00;--tt-color-yellow-dec-4:#524500;--tt-color-yellow-dec-5:#2e2600;--tt-color-red-inc-5:#ffeeeb;--tt-color-red-inc-4:#ffcdc2;--tt-color-red-inc-3:#fa9;--tt-color-red-inc-2:#ff8a75;--tt-color-red-inc-1:#ff5d47;--tt-color-red-base:#ff3014;--tt-color-red-dec-1:#d11800;--tt-color-red-dec-2:#a30e00;--tt-color-red-dec-3:#7a0800;--tt-color-red-dec-4:#520400;--tt-color-red-dec-5:#2e0100;--white:#fff;--black:#0e0e11;--transparent:#fff0;--tt-shadow-elevated-md:0px 16px 48px 0px #1118270a,0px 12px 24px 0px #1118270a,0px 6px 8px 0px #11182705,0px 2px 3px 0px #11182705;--tt-radius-xxs:.125rem;--tt-radius-xs:.25rem;--tt-radius-sm:.375rem;--tt-radius-md:.5rem;--tt-radius-lg:.75rem;--tt-radius-xl:1rem;--tt-transition-duration-short:.1s;--tt-transition-duration-default:.2s;--tt-transition-duration-long:.64s;--tt-transition-easing-default:cubic-bezier(.46,.03,.52,.96);--tt-transition-easing-cubic:cubic-bezier(.65,.05,.36,1);--tt-transition-easing-quart:cubic-bezier(.77,0,.18,1);--tt-transition-easing-circ:cubic-bezier(.79,.14,.15,.86);--tt-transition-easing-back:cubic-bezier(.68,-.55,.27,1.55);--tt-accent-contrast:8%;--tt-destructive-contrast:8%;--tt-foreground-contrast:8%}:root,:root *,:root :before,:root :after{box-sizing:border-box;transition:none var(--tt-transition-duration-default)var(--tt-transition-easing-default)}:root{--tt-bg-color:var(--white);--tt-border-color:var(--tt-gray-light-a-200);--tt-border-color-tint:var(--tt-gray-light-a-100);--tt-sidebar-bg-color:var(--tt-gray-light-100);--tt-scrollbar-color:var(--tt-gray-light-a-200);--tt-cursor-color:var(--tt-brand-color-500);--tt-selection-color:#9d8aff33;--tt-card-bg-color:var(--white);--tt-card-border-color:var(--tt-gray-light-a-100)}.dark{--tt-bg-color:var(--black);--tt-border-color:var(--tt-gray-dark-a-200);--tt-border-color-tint:var(--tt-gray-dark-a-100);--tt-sidebar-bg-color:var(--tt-gray-dark-100);--tt-scrollbar-color:var(--tt-gray-dark-a-200);--tt-cursor-color:var(--tt-brand-color-400);--tt-selection-color:#7a52ff33;--tt-card-bg-color:var(--tt-gray-dark-50);--tt-card-border-color:var(--tt-gray-dark-a-50);--tt-shadow-elevated-md:0px 16px 48px 0px #00000080,0px 12px 24px 0px #0000003d,0px 6px 8px 0px #00000038,0px 2px 3px 0px #0000001f}:root{--tt-color-text-gray:#787673;--tt-color-text-brown:#9d6a53;--tt-color-text-orange:#d9730d;--tt-color-text-yellow:#ca922f;--tt-color-text-green:#448361;--tt-color-text-blue:#327da9;--tt-color-text-purple:#8f64af;--tt-color-text-pink:#c24c8b;--tt-color-text-red:#d34a45;--tt-color-text-gray-contrast:#54473126;--tt-color-text-brown-contrast:#d2a28e59;--tt-color-text-orange-contrast:#e07b3845;--tt-color-text-yellow-contrast:#ecbe4163;--tt-color-text-green-contrast:#7bb78145;--tt-color-text-blue-contrast:#5ea6cf45;--tt-color-text-purple-contrast:#a881c545;--tt-color-text-pink-contrast:#e189b445;--tt-color-text-red-contrast:#f4aa9f66}.dark{--tt-color-text-gray:#9c9c9c;--tt-color-text-brown:#b9856e;--tt-color-text-orange:#c77d48;--tt-color-text-yellow:#ca994e;--tt-color-text-green:#519e71;--tt-color-text-blue:#3699d3;--tt-color-text-purple:#9e69d3;--tt-color-text-pink:#d15796;--tt-color-text-red:#df5553;--tt-color-text-gray-contrast:#ffffff17;--tt-color-text-brown-contrast:#b9674640;--tt-color-text-orange-contrast:#e97d2533;--tt-color-text-yellow-contrast:#b3823d33;--tt-color-text-green-contrast:#2d9a6533;--tt-color-text-blue-contrast:#327da933;--tt-color-text-purple-contrast:#9b60d22e;--tt-color-text-pink-contrast:#dc4c9238;--tt-color-text-red-contrast:#dd555540}:root{--tt-color-highlight-yellow:#fef9c3;--tt-color-highlight-green:#dcfce7;--tt-color-highlight-blue:#e0f2fe;--tt-color-highlight-purple:#f3e8ff;--tt-color-highlight-red:#ffe4e6;--tt-color-highlight-gray:#f8f8f7;--tt-color-highlight-brown:#f4eeee;--tt-color-highlight-orange:#fbecdd;--tt-color-highlight-pink:#fcf1f6;--tt-color-highlight-yellow-contrast:#fbe604;--tt-color-highlight-green-contrast:#c7fad8;--tt-color-highlight-blue-contrast:#ceeafd;--tt-color-highlight-purple-contrast:#e4ccff;--tt-color-highlight-red-contrast:#ffccd0;--tt-color-highlight-gray-contrast:#54483126;--tt-color-highlight-brown-contrast:#d2a28d59;--tt-color-highlight-orange-contrast:#e07c3945;--tt-color-highlight-pink-contrast:#e188b345}.dark{--tt-color-highlight-yellow:#6b6524;--tt-color-highlight-green:#509568;--tt-color-highlight-blue:#6e92aa;--tt-color-highlight-purple:#583e74;--tt-color-highlight-red:#743e42;--tt-color-highlight-gray:#2f2f2f;--tt-color-highlight-brown:#4a3228;--tt-color-highlight-orange:#5c3b23;--tt-color-highlight-pink:#4e2c3c;--tt-color-highlight-yellow-contrast:#58531e;--tt-color-highlight-green-contrast:#47855d;--tt-color-highlight-blue-contrast:#5e86a1;--tt-color-highlight-purple-contrast:#4c3564;--tt-color-highlight-red-contrast:#643539;--tt-color-highlight-gray-contrast:#ffffff18;--tt-color-highlight-brown-contrast:#b8654540;--tt-color-highlight-orange-contrast:#e97e2533;--tt-color-highlight-pink-contrast:#dc4c9138}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes zoomIn{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes zoomOut{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes zoom{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideFromTop{0%{transform:translateY(-.5rem)}to{transform:translateY(0)}}@keyframes slideFromRight{0%{transform:translate(.5rem)}to{transform:translate(0)}}@keyframes slideFromLeft{0%{transform:translate(-.5rem)}to{transform:translate(0)}}@keyframes slideFromBottom{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@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-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--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-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--font-weight-bold:700;--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,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}::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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.right-4{right:calc(var(--spacing)*4)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-0{left:calc(var(--spacing)*0)}.left-4{left:calc(var(--spacing)*4)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[9998\]{z-index:9998}.z-\[9999\]{z-index:9999}.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}}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-\[500px\]{height:500px}.h-full{height:100%}.max-h-40{max-height:calc(var(--spacing)*40)}.w-6{width:calc(var(--spacing)*6)}.w-\[700px\]{width:700px}.w-full{width:100%}.max-w-xs{max-width:var(--container-xs)}.min-w-16{min-width:calc(var(--spacing)*16)}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.touch-none{touch-action:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.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-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--background)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-600{background-color:var(--color-cyan-600)}.bg-destructive{background-color:var(--destructive)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-primary{background-color:var(--primary)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-sky-600{background-color:var(--color-sky-600)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.text-left{text-align:left}.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)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-gray-400{color:var(--color-gray-400)}.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-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;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))}.outline-none{--tw-outline-style:none;outline-style:none}@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-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-700:hover{background-color:var(--color-cyan-700)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sky-600:hover{background-color:var(--color-sky-600)}.hover\:bg-sky-700:hover{background-color:var(--color-sky-700)}.hover\:bg-teal-600:hover{background-color:var(--color-teal-600)}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@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-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-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}.whiteboard{background-color:#f9fafb;.grid-dot{fill:#6e6e6e}}.whiteboard[data-theme=dark]{background-color:#151515;.grid-dot{fill:#666}}.ProseMirror{outline:2px solid #3b82f6}.tiptap{:first-child{margin-top:0}ul,ol{padding:0 1rem;margin:1.25rem 1rem 1.25rem .4rem;li p{margin-top:.25em;margin-bottom:.25em}}h1,h2,h3,h4,h5,h6{line-height:1.1;margin-top:2.5rem;text-wrap:pretty}h1,h2{margin-top:3.5rem;margin-bottom:1.5rem}h1{font-size:1.4rem}h2{font-size:1.2rem}h3{font-size:1.1rem}h4,h5,h6{font-size:1rem}code{background-color:var(--purple-light);border-radius:.4rem;color:var(--black);font-size:.85rem;padding:.25em .3em}pre{background:var(--black);border-radius:.5rem;color:var(--white);font-family:JetBrainsMono,monospace;margin:1.5rem 0;padding:.75rem 1rem;code{background:none;color:inherit;font-size:.8rem;padding:0}}blockquote{border-left:3px solid var(--gray-3);margin:1.5rem 0;padding-left:1rem}hr{border:none;border-top:1px solid var(--gray-2);margin:2rem 0}}.bubble-menu{background-color:var(--white);border:1px solid var(--gray-1);border-radius:.7rem;box-shadow:var(--shadow);display:flex;padding:.2rem;button{background-color:unset;&:hover{background-color:var(--gray-3)}&.is-active{background-color:var(--purple);&:hover{background-color:var(--purple-contrast)}}}}.tiptap-tooltip{--tt-tooltip-bg: var(--tt-gray-light-900);--tt-tooltip-text: var(--white);--tt-kbd: var(--tt-gray-dark-a-400)}.dark .tiptap-tooltip{--tt-tooltip-bg: var(--white);--tt-tooltip-text: var(--tt-gray-light-600);--tt-kbd: var(--tt-gray-light-a-400)}.tiptap-tooltip{z-index:200;overflow:hidden;border-radius:var(--tt-radius-md, .375rem);background-color:var(--tt-tooltip-bg);padding:.375rem .5rem;font-size:.75rem;font-weight:500;color:var(--tt-tooltip-text);box-shadow:0 4px 6px -1px #0000001a;text-align:center}.tiptap-tooltip kbd{display:inline-block;text-align:center;vertical-align:baseline;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;text-transform:capitalize;color:var(--tt-kbd)}.tiptap-button{--tt-button-default-bg-color: var(--tt-gray-light-a-100);--tt-button-hover-bg-color: var(--tt-gray-light-200);--tt-button-active-bg-color: var(--tt-gray-light-a-200);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-100 );--tt-button-active-bg-color-subdued: var( --tt-gray-light-a-200 );--tt-button-active-hover-bg-color: var(--tt-gray-light-300);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-200 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-light-a-300 );--tt-button-disabled-bg-color: var(--tt-gray-light-a-50)}.dark .tiptap-button{--tt-button-default-bg-color: var(--tt-gray-dark-a-100);--tt-button-hover-bg-color: var(--tt-gray-dark-200);--tt-button-active-bg-color: var(--tt-gray-dark-a-200);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-900 );--tt-button-active-bg-color-subdued: var( --tt-gray-dark-a-200 );--tt-button-active-hover-bg-color: var(--tt-gray-dark-300);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-800 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-dark-a-300 );--tt-button-disabled-bg-color: var(--tt-gray-dark-a-50)}.tiptap-button{--tt-button-default-text-color: var(--tt-gray-light-a-600);--tt-button-hover-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-light-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-text-color: var(--tt-gray-light-a-400)}.dark .tiptap-button{--tt-button-default-text-color: var(--tt-gray-dark-a-600);--tt-button-hover-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-dark-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-text-color: var(--tt-gray-dark-a-300)}.tiptap-button{--tt-button-default-icon-color: var(--tt-gray-light-a-600);--tt-button-hover-icon-color: var(--tt-gray-light-a-900);--tt-button-active-icon-color: var(--tt-brand-color-500);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-600);--tt-button-active-icon-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-icon-color: var(--tt-gray-light-a-400)}.dark .tiptap-button{--tt-button-default-icon-color: var(--tt-gray-dark-a-600);--tt-button-hover-icon-color: var(--tt-gray-dark-a-900);--tt-button-active-icon-color: var(--tt-brand-color-400);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-400);--tt-button-active-icon-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-icon-color: var(--tt-gray-dark-a-400)}.tiptap-button{--tt-button-default-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-hover-icon-sub-color: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-light-a-400);--tt-button-disabled-icon-sub-color: var(--tt-gray-light-a-100)}.dark .tiptap-button{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-dark-a-300);--tt-button-disabled-icon-sub-color: var(--tt-gray-dark-a-100)}.tiptap-button{--tt-button-default-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-light-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-light-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var(--tt-gray-light-a-600);--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-light-a-400)}.dark .tiptap-button{--tt-button-default-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-dark-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-dark-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var(--tt-gray-dark-a-600);--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-dark-a-400)}.tiptap-button[data-style=ghost]{--tt-button-default-bg-color: var(--transparent);--tt-button-hover-bg-color: var(--tt-gray-light-200);--tt-button-active-bg-color: var(--tt-gray-light-a-100);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-100 );--tt-button-active-bg-color-subdued: var( --tt-gray-light-a-100 );--tt-button-active-hover-bg-color: var(--tt-gray-light-200);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-200 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-light-a-200 );--tt-button-disabled-bg-color: var(--transparent)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-bg-color: var(--transparent);--tt-button-hover-bg-color: var(--tt-gray-dark-200);--tt-button-active-bg-color: var(--tt-gray-dark-a-100);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-900 );--tt-button-active-bg-color-subdued: var( --tt-gray-dark-a-100 );--tt-button-active-hover-bg-color: var(--tt-gray-dark-200);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-800 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-dark-a-200 );--tt-button-disabled-bg-color: var(--transparent)}.tiptap-button[data-style=ghost]{--tt-button-default-text-color: var(--tt-gray-light-a-600);--tt-button-hover-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-light-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-text-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-text-color: var(--tt-gray-dark-a-600);--tt-button-hover-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-dark-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-text-color: var(--tt-gray-dark-a-300)}.tiptap-button[data-style=ghost]{--tt-button-default-icon-color: var(--tt-gray-light-a-600);--tt-button-hover-icon-color: var(--tt-gray-light-a-900);--tt-button-active-icon-color: var(--tt-brand-color-500);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-600);--tt-button-active-icon-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-icon-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-icon-color: var(--tt-gray-dark-a-600);--tt-button-hover-icon-color: var(--tt-gray-dark-a-900);--tt-button-active-icon-color: var(--tt-brand-color-400);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-300);--tt-button-active-icon-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-icon-color: var(--tt-gray-dark-a-400)}.tiptap-button[data-style=ghost]{--tt-button-default-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-hover-icon-sub-color: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-light-a-400);--tt-button-disabled-icon-sub-color: var(--tt-gray-light-a-100)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-dark-a-300);--tt-button-disabled-icon-sub-color: var(--tt-gray-dark-a-100)}.tiptap-button[data-style=ghost]{--tt-button-default-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-light-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-light-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-light-a-600 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-dark-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-dark-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-dark-a-600 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-dark-a-400)}.tiptap-button[data-style=primary]{--tt-button-default-bg-color: var(--tt-brand-color-500);--tt-button-hover-bg-color: var(--tt-brand-color-600);--tt-button-active-bg-color: var(--tt-brand-color-100);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-100 );--tt-button-active-bg-color-subdued: var( --tt-brand-color-100 );--tt-button-active-hover-bg-color: var(--tt-brand-color-200);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-200 );--tt-button-active-hover-bg-color-subdued: var( --tt-brand-color-200 );--tt-button-disabled-bg-color: var(--tt-gray-light-a-100)}.dark .tiptap-button[data-style=primary]{--tt-button-default-bg-color: var(--tt-brand-color-500);--tt-button-hover-bg-color: var(--tt-brand-color-600);--tt-button-active-bg-color: var(--tt-brand-color-900);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-900 );--tt-button-active-bg-color-subdued: var( --tt-brand-color-900 );--tt-button-active-hover-bg-color: var(--tt-brand-color-800);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-800 );--tt-button-active-hover-bg-color-subdued: var( --tt-brand-color-800 );--tt-button-disabled-bg-color: var(--tt-gray-dark-a-100)}.tiptap-button[data-style=primary]{--tt-button-default-text-color: var(--white);--tt-button-hover-text-color: var(--white);--tt-button-active-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-light-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-text-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=primary]{--tt-button-default-text-color: var(--white);--tt-button-hover-text-color: var(--white);--tt-button-active-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-dark-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-text-color: var(--tt-gray-dark-a-300)}.tiptap-button[data-style=primary]{--tt-button-default-icon-color: var(--white);--tt-button-hover-icon-color: var(--white);--tt-button-active-icon-color: var(--tt-brand-color-600);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-600);--tt-button-active-icon-color-subdued: var(--tt-brand-color-600);--tt-button-disabled-icon-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=primary]{--tt-button-default-icon-color: var(--white);--tt-button-hover-icon-color: var(--white);--tt-button-active-icon-color: var(--tt-brand-color-400);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-400);--tt-button-active-icon-color-subdued: var(--tt-brand-color-400);--tt-button-disabled-icon-color: var(--tt-gray-dark-a-300)}.tiptap-button[data-style=primary]{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-500);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-light-a-500);--tt-button-disabled-icon-sub-color: var(--tt-gray-light-a-100)}.dark .tiptap-button[data-style=primary]{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-400);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-dark-a-300);--tt-button-disabled-icon-sub-color: var(--tt-gray-dark-a-100)}.tiptap-button[data-style=primary]{--tt-button-default-dropdown-arrows-color: var(--white);--tt-button-hover-dropdown-arrows-color: var(--white);--tt-button-active-dropdown-arrows-color: var(--tt-gray-light-a-700);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-light-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-light-a-700 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=primary]{--tt-button-default-dropdown-arrows-color: var(--white);--tt-button-hover-dropdown-arrows-color: var(--white);--tt-button-active-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-dark-a-600 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-dark-a-600 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-dark-a-400)}.tiptap-button-group{position:relative;display:flex;vertical-align:middle}.tiptap-button-group[data-orientation=vertical]{flex-direction:column;align-items:flex-start;justify-content:center;min-width:max-content}.tiptap-button-group[data-orientation=vertical]>.tiptap-button{width:100%}.tiptap-button-group[data-orientation=horizontal]{gap:.125rem;flex-direction:row;align-items:center}.tiptap-button{font-size:.875rem;font-weight:500;font-feature-settings:"salt" on,"cv01" on;line-height:1.15;height:2rem;min-width:2rem;border:none;padding:.5rem;gap:.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--tt-radius-lg, .75rem);transition-property:background,color,opacity;transition-duration:var(--tt-transition-duration-default);transition-timing-function:var(--tt-transition-easing-default)}.tiptap-button:focus-visible{outline:none}.tiptap-button[data-highlighted=true],.tiptap-button[data-focus-visible=true]{background-color:var(--tt-button-hover-bg-color);color:var(--tt-button-hover-text-color)}.tiptap-button[data-weight=small]{width:1.5rem;min-width:1.5rem;padding-right:0;padding-left:0}.tiptap-button[data-size=large]{font-size:.9375rem;height:2.375rem;min-width:2.375rem;padding:.625rem}.tiptap-button[data-size=small]{font-size:.75rem;line-height:1.2;height:1.5rem;min-width:1.5rem;padding:.3125rem;border-radius:var(--tt-radius-md, .5rem)}.tiptap-button .tiptap-button-text{padding:0 .125rem;flex-grow:1;text-align:left;line-height:1.5rem}.tiptap-button[data-text-trim=on] .tiptap-button-text{text-overflow:ellipsis;overflow:hidden}.tiptap-button .tiptap-button-icon,.tiptap-button .tiptap-button-icon-sub,.tiptap-button .tiptap-button-dropdown-arrows,.tiptap-button .tiptap-button-dropdown-small{flex-shrink:0}.tiptap-button .tiptap-button-icon{width:1rem;height:1rem}.tiptap-button[data-size=large] .tiptap-button-icon{width:1.125rem;height:1.125rem}.tiptap-button[data-size=small] .tiptap-button-icon{width:.875rem;height:.875rem}.tiptap-button .tiptap-button-icon-sub{width:1rem;height:1rem}.tiptap-button[data-size=large] .tiptap-button-icon-sub{width:1.125rem;height:1.125rem}.tiptap-button[data-size=small] .tiptap-button-icon-sub{width:.875rem;height:.875rem}.tiptap-button .tiptap-button-dropdown-arrows{width:.75rem;height:.75rem}.tiptap-button[data-size=large] .tiptap-button-dropdown-arrows{width:.875rem;height:.875rem}.tiptap-button[data-size=small] .tiptap-button-dropdown-arrows,.tiptap-button .tiptap-button-dropdown-small{width:.625rem;height:.625rem}.tiptap-button[data-size=large] .tiptap-button-dropdown-small{width:.75rem;height:.75rem}.tiptap-button[data-size=small] .tiptap-button-dropdown-small{width:.5rem;height:.5rem}.tiptap-button:has(>svg):not(:has(>:not(svg))){gap:.125rem}.tiptap-button:has(>svg):not(:has(>:not(svg)))[data-size=large],.tiptap-button:has(>svg):not(:has(>:not(svg)))[data-size=small]{gap:.125rem}.tiptap-button:has(>svg:nth-of-type(2)):has(>.tiptap-button-dropdown-small):not(:has(>svg:nth-of-type(3))):not(:has(>.tiptap-button-text)){gap:0;padding-right:.25rem}.tiptap-button:has(>svg:nth-of-type(2)):has(>.tiptap-button-dropdown-small):not(:has(>svg:nth-of-type(3))):not(:has(>.tiptap-button-text))[data-size=large]{padding-right:.375rem}.tiptap-button:has(>svg:nth-of-type(2)):has(>.tiptap-button-dropdown-small):not(:has(>svg:nth-of-type(3))):not(:has(>.tiptap-button-text))[data-size=small]{padding-right:.25rem}.tiptap-button .tiptap-button-emoji{width:1rem;display:flex;justify-content:center}.tiptap-button[data-size=large] .tiptap-button-emoji{width:1.125rem}.tiptap-button[data-size=small] .tiptap-button-emoji{width:.875rem}.tiptap-button{background-color:var(--tt-button-default-bg-color);color:var(--tt-button-default-text-color)}.tiptap-button .tiptap-button-icon{color:var(--tt-button-default-icon-color)}.tiptap-button .tiptap-button-icon-sub{color:var(--tt-button-default-icon-sub-color)}.tiptap-button .tiptap-button-dropdown-arrows,.tiptap-button .tiptap-button-dropdown-small{color:var(--tt-button-default-dropdown-arrows-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]),.tiptap-button[data-active-item=true]:not([disabled]),.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]){background-color:var(--tt-button-hover-bg-color);color:var(--tt-button-hover-text-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-icon,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-icon,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-icon{color:var(--tt-button-hover-icon-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-icon-sub,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-icon-sub,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-icon-sub{color:var(--tt-button-hover-icon-sub-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-dropdown-small,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-dropdown-small,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-dropdown-arrows,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-dropdown-small{color:var(--tt-button-hover-dropdown-arrows-color)}.tiptap-button[data-active-state=on]:not([disabled]),.tiptap-button[data-state=open]:not([disabled]){background-color:var(--tt-button-active-bg-color);color:var(--tt-button-active-text-color)}.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-icon{color:var(--tt-button-active-icon-color)}.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-icon-sub,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-icon-sub{color:var(--tt-button-active-icon-sub-color)}.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-dropdown-small,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-dropdown-small{color:var(--tt-button-active-dropdown-arrows-color)}.tiptap-button[data-active-state=on]:not([disabled]):hover,.tiptap-button[data-state=open]:not([disabled]):hover{background-color:var(--tt-button-active-hover-bg-color)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized],.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized]{background-color:var(--tt-button-active-bg-color-emphasized);color:var(--tt-button-active-text-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon{color:var(--tt-button-active-icon-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon-sub,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon-sub{color:var(--tt-button-active-icon-sub-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-arrows,.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-small,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-arrows,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-small{color:var(--tt-button-active-dropdown-arrows-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized]:hover,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized]:hover{background-color:var(--tt-button-active-hover-bg-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued],.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued]{background-color:var(--tt-button-active-bg-color-subdued);color:var(--tt-button-active-text-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-icon{color:var(--tt-button-active-icon-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-icon-sub,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-icon-sub{color:var(--tt-button-active-icon-sub-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-arrows,.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-small,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-arrows,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-small{color:var(--tt-button-active-dropdown-arrows-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued]:hover,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued]:hover{background-color:var(--tt-button-active-hover-bg-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued]:hover .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued]:hover .tiptap-button-icon{color:var(--tt-button-active-icon-color-subdued)}.tiptap-button:disabled{background-color:var(--tt-button-disabled-bg-color);color:var(--tt-button-disabled-text-color)}.tiptap-button:disabled .tiptap-button-icon{color:var(--tt-button-disabled-icon-color)}.tiptap-badge{--tt-badge-border-color: var(--tt-gray-light-a-200);--tt-badge-border-color-subdued: var(--tt-gray-light-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-light-a-600);--tt-badge-text-color: var(--tt-gray-light-a-500);--tt-badge-text-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-light-a-600 );--tt-badge-bg-color: var(--white);--tt-badge-bg-color-subdued: var(--white);--tt-badge-bg-color-emphasized: var(--white);--tt-badge-icon-color: var(--tt-gray-light-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-600 )}.dark .tiptap-badge{--tt-badge-border-color: var(--tt-gray-dark-a-200);--tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);--tt-badge-text-color: var(--tt-gray-dark-a-500);--tt-badge-text-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-dark-a-600 );--tt-badge-bg-color: var(--black);--tt-badge-bg-color-subdued: var(--black);--tt-badge-bg-color-emphasized: var(--black);--tt-badge-icon-color: var(--tt-gray-dark-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-400 )}.tiptap-badge[data-style=ghost]{--tt-badge-border-color: var(--tt-gray-light-a-200);--tt-badge-border-color-subdued: var(--tt-gray-light-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-light-a-600);--tt-badge-text-color: var(--tt-gray-light-a-500);--tt-badge-text-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-light-a-600 );--tt-badge-bg-color: var(--transparent);--tt-badge-bg-color-subdued: var(--transparent);--tt-badge-bg-color-emphasized: var(--transparent);--tt-badge-icon-color: var(--tt-gray-light-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-600 )}.dark .tiptap-badge[data-style=ghost]{--tt-badge-border-color: var(--tt-gray-dark-a-200);--tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);--tt-badge-text-color: var(--tt-gray-dark-a-500);--tt-badge-text-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-dark-a-600 );--tt-badge-bg-color: var(--transparent);--tt-badge-bg-color-subdued: var(--transparent);--tt-badge-bg-color-emphasized: var(--transparent);--tt-badge-icon-color: var(--tt-gray-dark-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-400 )}.tiptap-badge[data-style=gray]{--tt-badge-border-color: var(--tt-gray-light-a-200);--tt-badge-border-color-subdued: var(--tt-gray-light-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-light-a-500);--tt-badge-text-color: var(--tt-gray-light-a-500);--tt-badge-text-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-text-color-emphasized: var(--white);--tt-badge-bg-color: var(--tt-gray-light-a-100);--tt-badge-bg-color-subdued: var( --tt-gray-light-a-50 );--tt-badge-bg-color-emphasized: var( --tt-gray-light-a-700 );--tt-badge-icon-color: var(--tt-gray-light-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-icon-color-emphasized: var(--white)}.dark .tiptap-badge[data-style=gray]{--tt-badge-border-color: var(--tt-gray-dark-a-200);--tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);--tt-badge-text-color: var(--tt-gray-dark-a-500);--tt-badge-text-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-text-color-emphasized: var(--black);--tt-badge-bg-color: var(--tt-gray-dark-a-100);--tt-badge-bg-color-subdued: var( --tt-gray-dark-a-50 );--tt-badge-bg-color-emphasized: var( --tt-gray-dark-a-800 );--tt-badge-icon-color: var(--tt-gray-dark-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-icon-color-emphasized: var(--black)}.tiptap-badge[data-style=green]{--tt-badge-border-color: var(--tt-color-green-inc-2);--tt-badge-border-color-subdued: var(--tt-color-green-inc-3);--tt-badge-border-color-emphasized: var(--tt-color-green-dec-2);--tt-badge-text-color: var(--tt-color-green-dec-3);--tt-badge-text-color-subdued: var( --tt-color-green-dec-2 );--tt-badge-text-color-emphasized: var( --tt-color-green-inc-5 );--tt-badge-bg-color: var(--tt-color-green-inc-4);--tt-badge-bg-color-subdued: var( --tt-color-green-inc-5 );--tt-badge-bg-color-emphasized: var( --tt-color-green-dec-1 );--tt-badge-icon-color: var(--tt-color-green-dec-3);--tt-badge-icon-color-subdued: var( --tt-color-green-dec-2 );--tt-badge-icon-color-emphasized: var( --tt-color-green-inc-5 )}.dark .tiptap-badge[data-style=green]{--tt-badge-border-color: var(--tt-color-green-dec-2);--tt-badge-border-color-subdued: var(--tt-color-green-dec-3);--tt-badge-border-color-emphasized: var(--tt-color-green-base);--tt-badge-text-color: var(--tt-color-green-inc-3);--tt-badge-text-color-subdued: var( --tt-color-green-inc-2 );--tt-badge-text-color-emphasized: var( --tt-color-green-dec-5 );--tt-badge-bg-color: var(--tt-color-green-dec-4);--tt-badge-bg-color-subdued: var( --tt-color-green-dec-5 );--tt-badge-bg-color-emphasized: var( --tt-color-green-inc-1 );--tt-badge-icon-color: var(--tt-color-green-inc-3);--tt-badge-icon-color-subdued: var( --tt-color-green-inc-2 );--tt-badge-icon-color-emphasized: var( --tt-color-green-dec-5 )}.tiptap-badge[data-style=yellow]{--tt-badge-border-color: var(--tt-color-yellow-inc-2);--tt-badge-border-color-subdued: var(--tt-color-yellow-inc-3);--tt-badge-border-color-emphasized: var(--tt-color-yellow-dec-1);--tt-badge-text-color: var(--tt-color-yellow-dec-3);--tt-badge-text-color-subdued: var( --tt-color-yellow-dec-2 );--tt-badge-text-color-emphasized: var( --tt-color-yellow-dec-3 );--tt-badge-bg-color: var(--tt-color-yellow-inc-4);--tt-badge-bg-color-subdued: var( --tt-color-yellow-inc-5 );--tt-badge-bg-color-emphasized: var( --tt-color-yellow-base );--tt-badge-icon-color: var(--tt-color-yellow-dec-3);--tt-badge-icon-color-subdued: var( --tt-color-yellow-dec-2 );--tt-badge-icon-color-emphasized: var( --tt-color-yellow-dec-3 )}.dark .tiptap-badge[data-style=yellow]{--tt-badge-border-color: var(--tt-color-yellow-dec-2);--tt-badge-border-color-subdued: var(--tt-color-yellow-dec-3);--tt-badge-border-color-emphasized: var(--tt-color-yellow-inc-1);--tt-badge-text-color: var(--tt-color-yellow-inc-3);--tt-badge-text-color-subdued: var( --tt-color-yellow-inc-2 );--tt-badge-text-color-emphasized: var( --tt-color-yellow-dec-3 );--tt-badge-bg-color: var(--tt-color-yellow-dec-4);--tt-badge-bg-color-subdued: var( --tt-color-yellow-dec-5 );--tt-badge-bg-color-emphasized: var( --tt-color-yellow-base );--tt-badge-icon-color: var(--tt-color-yellow-inc-3);--tt-badge-icon-color-subdued: var( --tt-color-yellow-inc-2 );--tt-badge-icon-color-emphasized: var( --tt-color-yellow-dec-3 )}.tiptap-badge[data-style=red]{--tt-badge-border-color: var(--tt-color-red-inc-2);--tt-badge-border-color-subdued: var(--tt-color-red-inc-3);--tt-badge-border-color-emphasized: var(--tt-color-red-dec-2);--tt-badge-text-color: var(--tt-color-red-dec-3);--tt-badge-text-color-subdued: var( --tt-color-red-dec-2 );--tt-badge-text-color-emphasized: var( --tt-color-red-inc-5 );--tt-badge-bg-color: var(--tt-color-red-inc-4);--tt-badge-bg-color-subdued: var( --tt-color-red-inc-5 );--tt-badge-bg-color-emphasized: var( --tt-color-red-dec-1 );--tt-badge-icon-color: var(--tt-color-red-dec-3);--tt-badge-icon-color-subdued: var( --tt-color-red-dec-2 );--tt-badge-icon-color-emphasized: var( --tt-color-red-inc-5 )}.dark .tiptap-badge[data-style=red]{--tt-badge-border-color: var(--tt-color-red-dec-2);--tt-badge-border-color-subdued: var(--tt-color-red-dec-3);--tt-badge-border-color-emphasized: var(--tt-color-red-base);--tt-badge-text-color: var(--tt-color-red-inc-3);--tt-badge-text-color-subdued: var( --tt-color-red-inc-2 );--tt-badge-text-color-emphasized: var( --tt-color-red-dec-5 );--tt-badge-bg-color: var(--tt-color-red-dec-4);--tt-badge-bg-color-subdued: var( --tt-color-red-dec-5 );--tt-badge-bg-color-emphasized: var( --tt-color-red-inc-1 );--tt-badge-icon-color: var(--tt-color-red-inc-3);--tt-badge-icon-color-subdued: var( --tt-color-red-inc-2 );--tt-badge-icon-color-emphasized: var( --tt-color-red-dec-5 )}.tiptap-badge[data-style=brand]{--tt-badge-border-color: var(--tt-brand-color-300);--tt-badge-border-color-subdued: var(--tt-brand-color-200);--tt-badge-border-color-emphasized: var(--tt-brand-color-600);--tt-badge-text-color: var(--tt-brand-color-800);--tt-badge-text-color-subdued: var( --tt-brand-color-700 );--tt-badge-text-color-emphasized: var( --tt-brand-color-50 );--tt-badge-bg-color: var(--tt-brand-color-100);--tt-badge-bg-color-subdued: var( --tt-brand-color-50 );--tt-badge-bg-color-emphasized: var( --tt-brand-color-600 );--tt-badge-icon-color: var(--tt-brand-color-800);--tt-badge-icon-color-subdued: var( --tt-brand-color-700 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-100 )}.dark .tiptap-badge[data-style=brand]{--tt-badge-border-color: var(--tt-brand-color-700);--tt-badge-border-color-subdued: var(--tt-brand-color-800);--tt-badge-border-color-emphasized: var(--tt-brand-color-400);--tt-badge-text-color: var(--tt-brand-color-200);--tt-badge-text-color-subdued: var( --tt-brand-color-300 );--tt-badge-text-color-emphasized: var( --tt-brand-color-950 );--tt-badge-bg-color: var(--tt-brand-color-900);--tt-badge-bg-color-subdued: var( --tt-brand-color-950 );--tt-badge-bg-color-emphasized: var( --tt-brand-color-400 );--tt-badge-icon-color: var(--tt-brand-color-200);--tt-badge-icon-color-subdued: var( --tt-brand-color-300 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-900 )}.tiptap-badge-group{align-items:center;display:flex;flex-wrap:wrap;gap:.25rem}.tiptap-badge-group [data-orientation=vertical]{flex-direction:column}.tiptap-badge-group [data-orientation=horizontal]{flex-direction:row}.tiptap-badge{font-size:.625rem;font-weight:700;font-feature-settings:"salt" on,"cv01" on;line-height:1.15;height:1.25rem;min-width:1.25rem;padding:.25rem;display:flex;align-items:center;justify-content:center;border:solid 1px;border-radius:var(--tt-radius-sm, .375rem);transition-property:background,color,opacity;transition-duration:var(--tt-transition-duration-default);transition-timing-function:var(--tt-transition-easing-default)}.tiptap-badge[data-size=large]{font-size:.75rem;height:1.5rem;min-width:1.5rem;padding:.375rem;border-radius:var(--tt-radius-md, .375rem)}.tiptap-badge[data-size=small]{height:1rem;min-width:1rem;padding:.125rem;border-radius:var(--tt-radius-xs, .25rem)}.tiptap-badge .tiptap-badge-text{padding:0 .125rem;flex-grow:1;text-align:left}.tiptap-badge[data-text-trim=on] .tiptap-badge-text{text-overflow:ellipsis;overflow:hidden}.tiptap-badge .tiptap-badge-icon{pointer-events:none;flex-shrink:0;width:.625rem;height:.625rem}.tiptap-badge[data-size=large] .tiptap-badge-icon{width:.75rem;height:.75rem}.tiptap-badge{background-color:var(--tt-badge-bg-color);border-color:var(--tt-badge-border-color);color:var(--tt-badge-text-color)}.tiptap-badge .tiptap-badge-icon{color:var(--tt-badge-icon-color)}.tiptap-badge[data-appearance=emphasized]{background-color:var(--tt-badge-bg-color-emphasized);border-color:var(--tt-badge-border-color-emphasized);color:var(--tt-badge-text-color-emphasized)}.tiptap-badge[data-appearance=emphasized] .tiptap-badge-icon{color:var(--tt-badge-icon-color-emphasized)}.tiptap-badge[data-appearance=subdued]{background-color:var(--tt-badge-bg-color-subdued);border-color:var(--tt-badge-border-color-subdued);color:var(--tt-badge-text-color-subdued)}.tiptap-badge[data-appearance=subdued] .tiptap-badge-icon{color:var(--tt-badge-icon-color-subdued)}.tiptap-popover{--tt-popover-bg-color: var(--white);--tt-popover-border-color: var(--tt-gray-light-a-100);--tt-popover-text-color: var(--tt-gray-light-a-600)}.dark .tiptap-popover{--tt-popover-border-color: var(--tt-gray-dark-a-50);--tt-popover-bg-color: var(--tt-gray-dark-50);--tt-popover-text-color: var(--tt-gray-dark-a-600)}.tiptap-popover{z-index:50;outline:none;transform-origin:var(--radix-popover-content-transform-origin);max-height:var(--radix-popover-content-available-height)}.tiptap-popover>*{max-height:var(--radix-popover-content-available-height)}.tiptap-popover[data-state=open]{animation:fadeIn .15s cubic-bezier(.16,1,.3,1),zoomIn .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-state=closed]{animation:fadeOut .15s cubic-bezier(.16,1,.3,1),zoomOut .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=top],.tiptap-popover[data-side=top-start],.tiptap-popover[data-side=top-end]{animation:slideFromBottom .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=right],.tiptap-popover[data-side=right-start],.tiptap-popover[data-side=right-end]{animation:slideFromLeft .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=bottom],.tiptap-popover[data-side=bottom-start],.tiptap-popover[data-side=bottom-end]{animation:slideFromTop .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=left],.tiptap-popover[data-side=left-start],.tiptap-popover[data-side=left-end]{animation:slideFromRight .15s cubic-bezier(.16,1,.3,1)}.tiptap-separator{--tt-link-border-color: var(--tt-gray-light-a-200)}.dark .tiptap-separator{--tt-link-border-color: var(--tt-gray-dark-a-200)}.tiptap-separator{flex-shrink:0;background-color:var(--tt-link-border-color)}.tiptap-separator[data-orientation=horizontal]{height:1px;width:100%;margin:.5rem 0}.tiptap-separator[data-orientation=vertical]{height:1.5rem;width:1px}:root{--tiptap-card-bg-color: var(--white);--tiptap-card-border-color: var(--tt-gray-light-a-100);--tiptap-card-group-label-color: var(--tt-gray-light-a-800)}.dark{--tiptap-card-bg-color: var(--tt-gray-dark-50);--tiptap-card-border-color: var(--tt-gray-dark-a-100);--tiptap-card-group-label-color: var(--tt-gray-dark-a-800)}.tiptap-card{--padding: .375rem;--border-width: 1px;border-radius:calc(var(--padding) + var(--tt-radius-lg));box-shadow:var(--tt-shadow-elevated-md);background-color:var(--tiptap-card-bg-color);border:1px solid var(--tiptap-card-border-color);display:flex;flex-direction:column;outline:none;align-items:center;position:relative;min-width:0;word-wrap:break-word;background-clip:border-box}.tiptap-card-header{padding:.375rem;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;width:100%;border-bottom:var(--border-width) solid var(--tiptap-card-border-color)}.tiptap-card-body{padding:.375rem;flex:1 1 auto;overflow-y:auto}.tiptap-card-item-group{position:relative;display:flex;vertical-align:middle;min-width:max-content}.tiptap-card-item-group[data-orientation=vertical]{flex-direction:column;justify-content:center}.tiptap-card-item-group[data-orientation=horizontal]{gap:.25rem;flex-direction:row;align-items:center}.tiptap-card-group-label{padding:.75rem .5rem .25rem;font-size:.75rem;font-weight:600;line-height:normal;text-transform:capitalize;color:var(--tiptap-card-group-label-color)}.tiptap-button-highlight{position:relative;width:1.25rem;height:1.25rem;margin:0 -.175rem;border-radius:var(--tt-radius-xl);background-color:var(--highlight-color);transition:transform .2s ease}.tiptap-button-highlight:after{content:"";position:absolute;width:100%;height:100%;left:0;top:0;border-radius:inherit;box-sizing:border-box;border:1px solid var(--highlight-color);filter:brightness(95%);mix-blend-mode:multiply}.dark .tiptap-button-highlight:after{filter:brightness(140%);mix-blend-mode:lighten}.tiptap-button[data-active-state=on] .tiptap-button-highlight:after{filter:brightness(80%)}.dark .tiptap-button[data-active-state=on] .tiptap-button-highlight:after{filter:brightness(180%)}.tiptap-button-text-color{position:relative;width:1.25rem;height:1.25rem;margin:0 -.175rem;border-radius:var(--tt-radius-xl);background-color:var(--highlight-color);transition:transform .2s ease}.tiptap-button-text-color:after{content:"";position:absolute;width:100%;height:100%;left:0;top:0;border-radius:inherit;box-sizing:border-box;border:1px solid var(--highlight-color);filter:brightness(95%);mix-blend-mode:multiply}.dark .tiptap-button-text-color:after{filter:brightness(140%);mix-blend-mode:lighten}.tiptap-button[data-active-state=on] .tiptap-button-text-color:after{filter:brightness(80%)}.dark .tiptap-button[data-active-state=on] .tiptap-button-text-color:after{filter:brightness(180%)}.font-family-select{height:32px;padding:4px 8px;border:1px solid #e2e8f0;border-radius:4px;background-color:#fff;font-size:14px;cursor:pointer;min-width:140px}.font-family-select:hover{border-color:#cbd5e1}.font-family-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.font-family-select option{padding:4px}
|
|
1
|
+
@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-y-reverse:0;--tw-border-style:solid;--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-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}:root{overflow-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tt-gray-light-a-50:#3838380a;--tt-gray-light-a-100:#0f16240d;--tt-gray-light-a-200:#25272d1a;--tt-gray-light-a-300:#2f323733;--tt-gray-light-a-400:#282c336b;--tt-gray-light-a-500:#34373ca3;--tt-gray-light-a-600:#24272ec7;--tt-gray-light-a-700:#23252ade;--tt-gray-light-a-800:#1e2024f2;--tt-gray-light-a-900:#1d1e20fa;--tt-gray-light-50:#fafafa;--tt-gray-light-100:#f4f4f5;--tt-gray-light-200:#eaeaeb;--tt-gray-light-300:#d5d6d7;--tt-gray-light-400:#a6a7ab;--tt-gray-light-500:#7d7f82;--tt-gray-light-600:#53565a;--tt-gray-light-700:#404145;--tt-gray-light-800:#2c2d30;--tt-gray-light-900:#222325;--tt-gray-dark-a-50:#e8e8fd0d;--tt-gray-dark-a-100:#e7e7f312;--tt-gray-dark-a-200:#eeeef61c;--tt-gray-dark-a-300:#efeff538;--tt-gray-dark-a-400:#f4f4ff5e;--tt-gray-dark-a-500:#eceefd80;--tt-gray-dark-a-600:#f7f7fda3;--tt-gray-dark-a-700:#fbfbfebf;--tt-gray-dark-a-800:#fdfdfde0;--tt-gray-dark-a-900:#fffffff5;--tt-gray-dark-50:#19191a;--tt-gray-dark-100:#202022;--tt-gray-dark-200:#2d2d2f;--tt-gray-dark-300:#464649;--tt-gray-dark-400:#636369;--tt-gray-dark-500:#7c7c83;--tt-gray-dark-600:#a3a3a8;--tt-gray-dark-700:#c0c0c3;--tt-gray-dark-800:#e0e0e1;--tt-gray-dark-900:#f5f5f5;--tt-brand-color-50:#efeeff;--tt-brand-color-100:#dedbff;--tt-brand-color-200:#c3bdff;--tt-brand-color-300:#9d8aff;--tt-brand-color-400:#7a52ff;--tt-brand-color-500:#6229ff;--tt-brand-color-600:#5400e5;--tt-brand-color-700:#4b00cc;--tt-brand-color-800:#380099;--tt-brand-color-900:#2b1966;--tt-brand-color-950:#0d002e;--tt-color-green-inc-5:#f0fff2;--tt-color-green-inc-4:#d6ffdc;--tt-color-green-inc-3:#b8ffc5;--tt-color-green-inc-2:#90fea8;--tt-color-green-inc-1:#67fe92;--tt-color-green-base:#01fe73;--tt-color-green-dec-1:#03ce5e;--tt-color-green-dec-2:#02a247;--tt-color-green-dec-3:#007a35;--tt-color-green-dec-4:#005221;--tt-color-green-dec-5:#002e0f;--tt-color-yellow-inc-5:#fffcf0;--tt-color-yellow-inc-4:#fff7d1;--tt-color-yellow-inc-3:#fff1ad;--tt-color-yellow-inc-2:#ffeb8a;--tt-color-yellow-inc-1:#ffe45c;--tt-color-yellow-base:#fd0;--tt-color-yellow-dec-1:#d1b500;--tt-color-yellow-dec-2:#a38d00;--tt-color-yellow-dec-3:#7a6a00;--tt-color-yellow-dec-4:#524500;--tt-color-yellow-dec-5:#2e2600;--tt-color-red-inc-5:#ffeeeb;--tt-color-red-inc-4:#ffcdc2;--tt-color-red-inc-3:#fa9;--tt-color-red-inc-2:#ff8a75;--tt-color-red-inc-1:#ff5d47;--tt-color-red-base:#ff3014;--tt-color-red-dec-1:#d11800;--tt-color-red-dec-2:#a30e00;--tt-color-red-dec-3:#7a0800;--tt-color-red-dec-4:#520400;--tt-color-red-dec-5:#2e0100;--white:#fff;--black:#0e0e11;--transparent:#fff0;--tt-shadow-elevated-md:0px 16px 48px 0px #1118270a,0px 12px 24px 0px #1118270a,0px 6px 8px 0px #11182705,0px 2px 3px 0px #11182705;--tt-radius-xxs:.125rem;--tt-radius-xs:.25rem;--tt-radius-sm:.375rem;--tt-radius-md:.5rem;--tt-radius-lg:.75rem;--tt-radius-xl:1rem;--tt-transition-duration-short:.1s;--tt-transition-duration-default:.2s;--tt-transition-duration-long:.64s;--tt-transition-easing-default:cubic-bezier(.46,.03,.52,.96);--tt-transition-easing-cubic:cubic-bezier(.65,.05,.36,1);--tt-transition-easing-quart:cubic-bezier(.77,0,.18,1);--tt-transition-easing-circ:cubic-bezier(.79,.14,.15,.86);--tt-transition-easing-back:cubic-bezier(.68,-.55,.27,1.55);--tt-accent-contrast:8%;--tt-destructive-contrast:8%;--tt-foreground-contrast:8%}:root,:root *,:root :before,:root :after{box-sizing:border-box;transition:none var(--tt-transition-duration-default)var(--tt-transition-easing-default)}:root{--tt-bg-color:var(--white);--tt-border-color:var(--tt-gray-light-a-200);--tt-border-color-tint:var(--tt-gray-light-a-100);--tt-sidebar-bg-color:var(--tt-gray-light-100);--tt-scrollbar-color:var(--tt-gray-light-a-200);--tt-cursor-color:var(--tt-brand-color-500);--tt-selection-color:#9d8aff33;--tt-card-bg-color:var(--white);--tt-card-border-color:var(--tt-gray-light-a-100)}.dark{--tt-bg-color:var(--black);--tt-border-color:var(--tt-gray-dark-a-200);--tt-border-color-tint:var(--tt-gray-dark-a-100);--tt-sidebar-bg-color:var(--tt-gray-dark-100);--tt-scrollbar-color:var(--tt-gray-dark-a-200);--tt-cursor-color:var(--tt-brand-color-400);--tt-selection-color:#7a52ff33;--tt-card-bg-color:var(--tt-gray-dark-50);--tt-card-border-color:var(--tt-gray-dark-a-50);--tt-shadow-elevated-md:0px 16px 48px 0px #00000080,0px 12px 24px 0px #0000003d,0px 6px 8px 0px #00000038,0px 2px 3px 0px #0000001f}:root{--tt-color-text-gray:#787673;--tt-color-text-brown:#9d6a53;--tt-color-text-orange:#d9730d;--tt-color-text-yellow:#ca922f;--tt-color-text-green:#448361;--tt-color-text-blue:#327da9;--tt-color-text-purple:#8f64af;--tt-color-text-pink:#c24c8b;--tt-color-text-red:#d34a45;--tt-color-text-gray-contrast:#54473126;--tt-color-text-brown-contrast:#d2a28e59;--tt-color-text-orange-contrast:#e07b3845;--tt-color-text-yellow-contrast:#ecbe4163;--tt-color-text-green-contrast:#7bb78145;--tt-color-text-blue-contrast:#5ea6cf45;--tt-color-text-purple-contrast:#a881c545;--tt-color-text-pink-contrast:#e189b445;--tt-color-text-red-contrast:#f4aa9f66}.dark{--tt-color-text-gray:#9c9c9c;--tt-color-text-brown:#b9856e;--tt-color-text-orange:#c77d48;--tt-color-text-yellow:#ca994e;--tt-color-text-green:#519e71;--tt-color-text-blue:#3699d3;--tt-color-text-purple:#9e69d3;--tt-color-text-pink:#d15796;--tt-color-text-red:#df5553;--tt-color-text-gray-contrast:#ffffff17;--tt-color-text-brown-contrast:#b9674640;--tt-color-text-orange-contrast:#e97d2533;--tt-color-text-yellow-contrast:#b3823d33;--tt-color-text-green-contrast:#2d9a6533;--tt-color-text-blue-contrast:#327da933;--tt-color-text-purple-contrast:#9b60d22e;--tt-color-text-pink-contrast:#dc4c9238;--tt-color-text-red-contrast:#dd555540}:root{--tt-color-highlight-yellow:#fef9c3;--tt-color-highlight-green:#dcfce7;--tt-color-highlight-blue:#e0f2fe;--tt-color-highlight-purple:#f3e8ff;--tt-color-highlight-red:#ffe4e6;--tt-color-highlight-gray:#f8f8f7;--tt-color-highlight-brown:#f4eeee;--tt-color-highlight-orange:#fbecdd;--tt-color-highlight-pink:#fcf1f6;--tt-color-highlight-yellow-contrast:#fbe604;--tt-color-highlight-green-contrast:#c7fad8;--tt-color-highlight-blue-contrast:#ceeafd;--tt-color-highlight-purple-contrast:#e4ccff;--tt-color-highlight-red-contrast:#ffccd0;--tt-color-highlight-gray-contrast:#54483126;--tt-color-highlight-brown-contrast:#d2a28d59;--tt-color-highlight-orange-contrast:#e07c3945;--tt-color-highlight-pink-contrast:#e188b345}.dark{--tt-color-highlight-yellow:#6b6524;--tt-color-highlight-green:#509568;--tt-color-highlight-blue:#6e92aa;--tt-color-highlight-purple:#583e74;--tt-color-highlight-red:#743e42;--tt-color-highlight-gray:#2f2f2f;--tt-color-highlight-brown:#4a3228;--tt-color-highlight-orange:#5c3b23;--tt-color-highlight-pink:#4e2c3c;--tt-color-highlight-yellow-contrast:#58531e;--tt-color-highlight-green-contrast:#47855d;--tt-color-highlight-blue-contrast:#5e86a1;--tt-color-highlight-purple-contrast:#4c3564;--tt-color-highlight-red-contrast:#643539;--tt-color-highlight-gray-contrast:#ffffff18;--tt-color-highlight-brown-contrast:#b8654540;--tt-color-highlight-orange-contrast:#e97e2533;--tt-color-highlight-pink-contrast:#dc4c9138}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes zoomIn{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes zoomOut{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes zoom{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideFromTop{0%{transform:translateY(-.5rem)}to{transform:translateY(0)}}@keyframes slideFromRight{0%{transform:translate(.5rem)}to{transform:translate(0)}}@keyframes slideFromLeft{0%{transform:translate(-.5rem)}to{transform:translate(0)}}@keyframes slideFromBottom{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@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-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--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-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--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-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--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,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}::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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.right-0{right:calc(var(--spacing)*0)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-0{left:calc(var(--spacing)*0)}.left-4{left:calc(var(--spacing)*4)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[9998\]{z-index:9998}.z-\[9999\]{z-index:9999}.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}}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-\[500px\]{height:500px}.h-\[calc\(100\%-60px\)\]{height:calc(100% - 60px)}.h-auto{height:auto}.h-full{height:100%}.max-h-40{max-height:calc(var(--spacing)*40)}.w-3\/4{width:75%}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-\[320px\]{width:320px}.w-\[700px\]{width:700px}.w-full{width:100%}.max-w-xs{max-width:var(--container-xs)}.min-w-16{min-width:calc(var(--spacing)*16)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xs{border-radius:var(--radius-xs)}.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-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-border{border-color:var(--border)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-600{background-color:var(--color-cyan-600)}.bg-destructive{background-color:var(--destructive)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-primary{background-color:var(--primary)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-sky-600{background-color:var(--color-sky-600)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-white{background-color:var(--color-white)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.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)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-foreground{color:var(--foreground)}.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-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;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-opacity{transition-property:opacity;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-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){.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-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-700:hover{background-color:var(--color-cyan-700)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sky-600:hover{background-color:var(--color-sky-600)}.hover\:bg-sky-700:hover{background-color:var(--color-sky-700)}.hover\:bg-teal-600:hover{background-color:var(--color-teal-600)}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--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)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media(min-width:40rem){.sm\:max-w-sm{max-width:var(--container-sm)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-gray-500:is(.dark *){color:var(--color-gray-500)}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-gray-700:is(.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:text-gray-100:is(.dark *):hover{color:var(--color-gray-100)}.dark\:hover\:text-gray-300:is(.dark *):hover{color:var(--color-gray-300)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@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-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-duration{syntax:"*";inherits:false}@property --tw-ease{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 enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.whiteboard{background-color:#f9fafb;.grid-dot{fill:#6e6e6e}}.whiteboard[data-theme=dark]{background-color:#151515;.grid-dot{fill:#666}}.ProseMirror{outline:2px solid #3b82f6}.tiptap{:first-child{margin-top:0}ul,ol{padding:0 1rem;margin:1.25rem 1rem 1.25rem .4rem;li p{margin-top:.25em;margin-bottom:.25em}}h1,h2,h3,h4,h5,h6{line-height:1.1;margin-top:2.5rem;text-wrap:pretty}h1,h2{margin-top:3.5rem;margin-bottom:1.5rem}h1{font-size:1.4rem}h2{font-size:1.2rem}h3{font-size:1.1rem}h4,h5,h6{font-size:1rem}code{background-color:var(--purple-light);border-radius:.4rem;color:var(--black);font-size:.85rem;padding:.25em .3em}pre{background:var(--black);border-radius:.5rem;color:var(--white);font-family:JetBrainsMono,monospace;margin:1.5rem 0;padding:.75rem 1rem;code{background:none;color:inherit;font-size:.8rem;padding:0}}blockquote{border-left:3px solid var(--gray-3);margin:1.5rem 0;padding-left:1rem}hr{border:none;border-top:1px solid var(--gray-2);margin:2rem 0}}.bubble-menu{background-color:var(--white);border:1px solid var(--gray-1);border-radius:.7rem;box-shadow:var(--shadow);display:flex;padding:.2rem;button{background-color:unset;&:hover{background-color:var(--gray-3)}&.is-active{background-color:var(--purple);&:hover{background-color:var(--purple-contrast)}}}}.tiptap-tooltip{--tt-tooltip-bg: var(--tt-gray-light-900);--tt-tooltip-text: var(--white);--tt-kbd: var(--tt-gray-dark-a-400)}.dark .tiptap-tooltip{--tt-tooltip-bg: var(--white);--tt-tooltip-text: var(--tt-gray-light-600);--tt-kbd: var(--tt-gray-light-a-400)}.tiptap-tooltip{z-index:200;overflow:hidden;border-radius:var(--tt-radius-md, .375rem);background-color:var(--tt-tooltip-bg);padding:.375rem .5rem;font-size:.75rem;font-weight:500;color:var(--tt-tooltip-text);box-shadow:0 4px 6px -1px #0000001a;text-align:center}.tiptap-tooltip kbd{display:inline-block;text-align:center;vertical-align:baseline;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;text-transform:capitalize;color:var(--tt-kbd)}.tiptap-button{--tt-button-default-bg-color: var(--tt-gray-light-a-100);--tt-button-hover-bg-color: var(--tt-gray-light-200);--tt-button-active-bg-color: var(--tt-gray-light-a-200);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-100 );--tt-button-active-bg-color-subdued: var( --tt-gray-light-a-200 );--tt-button-active-hover-bg-color: var(--tt-gray-light-300);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-200 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-light-a-300 );--tt-button-disabled-bg-color: var(--tt-gray-light-a-50)}.dark .tiptap-button{--tt-button-default-bg-color: var(--tt-gray-dark-a-100);--tt-button-hover-bg-color: var(--tt-gray-dark-200);--tt-button-active-bg-color: var(--tt-gray-dark-a-200);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-900 );--tt-button-active-bg-color-subdued: var( --tt-gray-dark-a-200 );--tt-button-active-hover-bg-color: var(--tt-gray-dark-300);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-800 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-dark-a-300 );--tt-button-disabled-bg-color: var(--tt-gray-dark-a-50)}.tiptap-button{--tt-button-default-text-color: var(--tt-gray-light-a-600);--tt-button-hover-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-light-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-text-color: var(--tt-gray-light-a-400)}.dark .tiptap-button{--tt-button-default-text-color: var(--tt-gray-dark-a-600);--tt-button-hover-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-dark-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-text-color: var(--tt-gray-dark-a-300)}.tiptap-button{--tt-button-default-icon-color: var(--tt-gray-light-a-600);--tt-button-hover-icon-color: var(--tt-gray-light-a-900);--tt-button-active-icon-color: var(--tt-brand-color-500);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-600);--tt-button-active-icon-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-icon-color: var(--tt-gray-light-a-400)}.dark .tiptap-button{--tt-button-default-icon-color: var(--tt-gray-dark-a-600);--tt-button-hover-icon-color: var(--tt-gray-dark-a-900);--tt-button-active-icon-color: var(--tt-brand-color-400);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-400);--tt-button-active-icon-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-icon-color: var(--tt-gray-dark-a-400)}.tiptap-button{--tt-button-default-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-hover-icon-sub-color: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-light-a-400);--tt-button-disabled-icon-sub-color: var(--tt-gray-light-a-100)}.dark .tiptap-button{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-dark-a-300);--tt-button-disabled-icon-sub-color: var(--tt-gray-dark-a-100)}.tiptap-button{--tt-button-default-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-light-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-light-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var(--tt-gray-light-a-600);--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-light-a-400)}.dark .tiptap-button{--tt-button-default-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-dark-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-dark-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var(--tt-gray-dark-a-600);--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-dark-a-400)}.tiptap-button[data-style=ghost]{--tt-button-default-bg-color: var(--transparent);--tt-button-hover-bg-color: var(--tt-gray-light-200);--tt-button-active-bg-color: var(--tt-gray-light-a-100);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-100 );--tt-button-active-bg-color-subdued: var( --tt-gray-light-a-100 );--tt-button-active-hover-bg-color: var(--tt-gray-light-200);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-200 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-light-a-200 );--tt-button-disabled-bg-color: var(--transparent)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-bg-color: var(--transparent);--tt-button-hover-bg-color: var(--tt-gray-dark-200);--tt-button-active-bg-color: var(--tt-gray-dark-a-100);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-900 );--tt-button-active-bg-color-subdued: var( --tt-gray-dark-a-100 );--tt-button-active-hover-bg-color: var(--tt-gray-dark-200);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-800 );--tt-button-active-hover-bg-color-subdued: var( --tt-gray-dark-a-200 );--tt-button-disabled-bg-color: var(--transparent)}.tiptap-button[data-style=ghost]{--tt-button-default-text-color: var(--tt-gray-light-a-600);--tt-button-hover-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-light-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-text-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-text-color: var(--tt-gray-dark-a-600);--tt-button-hover-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-dark-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-text-color: var(--tt-gray-dark-a-300)}.tiptap-button[data-style=ghost]{--tt-button-default-icon-color: var(--tt-gray-light-a-600);--tt-button-hover-icon-color: var(--tt-gray-light-a-900);--tt-button-active-icon-color: var(--tt-brand-color-500);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-600);--tt-button-active-icon-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-icon-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-icon-color: var(--tt-gray-dark-a-600);--tt-button-hover-icon-color: var(--tt-gray-dark-a-900);--tt-button-active-icon-color: var(--tt-brand-color-400);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-300);--tt-button-active-icon-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-icon-color: var(--tt-gray-dark-a-400)}.tiptap-button[data-style=ghost]{--tt-button-default-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-hover-icon-sub-color: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-light-a-400);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-light-a-400);--tt-button-disabled-icon-sub-color: var(--tt-gray-light-a-100)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-dark-a-300);--tt-button-disabled-icon-sub-color: var(--tt-gray-dark-a-100)}.tiptap-button[data-style=ghost]{--tt-button-default-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-light-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-light-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-light-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-light-a-600 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=ghost]{--tt-button-default-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-hover-dropdown-arrows-color: var(--tt-gray-dark-a-700);--tt-button-active-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-dark-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-dark-a-600 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-dark-a-400)}.tiptap-button[data-style=primary]{--tt-button-default-bg-color: var(--tt-brand-color-500);--tt-button-hover-bg-color: var(--tt-brand-color-600);--tt-button-active-bg-color: var(--tt-brand-color-100);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-100 );--tt-button-active-bg-color-subdued: var( --tt-brand-color-100 );--tt-button-active-hover-bg-color: var(--tt-brand-color-200);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-200 );--tt-button-active-hover-bg-color-subdued: var( --tt-brand-color-200 );--tt-button-disabled-bg-color: var(--tt-gray-light-a-100)}.dark .tiptap-button[data-style=primary]{--tt-button-default-bg-color: var(--tt-brand-color-500);--tt-button-hover-bg-color: var(--tt-brand-color-600);--tt-button-active-bg-color: var(--tt-brand-color-900);--tt-button-active-bg-color-emphasized: var( --tt-brand-color-900 );--tt-button-active-bg-color-subdued: var( --tt-brand-color-900 );--tt-button-active-hover-bg-color: var(--tt-brand-color-800);--tt-button-active-hover-bg-color-emphasized: var( --tt-brand-color-800 );--tt-button-active-hover-bg-color-subdued: var( --tt-brand-color-800 );--tt-button-disabled-bg-color: var(--tt-gray-dark-a-100)}.tiptap-button[data-style=primary]{--tt-button-default-text-color: var(--white);--tt-button-hover-text-color: var(--white);--tt-button-active-text-color: var(--tt-gray-light-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-light-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-light-a-900);--tt-button-disabled-text-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=primary]{--tt-button-default-text-color: var(--white);--tt-button-hover-text-color: var(--white);--tt-button-active-text-color: var(--tt-gray-dark-a-900);--tt-button-active-text-color-emphasized: var(--tt-gray-dark-a-900);--tt-button-active-text-color-subdued: var(--tt-gray-dark-a-900);--tt-button-disabled-text-color: var(--tt-gray-dark-a-300)}.tiptap-button[data-style=primary]{--tt-button-default-icon-color: var(--white);--tt-button-hover-icon-color: var(--white);--tt-button-active-icon-color: var(--tt-brand-color-600);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-600);--tt-button-active-icon-color-subdued: var(--tt-brand-color-600);--tt-button-disabled-icon-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=primary]{--tt-button-default-icon-color: var(--white);--tt-button-hover-icon-color: var(--white);--tt-button-active-icon-color: var(--tt-brand-color-400);--tt-button-active-icon-color-emphasized: var(--tt-brand-color-400);--tt-button-active-icon-color-subdued: var(--tt-brand-color-400);--tt-button-disabled-icon-color: var(--tt-gray-dark-a-300)}.tiptap-button[data-style=primary]{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-500);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-light-a-500);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-light-a-500);--tt-button-disabled-icon-sub-color: var(--tt-gray-light-a-100)}.dark .tiptap-button[data-style=primary]{--tt-button-default-icon-sub-color: var(--tt-gray-dark-a-400);--tt-button-hover-icon-sub-color: var(--tt-gray-dark-a-500);--tt-button-active-icon-sub-color: var(--tt-gray-dark-a-300);--tt-button-active-icon-sub-color-emphasized: var(--tt-gray-dark-a-400);--tt-button-active-icon-sub-color-subdued: var(--tt-gray-dark-a-300);--tt-button-disabled-icon-sub-color: var(--tt-gray-dark-a-100)}.tiptap-button[data-style=primary]{--tt-button-default-dropdown-arrows-color: var(--white);--tt-button-hover-dropdown-arrows-color: var(--white);--tt-button-active-dropdown-arrows-color: var(--tt-gray-light-a-700);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-light-a-700 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-light-a-700 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-light-a-400)}.dark .tiptap-button[data-style=primary]{--tt-button-default-dropdown-arrows-color: var(--white);--tt-button-hover-dropdown-arrows-color: var(--white);--tt-button-active-dropdown-arrows-color: var(--tt-gray-dark-a-600);--tt-button-active-dropdown-arrows-color-emphasized: var( --tt-gray-dark-a-600 );--tt-button-active-dropdown-arrows-color-subdued: var( --tt-gray-dark-a-600 );--tt-button-disabled-dropdown-arrows-color: var(--tt-gray-dark-a-400)}.tiptap-button-group{position:relative;display:flex;vertical-align:middle}.tiptap-button-group[data-orientation=vertical]{flex-direction:column;align-items:flex-start;justify-content:center;min-width:max-content}.tiptap-button-group[data-orientation=vertical]>.tiptap-button{width:100%}.tiptap-button-group[data-orientation=horizontal]{gap:.125rem;flex-direction:row;align-items:center}.tiptap-button{font-size:.875rem;font-weight:500;font-feature-settings:"salt" on,"cv01" on;line-height:1.15;height:2rem;min-width:2rem;border:none;padding:.5rem;gap:.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--tt-radius-lg, .75rem);transition-property:background,color,opacity;transition-duration:var(--tt-transition-duration-default);transition-timing-function:var(--tt-transition-easing-default)}.tiptap-button:focus-visible{outline:none}.tiptap-button[data-highlighted=true],.tiptap-button[data-focus-visible=true]{background-color:var(--tt-button-hover-bg-color);color:var(--tt-button-hover-text-color)}.tiptap-button[data-weight=small]{width:1.5rem;min-width:1.5rem;padding-right:0;padding-left:0}.tiptap-button[data-size=large]{font-size:.9375rem;height:2.375rem;min-width:2.375rem;padding:.625rem}.tiptap-button[data-size=small]{font-size:.75rem;line-height:1.2;height:1.5rem;min-width:1.5rem;padding:.3125rem;border-radius:var(--tt-radius-md, .5rem)}.tiptap-button .tiptap-button-text{padding:0 .125rem;flex-grow:1;text-align:left;line-height:1.5rem}.tiptap-button[data-text-trim=on] .tiptap-button-text{text-overflow:ellipsis;overflow:hidden}.tiptap-button .tiptap-button-icon,.tiptap-button .tiptap-button-icon-sub,.tiptap-button .tiptap-button-dropdown-arrows,.tiptap-button .tiptap-button-dropdown-small{flex-shrink:0}.tiptap-button .tiptap-button-icon{width:1rem;height:1rem}.tiptap-button[data-size=large] .tiptap-button-icon{width:1.125rem;height:1.125rem}.tiptap-button[data-size=small] .tiptap-button-icon{width:.875rem;height:.875rem}.tiptap-button .tiptap-button-icon-sub{width:1rem;height:1rem}.tiptap-button[data-size=large] .tiptap-button-icon-sub{width:1.125rem;height:1.125rem}.tiptap-button[data-size=small] .tiptap-button-icon-sub{width:.875rem;height:.875rem}.tiptap-button .tiptap-button-dropdown-arrows{width:.75rem;height:.75rem}.tiptap-button[data-size=large] .tiptap-button-dropdown-arrows{width:.875rem;height:.875rem}.tiptap-button[data-size=small] .tiptap-button-dropdown-arrows,.tiptap-button .tiptap-button-dropdown-small{width:.625rem;height:.625rem}.tiptap-button[data-size=large] .tiptap-button-dropdown-small{width:.75rem;height:.75rem}.tiptap-button[data-size=small] .tiptap-button-dropdown-small{width:.5rem;height:.5rem}.tiptap-button:has(>svg):not(:has(>:not(svg))){gap:.125rem}.tiptap-button:has(>svg):not(:has(>:not(svg)))[data-size=large],.tiptap-button:has(>svg):not(:has(>:not(svg)))[data-size=small]{gap:.125rem}.tiptap-button:has(>svg:nth-of-type(2)):has(>.tiptap-button-dropdown-small):not(:has(>svg:nth-of-type(3))):not(:has(>.tiptap-button-text)){gap:0;padding-right:.25rem}.tiptap-button:has(>svg:nth-of-type(2)):has(>.tiptap-button-dropdown-small):not(:has(>svg:nth-of-type(3))):not(:has(>.tiptap-button-text))[data-size=large]{padding-right:.375rem}.tiptap-button:has(>svg:nth-of-type(2)):has(>.tiptap-button-dropdown-small):not(:has(>svg:nth-of-type(3))):not(:has(>.tiptap-button-text))[data-size=small]{padding-right:.25rem}.tiptap-button .tiptap-button-emoji{width:1rem;display:flex;justify-content:center}.tiptap-button[data-size=large] .tiptap-button-emoji{width:1.125rem}.tiptap-button[data-size=small] .tiptap-button-emoji{width:.875rem}.tiptap-button{background-color:var(--tt-button-default-bg-color);color:var(--tt-button-default-text-color)}.tiptap-button .tiptap-button-icon{color:var(--tt-button-default-icon-color)}.tiptap-button .tiptap-button-icon-sub{color:var(--tt-button-default-icon-sub-color)}.tiptap-button .tiptap-button-dropdown-arrows,.tiptap-button .tiptap-button-dropdown-small{color:var(--tt-button-default-dropdown-arrows-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]),.tiptap-button[data-active-item=true]:not([disabled]),.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]){background-color:var(--tt-button-hover-bg-color);color:var(--tt-button-hover-text-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-icon,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-icon,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-icon{color:var(--tt-button-hover-icon-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-icon-sub,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-icon-sub,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-icon-sub{color:var(--tt-button-hover-icon-sub-color)}.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button:hover:not([data-active-item=true]):not([disabled]) .tiptap-button-dropdown-small,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button[data-active-item=true]:not([disabled]) .tiptap-button-dropdown-small,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-dropdown-arrows,.tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted=false]) .tiptap-button-dropdown-small{color:var(--tt-button-hover-dropdown-arrows-color)}.tiptap-button[data-active-state=on]:not([disabled]),.tiptap-button[data-state=open]:not([disabled]){background-color:var(--tt-button-active-bg-color);color:var(--tt-button-active-text-color)}.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-icon{color:var(--tt-button-active-icon-color)}.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-icon-sub,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-icon-sub{color:var(--tt-button-active-icon-sub-color)}.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button[data-active-state=on]:not([disabled]) .tiptap-button-dropdown-small,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-dropdown-arrows,.tiptap-button[data-state=open]:not([disabled]) .tiptap-button-dropdown-small{color:var(--tt-button-active-dropdown-arrows-color)}.tiptap-button[data-active-state=on]:not([disabled]):hover,.tiptap-button[data-state=open]:not([disabled]):hover{background-color:var(--tt-button-active-hover-bg-color)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized],.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized]{background-color:var(--tt-button-active-bg-color-emphasized);color:var(--tt-button-active-text-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon{color:var(--tt-button-active-icon-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon-sub,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-icon-sub{color:var(--tt-button-active-icon-sub-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-arrows,.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-small,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-arrows,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized] .tiptap-button-dropdown-small{color:var(--tt-button-active-dropdown-arrows-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=emphasized]:hover,.tiptap-button[data-state=open]:not([disabled])[data-appearance=emphasized]:hover{background-color:var(--tt-button-active-hover-bg-color-emphasized)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued],.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued]{background-color:var(--tt-button-active-bg-color-subdued);color:var(--tt-button-active-text-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-icon{color:var(--tt-button-active-icon-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-icon-sub,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-icon-sub{color:var(--tt-button-active-icon-sub-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-arrows,.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-small,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-arrows,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued] .tiptap-button-dropdown-small{color:var(--tt-button-active-dropdown-arrows-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued]:hover,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued]:hover{background-color:var(--tt-button-active-hover-bg-color-subdued)}.tiptap-button[data-active-state=on]:not([disabled])[data-appearance=subdued]:hover .tiptap-button-icon,.tiptap-button[data-state=open]:not([disabled])[data-appearance=subdued]:hover .tiptap-button-icon{color:var(--tt-button-active-icon-color-subdued)}.tiptap-button:disabled{background-color:var(--tt-button-disabled-bg-color);color:var(--tt-button-disabled-text-color)}.tiptap-button:disabled .tiptap-button-icon{color:var(--tt-button-disabled-icon-color)}.tiptap-badge{--tt-badge-border-color: var(--tt-gray-light-a-200);--tt-badge-border-color-subdued: var(--tt-gray-light-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-light-a-600);--tt-badge-text-color: var(--tt-gray-light-a-500);--tt-badge-text-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-light-a-600 );--tt-badge-bg-color: var(--white);--tt-badge-bg-color-subdued: var(--white);--tt-badge-bg-color-emphasized: var(--white);--tt-badge-icon-color: var(--tt-gray-light-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-600 )}.dark .tiptap-badge{--tt-badge-border-color: var(--tt-gray-dark-a-200);--tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);--tt-badge-text-color: var(--tt-gray-dark-a-500);--tt-badge-text-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-dark-a-600 );--tt-badge-bg-color: var(--black);--tt-badge-bg-color-subdued: var(--black);--tt-badge-bg-color-emphasized: var(--black);--tt-badge-icon-color: var(--tt-gray-dark-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-400 )}.tiptap-badge[data-style=ghost]{--tt-badge-border-color: var(--tt-gray-light-a-200);--tt-badge-border-color-subdued: var(--tt-gray-light-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-light-a-600);--tt-badge-text-color: var(--tt-gray-light-a-500);--tt-badge-text-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-light-a-600 );--tt-badge-bg-color: var(--transparent);--tt-badge-bg-color-subdued: var(--transparent);--tt-badge-bg-color-emphasized: var(--transparent);--tt-badge-icon-color: var(--tt-gray-light-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-600 )}.dark .tiptap-badge[data-style=ghost]{--tt-badge-border-color: var(--tt-gray-dark-a-200);--tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);--tt-badge-text-color: var(--tt-gray-dark-a-500);--tt-badge-text-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-text-color-emphasized: var( --tt-gray-dark-a-600 );--tt-badge-bg-color: var(--transparent);--tt-badge-bg-color-subdued: var(--transparent);--tt-badge-bg-color-emphasized: var(--transparent);--tt-badge-icon-color: var(--tt-gray-dark-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-400 )}.tiptap-badge[data-style=gray]{--tt-badge-border-color: var(--tt-gray-light-a-200);--tt-badge-border-color-subdued: var(--tt-gray-light-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-light-a-500);--tt-badge-text-color: var(--tt-gray-light-a-500);--tt-badge-text-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-text-color-emphasized: var(--white);--tt-badge-bg-color: var(--tt-gray-light-a-100);--tt-badge-bg-color-subdued: var( --tt-gray-light-a-50 );--tt-badge-bg-color-emphasized: var( --tt-gray-light-a-700 );--tt-badge-icon-color: var(--tt-gray-light-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-light-a-400 );--tt-badge-icon-color-emphasized: var(--white)}.dark .tiptap-badge[data-style=gray]{--tt-badge-border-color: var(--tt-gray-dark-a-200);--tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);--tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);--tt-badge-text-color: var(--tt-gray-dark-a-500);--tt-badge-text-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-text-color-emphasized: var(--black);--tt-badge-bg-color: var(--tt-gray-dark-a-100);--tt-badge-bg-color-subdued: var( --tt-gray-dark-a-50 );--tt-badge-bg-color-emphasized: var( --tt-gray-dark-a-800 );--tt-badge-icon-color: var(--tt-gray-dark-a-500);--tt-badge-icon-color-subdued: var( --tt-gray-dark-a-400 );--tt-badge-icon-color-emphasized: var(--black)}.tiptap-badge[data-style=green]{--tt-badge-border-color: var(--tt-color-green-inc-2);--tt-badge-border-color-subdued: var(--tt-color-green-inc-3);--tt-badge-border-color-emphasized: var(--tt-color-green-dec-2);--tt-badge-text-color: var(--tt-color-green-dec-3);--tt-badge-text-color-subdued: var( --tt-color-green-dec-2 );--tt-badge-text-color-emphasized: var( --tt-color-green-inc-5 );--tt-badge-bg-color: var(--tt-color-green-inc-4);--tt-badge-bg-color-subdued: var( --tt-color-green-inc-5 );--tt-badge-bg-color-emphasized: var( --tt-color-green-dec-1 );--tt-badge-icon-color: var(--tt-color-green-dec-3);--tt-badge-icon-color-subdued: var( --tt-color-green-dec-2 );--tt-badge-icon-color-emphasized: var( --tt-color-green-inc-5 )}.dark .tiptap-badge[data-style=green]{--tt-badge-border-color: var(--tt-color-green-dec-2);--tt-badge-border-color-subdued: var(--tt-color-green-dec-3);--tt-badge-border-color-emphasized: var(--tt-color-green-base);--tt-badge-text-color: var(--tt-color-green-inc-3);--tt-badge-text-color-subdued: var( --tt-color-green-inc-2 );--tt-badge-text-color-emphasized: var( --tt-color-green-dec-5 );--tt-badge-bg-color: var(--tt-color-green-dec-4);--tt-badge-bg-color-subdued: var( --tt-color-green-dec-5 );--tt-badge-bg-color-emphasized: var( --tt-color-green-inc-1 );--tt-badge-icon-color: var(--tt-color-green-inc-3);--tt-badge-icon-color-subdued: var( --tt-color-green-inc-2 );--tt-badge-icon-color-emphasized: var( --tt-color-green-dec-5 )}.tiptap-badge[data-style=yellow]{--tt-badge-border-color: var(--tt-color-yellow-inc-2);--tt-badge-border-color-subdued: var(--tt-color-yellow-inc-3);--tt-badge-border-color-emphasized: var(--tt-color-yellow-dec-1);--tt-badge-text-color: var(--tt-color-yellow-dec-3);--tt-badge-text-color-subdued: var( --tt-color-yellow-dec-2 );--tt-badge-text-color-emphasized: var( --tt-color-yellow-dec-3 );--tt-badge-bg-color: var(--tt-color-yellow-inc-4);--tt-badge-bg-color-subdued: var( --tt-color-yellow-inc-5 );--tt-badge-bg-color-emphasized: var( --tt-color-yellow-base );--tt-badge-icon-color: var(--tt-color-yellow-dec-3);--tt-badge-icon-color-subdued: var( --tt-color-yellow-dec-2 );--tt-badge-icon-color-emphasized: var( --tt-color-yellow-dec-3 )}.dark .tiptap-badge[data-style=yellow]{--tt-badge-border-color: var(--tt-color-yellow-dec-2);--tt-badge-border-color-subdued: var(--tt-color-yellow-dec-3);--tt-badge-border-color-emphasized: var(--tt-color-yellow-inc-1);--tt-badge-text-color: var(--tt-color-yellow-inc-3);--tt-badge-text-color-subdued: var( --tt-color-yellow-inc-2 );--tt-badge-text-color-emphasized: var( --tt-color-yellow-dec-3 );--tt-badge-bg-color: var(--tt-color-yellow-dec-4);--tt-badge-bg-color-subdued: var( --tt-color-yellow-dec-5 );--tt-badge-bg-color-emphasized: var( --tt-color-yellow-base );--tt-badge-icon-color: var(--tt-color-yellow-inc-3);--tt-badge-icon-color-subdued: var( --tt-color-yellow-inc-2 );--tt-badge-icon-color-emphasized: var( --tt-color-yellow-dec-3 )}.tiptap-badge[data-style=red]{--tt-badge-border-color: var(--tt-color-red-inc-2);--tt-badge-border-color-subdued: var(--tt-color-red-inc-3);--tt-badge-border-color-emphasized: var(--tt-color-red-dec-2);--tt-badge-text-color: var(--tt-color-red-dec-3);--tt-badge-text-color-subdued: var( --tt-color-red-dec-2 );--tt-badge-text-color-emphasized: var( --tt-color-red-inc-5 );--tt-badge-bg-color: var(--tt-color-red-inc-4);--tt-badge-bg-color-subdued: var( --tt-color-red-inc-5 );--tt-badge-bg-color-emphasized: var( --tt-color-red-dec-1 );--tt-badge-icon-color: var(--tt-color-red-dec-3);--tt-badge-icon-color-subdued: var( --tt-color-red-dec-2 );--tt-badge-icon-color-emphasized: var( --tt-color-red-inc-5 )}.dark .tiptap-badge[data-style=red]{--tt-badge-border-color: var(--tt-color-red-dec-2);--tt-badge-border-color-subdued: var(--tt-color-red-dec-3);--tt-badge-border-color-emphasized: var(--tt-color-red-base);--tt-badge-text-color: var(--tt-color-red-inc-3);--tt-badge-text-color-subdued: var( --tt-color-red-inc-2 );--tt-badge-text-color-emphasized: var( --tt-color-red-dec-5 );--tt-badge-bg-color: var(--tt-color-red-dec-4);--tt-badge-bg-color-subdued: var( --tt-color-red-dec-5 );--tt-badge-bg-color-emphasized: var( --tt-color-red-inc-1 );--tt-badge-icon-color: var(--tt-color-red-inc-3);--tt-badge-icon-color-subdued: var( --tt-color-red-inc-2 );--tt-badge-icon-color-emphasized: var( --tt-color-red-dec-5 )}.tiptap-badge[data-style=brand]{--tt-badge-border-color: var(--tt-brand-color-300);--tt-badge-border-color-subdued: var(--tt-brand-color-200);--tt-badge-border-color-emphasized: var(--tt-brand-color-600);--tt-badge-text-color: var(--tt-brand-color-800);--tt-badge-text-color-subdued: var( --tt-brand-color-700 );--tt-badge-text-color-emphasized: var( --tt-brand-color-50 );--tt-badge-bg-color: var(--tt-brand-color-100);--tt-badge-bg-color-subdued: var( --tt-brand-color-50 );--tt-badge-bg-color-emphasized: var( --tt-brand-color-600 );--tt-badge-icon-color: var(--tt-brand-color-800);--tt-badge-icon-color-subdued: var( --tt-brand-color-700 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-100 )}.dark .tiptap-badge[data-style=brand]{--tt-badge-border-color: var(--tt-brand-color-700);--tt-badge-border-color-subdued: var(--tt-brand-color-800);--tt-badge-border-color-emphasized: var(--tt-brand-color-400);--tt-badge-text-color: var(--tt-brand-color-200);--tt-badge-text-color-subdued: var( --tt-brand-color-300 );--tt-badge-text-color-emphasized: var( --tt-brand-color-950 );--tt-badge-bg-color: var(--tt-brand-color-900);--tt-badge-bg-color-subdued: var( --tt-brand-color-950 );--tt-badge-bg-color-emphasized: var( --tt-brand-color-400 );--tt-badge-icon-color: var(--tt-brand-color-200);--tt-badge-icon-color-subdued: var( --tt-brand-color-300 );--tt-badge-icon-color-emphasized: var( --tt-brand-color-900 )}.tiptap-badge-group{align-items:center;display:flex;flex-wrap:wrap;gap:.25rem}.tiptap-badge-group [data-orientation=vertical]{flex-direction:column}.tiptap-badge-group [data-orientation=horizontal]{flex-direction:row}.tiptap-badge{font-size:.625rem;font-weight:700;font-feature-settings:"salt" on,"cv01" on;line-height:1.15;height:1.25rem;min-width:1.25rem;padding:.25rem;display:flex;align-items:center;justify-content:center;border:solid 1px;border-radius:var(--tt-radius-sm, .375rem);transition-property:background,color,opacity;transition-duration:var(--tt-transition-duration-default);transition-timing-function:var(--tt-transition-easing-default)}.tiptap-badge[data-size=large]{font-size:.75rem;height:1.5rem;min-width:1.5rem;padding:.375rem;border-radius:var(--tt-radius-md, .375rem)}.tiptap-badge[data-size=small]{height:1rem;min-width:1rem;padding:.125rem;border-radius:var(--tt-radius-xs, .25rem)}.tiptap-badge .tiptap-badge-text{padding:0 .125rem;flex-grow:1;text-align:left}.tiptap-badge[data-text-trim=on] .tiptap-badge-text{text-overflow:ellipsis;overflow:hidden}.tiptap-badge .tiptap-badge-icon{pointer-events:none;flex-shrink:0;width:.625rem;height:.625rem}.tiptap-badge[data-size=large] .tiptap-badge-icon{width:.75rem;height:.75rem}.tiptap-badge{background-color:var(--tt-badge-bg-color);border-color:var(--tt-badge-border-color);color:var(--tt-badge-text-color)}.tiptap-badge .tiptap-badge-icon{color:var(--tt-badge-icon-color)}.tiptap-badge[data-appearance=emphasized]{background-color:var(--tt-badge-bg-color-emphasized);border-color:var(--tt-badge-border-color-emphasized);color:var(--tt-badge-text-color-emphasized)}.tiptap-badge[data-appearance=emphasized] .tiptap-badge-icon{color:var(--tt-badge-icon-color-emphasized)}.tiptap-badge[data-appearance=subdued]{background-color:var(--tt-badge-bg-color-subdued);border-color:var(--tt-badge-border-color-subdued);color:var(--tt-badge-text-color-subdued)}.tiptap-badge[data-appearance=subdued] .tiptap-badge-icon{color:var(--tt-badge-icon-color-subdued)}.tiptap-popover{--tt-popover-bg-color: var(--white);--tt-popover-border-color: var(--tt-gray-light-a-100);--tt-popover-text-color: var(--tt-gray-light-a-600)}.dark .tiptap-popover{--tt-popover-border-color: var(--tt-gray-dark-a-50);--tt-popover-bg-color: var(--tt-gray-dark-50);--tt-popover-text-color: var(--tt-gray-dark-a-600)}.tiptap-popover{z-index:50;outline:none;transform-origin:var(--radix-popover-content-transform-origin);max-height:var(--radix-popover-content-available-height)}.tiptap-popover>*{max-height:var(--radix-popover-content-available-height)}.tiptap-popover[data-state=open]{animation:fadeIn .15s cubic-bezier(.16,1,.3,1),zoomIn .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-state=closed]{animation:fadeOut .15s cubic-bezier(.16,1,.3,1),zoomOut .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=top],.tiptap-popover[data-side=top-start],.tiptap-popover[data-side=top-end]{animation:slideFromBottom .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=right],.tiptap-popover[data-side=right-start],.tiptap-popover[data-side=right-end]{animation:slideFromLeft .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=bottom],.tiptap-popover[data-side=bottom-start],.tiptap-popover[data-side=bottom-end]{animation:slideFromTop .15s cubic-bezier(.16,1,.3,1)}.tiptap-popover[data-side=left],.tiptap-popover[data-side=left-start],.tiptap-popover[data-side=left-end]{animation:slideFromRight .15s cubic-bezier(.16,1,.3,1)}.tiptap-separator{--tt-link-border-color: var(--tt-gray-light-a-200)}.dark .tiptap-separator{--tt-link-border-color: var(--tt-gray-dark-a-200)}.tiptap-separator{flex-shrink:0;background-color:var(--tt-link-border-color)}.tiptap-separator[data-orientation=horizontal]{height:1px;width:100%;margin:.5rem 0}.tiptap-separator[data-orientation=vertical]{height:1.5rem;width:1px}:root{--tiptap-card-bg-color: var(--white);--tiptap-card-border-color: var(--tt-gray-light-a-100);--tiptap-card-group-label-color: var(--tt-gray-light-a-800)}.dark{--tiptap-card-bg-color: var(--tt-gray-dark-50);--tiptap-card-border-color: var(--tt-gray-dark-a-100);--tiptap-card-group-label-color: var(--tt-gray-dark-a-800)}.tiptap-card{--padding: .375rem;--border-width: 1px;border-radius:calc(var(--padding) + var(--tt-radius-lg));box-shadow:var(--tt-shadow-elevated-md);background-color:var(--tiptap-card-bg-color);border:1px solid var(--tiptap-card-border-color);display:flex;flex-direction:column;outline:none;align-items:center;position:relative;min-width:0;word-wrap:break-word;background-clip:border-box}.tiptap-card-header{padding:.375rem;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;width:100%;border-bottom:var(--border-width) solid var(--tiptap-card-border-color)}.tiptap-card-body{padding:.375rem;flex:1 1 auto;overflow-y:auto}.tiptap-card-item-group{position:relative;display:flex;vertical-align:middle;min-width:max-content}.tiptap-card-item-group[data-orientation=vertical]{flex-direction:column;justify-content:center}.tiptap-card-item-group[data-orientation=horizontal]{gap:.25rem;flex-direction:row;align-items:center}.tiptap-card-group-label{padding:.75rem .5rem .25rem;font-size:.75rem;font-weight:600;line-height:normal;text-transform:capitalize;color:var(--tiptap-card-group-label-color)}.tiptap-button-highlight{position:relative;width:1.25rem;height:1.25rem;margin:0 -.175rem;border-radius:var(--tt-radius-xl);background-color:var(--highlight-color);transition:transform .2s ease}.tiptap-button-highlight:after{content:"";position:absolute;width:100%;height:100%;left:0;top:0;border-radius:inherit;box-sizing:border-box;border:1px solid var(--highlight-color);filter:brightness(95%);mix-blend-mode:multiply}.dark .tiptap-button-highlight:after{filter:brightness(140%);mix-blend-mode:lighten}.tiptap-button[data-active-state=on] .tiptap-button-highlight:after{filter:brightness(80%)}.dark .tiptap-button[data-active-state=on] .tiptap-button-highlight:after{filter:brightness(180%)}.tiptap-button-text-color{position:relative;width:1.25rem;height:1.25rem;margin:0 -.175rem;border-radius:var(--tt-radius-xl);background-color:var(--highlight-color);transition:transform .2s ease}.tiptap-button-text-color:after{content:"";position:absolute;width:100%;height:100%;left:0;top:0;border-radius:inherit;box-sizing:border-box;border:1px solid var(--highlight-color);filter:brightness(95%);mix-blend-mode:multiply}.dark .tiptap-button-text-color:after{filter:brightness(140%);mix-blend-mode:lighten}.tiptap-button[data-active-state=on] .tiptap-button-text-color:after{filter:brightness(80%)}.dark .tiptap-button[data-active-state=on] .tiptap-button-text-color:after{filter:brightness(180%)}.font-family-select{height:32px;padding:4px 8px;border:1px solid #e2e8f0;border-radius:4px;background-color:#fff;font-size:14px;cursor:pointer;min-width:140px}.font-family-select:hover{border-color:#cbd5e1}.font-family-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.font-family-select option{padding:4px}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ var Xe = (n) => {
|
|
|
4
4
|
};
|
|
5
5
|
var on = (n, e, t) => e in n ? nn(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
|
|
6
6
|
var C = (n, e, t) => on(n, typeof e != "symbol" ? e + "" : e, t), Ce = (n, e, t) => e.has(n) || Xe("Cannot " + t);
|
|
7
|
-
var r = (n, e, t) => (Ce(n, e, "read from private field"), t ? t.call(n) : e.get(n)),
|
|
7
|
+
var r = (n, e, t) => (Ce(n, e, "read from private field"), t ? t.call(n) : e.get(n)), f = (n, e, t) => e.has(n) ? Xe("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(n) : e.set(n, t), b = (n, e, t, i) => (Ce(n, e, "write to private field"), i ? i.call(n, t) : e.set(n, t), t), _ = (n, e, t) => (Ce(n, e, "access private method"), t);
|
|
8
8
|
import { jsxs as k, jsx as c, Fragment as me } from "react/jsx-runtime";
|
|
9
9
|
import { useState as R, useEffect as V, useRef as Me, useMemo as pt, forwardRef as $, createContext as sn, isValidElement as Ye, version as rn, cloneElement as an, useContext as ln, Fragment as hn, useCallback as K, memo as ot } from "react";
|
|
10
10
|
import I from "konva";
|
|
@@ -31,14 +31,14 @@ import { useHotkeys as ai } from "react-hotkeys-hook";
|
|
|
31
31
|
var E, w, j, Wt, Xt, Yt, Gt, Kt, qt, jt, Jt, Qt, li;
|
|
32
32
|
class Zn {
|
|
33
33
|
constructor(e, t) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
f(this, Qt);
|
|
35
|
+
f(this, E);
|
|
36
|
+
f(this, w);
|
|
37
|
+
f(this, j, { x: 0, y: 0, scale: 1 });
|
|
38
38
|
/**
|
|
39
39
|
* 处理滚轮缩放和平移
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
f(this, Wt, (e) => {
|
|
42
42
|
e.evt.preventDefault();
|
|
43
43
|
const i = r(this, w).getPointerPosition();
|
|
44
44
|
if (i)
|
|
@@ -50,11 +50,11 @@ class Zn {
|
|
|
50
50
|
let d = o;
|
|
51
51
|
for (let g = 0; g < l; g++)
|
|
52
52
|
d = h > 0 ? d * a : d / a;
|
|
53
|
-
const
|
|
54
|
-
x: i.x - s.x *
|
|
55
|
-
y: i.y - s.y *
|
|
53
|
+
const m = Math.max(0.1, Math.min(5, d)), u = {
|
|
54
|
+
x: i.x - s.x * m,
|
|
55
|
+
y: i.y - s.y * m
|
|
56
56
|
};
|
|
57
|
-
r(this, E)._updateViewport({ x: u.x, y: u.y, scale:
|
|
57
|
+
r(this, E)._updateViewport({ x: u.x, y: u.y, scale: m });
|
|
58
58
|
} else {
|
|
59
59
|
const o = e.evt.shiftKey ? e.evt.deltaY : e.evt.deltaX, s = e.evt.shiftKey ? 0 : e.evt.deltaY;
|
|
60
60
|
r(this, E)._updateViewport({
|
|
@@ -63,7 +63,7 @@ class Zn {
|
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
-
|
|
66
|
+
f(this, Xt, (e) => {
|
|
67
67
|
const t = r(this, E).getState().toolType;
|
|
68
68
|
if (e.evt.button !== 0 || t === "hand")
|
|
69
69
|
return;
|
|
@@ -97,7 +97,7 @@ class Zn {
|
|
|
97
97
|
}
|
|
98
98
|
r(this, E)._selectNodes();
|
|
99
99
|
});
|
|
100
|
-
|
|
100
|
+
f(this, Yt, () => {
|
|
101
101
|
const e = r(this, E).getState().toolType;
|
|
102
102
|
if (e === "hand")
|
|
103
103
|
return;
|
|
@@ -108,7 +108,7 @@ class Zn {
|
|
|
108
108
|
}
|
|
109
109
|
["rectangle", "rich-text", "image-marker"].includes(e) && r(this, E)._updateDraftNode();
|
|
110
110
|
});
|
|
111
|
-
|
|
111
|
+
f(this, Gt, () => {
|
|
112
112
|
const e = r(this, E).getState().toolType;
|
|
113
113
|
if (e !== "hand") {
|
|
114
114
|
if (e === "select") {
|
|
@@ -118,25 +118,25 @@ class Zn {
|
|
|
118
118
|
["rectangle", "rich-text", "image-marker"].includes(e) && r(this, E)._finalizeDraftNode(), e === "text" && r(this, E)._createTextNodeAtDrawingPosition("");
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
|
-
|
|
121
|
+
f(this, Kt, (e) => {
|
|
122
122
|
if (e.target !== r(this, w))
|
|
123
123
|
return;
|
|
124
124
|
const t = r(this, E).getState().toolType;
|
|
125
125
|
t === "hand" ? this.setCursor("grabbing") : t === "select" && this.setCursor("all-scroll");
|
|
126
126
|
});
|
|
127
|
-
|
|
127
|
+
f(this, qt, (e) => {
|
|
128
128
|
e.target === r(this, w) && r(this, E)._updateViewport({
|
|
129
129
|
x: r(this, w).x(),
|
|
130
130
|
y: r(this, w).y()
|
|
131
131
|
});
|
|
132
132
|
});
|
|
133
|
-
|
|
133
|
+
f(this, jt, (e) => {
|
|
134
134
|
e.target === r(this, w) && (r(this, E)._updateViewport({
|
|
135
135
|
x: r(this, w).x(),
|
|
136
136
|
y: r(this, w).y()
|
|
137
137
|
}), this.resetCursor());
|
|
138
138
|
});
|
|
139
|
-
|
|
139
|
+
f(this, Jt, (e) => {
|
|
140
140
|
if (e.evt.preventDefault(), r(this, E).getToolType() !== "select")
|
|
141
141
|
return;
|
|
142
142
|
const t = r(this, w).getPointerPosition(), i = e.target;
|
|
@@ -221,43 +221,43 @@ li = function() {
|
|
|
221
221
|
var kt, M, te, ee, ie, ne, oe, se, re, hi;
|
|
222
222
|
class Un {
|
|
223
223
|
constructor(e, t) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
f(this, re);
|
|
225
|
+
f(this, kt);
|
|
226
|
+
f(this, M);
|
|
227
227
|
/**
|
|
228
228
|
* 处理 transformstart 事件
|
|
229
229
|
*/
|
|
230
|
-
|
|
230
|
+
f(this, te, () => {
|
|
231
231
|
this.emitPositionChange();
|
|
232
232
|
});
|
|
233
233
|
/**
|
|
234
234
|
* 处理 transform 事件
|
|
235
235
|
*/
|
|
236
|
-
|
|
236
|
+
f(this, ee, () => {
|
|
237
237
|
this.emitPositionChange();
|
|
238
238
|
});
|
|
239
239
|
/**
|
|
240
240
|
* 处理 transformend 事件
|
|
241
241
|
*/
|
|
242
|
-
|
|
242
|
+
f(this, ie, () => {
|
|
243
243
|
this.emitPositionChange();
|
|
244
244
|
});
|
|
245
245
|
/**
|
|
246
246
|
* 处理 dragstart 事件
|
|
247
247
|
*/
|
|
248
|
-
|
|
248
|
+
f(this, ne, () => {
|
|
249
249
|
this.emitPositionChange();
|
|
250
250
|
});
|
|
251
251
|
/**
|
|
252
252
|
* 处理 dragmove 事件
|
|
253
253
|
*/
|
|
254
|
-
|
|
254
|
+
f(this, oe, () => {
|
|
255
255
|
this.emitPositionChange();
|
|
256
256
|
});
|
|
257
257
|
/**
|
|
258
258
|
* 处理 dragend 事件
|
|
259
259
|
*/
|
|
260
|
-
|
|
260
|
+
f(this, se, () => {
|
|
261
261
|
this.emitPositionChange();
|
|
262
262
|
});
|
|
263
263
|
b(this, kt, e), b(this, M, new I.Transformer({
|
|
@@ -358,10 +358,10 @@ class zn {
|
|
|
358
358
|
// todo: 优化 selectedNodeIds 的存储和查询性能
|
|
359
359
|
// private _selectedNodeIds: Set<string> = new Set();
|
|
360
360
|
constructor(e) {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
361
|
+
f(this, A, []);
|
|
362
|
+
f(this, D);
|
|
363
|
+
f(this, Z, []);
|
|
364
|
+
f(this, B);
|
|
365
365
|
b(this, D, e), b(this, B, cn());
|
|
366
366
|
}
|
|
367
367
|
/**
|
|
@@ -623,12 +623,12 @@ var Rt, ae, gi;
|
|
|
623
623
|
class Kn extends yt {
|
|
624
624
|
constructor(t, i, o = !1) {
|
|
625
625
|
super();
|
|
626
|
-
|
|
626
|
+
f(this, ae);
|
|
627
627
|
C(this, "core");
|
|
628
628
|
C(this, "config");
|
|
629
629
|
C(this, "element");
|
|
630
630
|
C(this, "isDraft");
|
|
631
|
-
|
|
631
|
+
f(this, Rt, (t) => {
|
|
632
632
|
const i = t === "select";
|
|
633
633
|
this.element.listening(this.config.$_listening ?? i);
|
|
634
634
|
});
|
|
@@ -690,16 +690,16 @@ var nt, xe, $t, Ft, ui, be;
|
|
|
690
690
|
class qn extends yt {
|
|
691
691
|
constructor(t, i, o = !1) {
|
|
692
692
|
super();
|
|
693
|
-
|
|
693
|
+
f(this, nt);
|
|
694
694
|
C(this, "core");
|
|
695
695
|
C(this, "config");
|
|
696
696
|
C(this, "element");
|
|
697
697
|
C(this, "isDraft");
|
|
698
|
-
|
|
698
|
+
f(this, $t, (t) => {
|
|
699
699
|
const i = t === "select";
|
|
700
700
|
this.element.listening(this.config.$_listening ?? i);
|
|
701
701
|
});
|
|
702
|
-
|
|
702
|
+
f(this, Ft, () => {
|
|
703
703
|
const t = this.getElement().getLayer();
|
|
704
704
|
if (!t) return;
|
|
705
705
|
const i = t.find(
|
|
@@ -740,11 +740,11 @@ class qn extends yt {
|
|
|
740
740
|
const i = this.config;
|
|
741
741
|
this.config = Ke(
|
|
742
742
|
{
|
|
743
|
-
...
|
|
743
|
+
...i,
|
|
744
744
|
...t
|
|
745
745
|
},
|
|
746
746
|
this.core.getTheme()
|
|
747
|
-
), this.getElement().setAttrs(this.config),
|
|
747
|
+
), delete this.config.image, this.getElement().setAttrs(this.config), t.$_imageUrl && t.$_imageUrl !== i.$_imageUrl && _(this, nt, xe).call(this);
|
|
748
748
|
}
|
|
749
749
|
/**
|
|
750
750
|
* 销毁
|
|
@@ -797,20 +797,20 @@ be = function() {
|
|
|
797
797
|
const t = this.getElement(), i = t.getLayer();
|
|
798
798
|
if (!i) return;
|
|
799
799
|
const o = t.x(), s = t.y(), a = t.width(), h = t.height(), l = i.find(
|
|
800
|
-
(
|
|
800
|
+
(m) => m.hasName(this.config.id)
|
|
801
801
|
), d = this.core.getState().nodes || [];
|
|
802
|
-
l.forEach((
|
|
803
|
-
const u = d.find((g) => g.id ===
|
|
802
|
+
l.forEach((m) => {
|
|
803
|
+
const u = d.find((g) => g.id === m.id());
|
|
804
804
|
if (u?.$_type === "image-marker" && u.$_relativeBox) {
|
|
805
805
|
const { start: g, end: p } = u.$_relativeBox, x = o + g.ratioX * a, y = s + g.ratioY * h, N = o + p.ratioX * a, v = s + p.ratioY * h, L = Math.min(x, N), st = Math.min(y, v), X = Math.abs(N - x), Y = Math.abs(v - y);
|
|
806
|
-
|
|
806
|
+
m.setAttrs({
|
|
807
807
|
x: L,
|
|
808
808
|
y: st,
|
|
809
809
|
width: X,
|
|
810
810
|
height: Y
|
|
811
|
-
}),
|
|
811
|
+
}), m.getChildren().forEach((P) => {
|
|
812
812
|
P.getClassName() === "Rect" ? P.setAttrs({ width: X, height: Y }) : P.getClassName() === "Group" && P.setAttrs({ x: X, y: Y });
|
|
813
|
-
}), ei(
|
|
813
|
+
}), ei(m)?.syncConfigFromElement();
|
|
814
814
|
}
|
|
815
815
|
});
|
|
816
816
|
};
|
|
@@ -818,17 +818,17 @@ var J, U, lt, et, xt, bt, Nt, mi, fi;
|
|
|
818
818
|
class jn extends yt {
|
|
819
819
|
constructor(t, i, o = !1) {
|
|
820
820
|
super();
|
|
821
|
-
|
|
821
|
+
f(this, Nt);
|
|
822
822
|
C(this, "core");
|
|
823
823
|
C(this, "config");
|
|
824
824
|
C(this, "element");
|
|
825
825
|
C(this, "isDraft");
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
826
|
+
f(this, J);
|
|
827
|
+
f(this, U);
|
|
828
|
+
f(this, lt);
|
|
829
|
+
f(this, et);
|
|
830
|
+
f(this, xt);
|
|
831
|
+
f(this, bt);
|
|
832
832
|
this.core = t, this.config = je(i, this.core.getTheme()), this.isDraft = o, this.element = this.createElement(), Ct(this.element, this);
|
|
833
833
|
const s = this.getElement();
|
|
834
834
|
b(this, J, s.findOne(".rect")), b(this, U, s.findOne(".marker-group")), b(this, lt, r(this, U).findOne("Circle")), b(this, et, r(this, U).findOne("Text")), _(this, Nt, fi).call(this), b(this, xt, () => {
|
|
@@ -863,7 +863,7 @@ class jn extends yt {
|
|
|
863
863
|
dash: h,
|
|
864
864
|
cornerRadius: l,
|
|
865
865
|
listening: !1
|
|
866
|
-
}),
|
|
866
|
+
}), m = new I.Group({
|
|
867
867
|
name: "marker-group",
|
|
868
868
|
x: t,
|
|
869
869
|
y: i,
|
|
@@ -884,7 +884,7 @@ class jn extends yt {
|
|
|
884
884
|
fontSize: p,
|
|
885
885
|
fill: "white"
|
|
886
886
|
});
|
|
887
|
-
return
|
|
887
|
+
return m.add(x), m.add(y), o.add(d), o.add(m), o;
|
|
888
888
|
}
|
|
889
889
|
/**
|
|
890
890
|
* 获取 Konva.Group 实例
|
|
@@ -955,17 +955,17 @@ var rt, At, le, pi;
|
|
|
955
955
|
class Jn extends yt {
|
|
956
956
|
constructor(t, i, o = !1) {
|
|
957
957
|
super();
|
|
958
|
-
|
|
958
|
+
f(this, le);
|
|
959
959
|
C(this, "core");
|
|
960
960
|
C(this, "config");
|
|
961
961
|
C(this, "element");
|
|
962
962
|
C(this, "isDraft");
|
|
963
963
|
C(this, "htmlElement");
|
|
964
|
-
|
|
964
|
+
f(this, rt, () => {
|
|
965
965
|
const t = this.element.getClientRect();
|
|
966
966
|
this.htmlElement.style.left = `${t.x}px`, this.htmlElement.style.top = `${t.y}px`, this.htmlElement.style.width = `${t.width}px`, this.htmlElement.style.height = `${t.height}px`;
|
|
967
967
|
});
|
|
968
|
-
|
|
968
|
+
f(this, At, (t) => {
|
|
969
969
|
const i = t === "select";
|
|
970
970
|
this.element.listening(this.config.$_listening ?? i);
|
|
971
971
|
});
|
|
@@ -1031,27 +1031,27 @@ var Ht, he, ce, yi;
|
|
|
1031
1031
|
class Qn extends yt {
|
|
1032
1032
|
constructor(t, i, o = !1) {
|
|
1033
1033
|
super();
|
|
1034
|
-
|
|
1034
|
+
f(this, ce);
|
|
1035
1035
|
C(this, "core");
|
|
1036
1036
|
C(this, "config");
|
|
1037
1037
|
C(this, "element");
|
|
1038
1038
|
C(this, "isDraft");
|
|
1039
1039
|
C(this, "rect");
|
|
1040
|
-
|
|
1040
|
+
f(this, Ht, (t) => {
|
|
1041
1041
|
const i = t === "select";
|
|
1042
1042
|
this.element.listening(this.config.$_listening ?? i);
|
|
1043
1043
|
});
|
|
1044
1044
|
/**
|
|
1045
1045
|
* 编辑文字
|
|
1046
1046
|
*/
|
|
1047
|
-
|
|
1047
|
+
f(this, he, () => {
|
|
1048
1048
|
const t = this.element, i = this.core.getCanvasTransformer(), o = t.getClientRect(), s = document.createElement("textarea");
|
|
1049
1049
|
this.core.getStage().getContent().appendChild(s), s.name = "text-editor", s.draggable = !1, s.value = t.text(), s.style.position = "absolute", s.style.top = o.y + "px", s.style.left = o.x + "px", s.style.minWidth = "2px", s.style.fieldSizing = "content", s.style.whiteSpace = "nowrap", s.style.height = t.height() + "px", s.style.fontSize = t.fontSize() + "px", s.style.border = "none", s.style.padding = "0px", s.style.margin = "0px", s.style.overflow = "hidden", s.style.background = "none", s.style.outline = "none", s.style.resize = "none", s.style.lineHeight = t.lineHeight().toString(), s.style.fontFamily = t.fontFamily(), s.style.transformOrigin = "left top", s.style.textAlign = t.align(), s.style.color = t.fill().toString();
|
|
1050
1050
|
const a = t.rotation();
|
|
1051
1051
|
let h = "";
|
|
1052
1052
|
a && (h += "rotateZ(" + a + "deg)"), s.style.transform = h + `scale(${t.getAbsoluteScale().x})`, s.focus();
|
|
1053
1053
|
const l = () => {
|
|
1054
|
-
this.core.off("viewport:change",
|
|
1054
|
+
this.core.off("viewport:change", m), s.parentNode?.removeChild(s), window.removeEventListener("click", d), window.removeEventListener("touchstart", d), t.show(), i.getTransformer().show(), i.getTransformer().forceUpdate();
|
|
1055
1055
|
};
|
|
1056
1056
|
s.addEventListener("keydown", function(u) {
|
|
1057
1057
|
if (u.key === "Escape") {
|
|
@@ -1063,7 +1063,7 @@ class Qn extends yt {
|
|
|
1063
1063
|
});
|
|
1064
1064
|
const d = (u) => {
|
|
1065
1065
|
u.target !== s && (t.text(s.value), l());
|
|
1066
|
-
},
|
|
1066
|
+
}, m = () => {
|
|
1067
1067
|
const u = t.getClientRect();
|
|
1068
1068
|
s.style.top = u.y + "px", s.style.left = u.x + "px";
|
|
1069
1069
|
const g = t.rotation();
|
|
@@ -1071,7 +1071,7 @@ class Qn extends yt {
|
|
|
1071
1071
|
g && (p += "rotateZ(" + g + "deg)"), s.style.transform = p + `scale(${t.getAbsoluteScale().x})`;
|
|
1072
1072
|
};
|
|
1073
1073
|
setTimeout(() => {
|
|
1074
|
-
this.core.on("viewport:change",
|
|
1074
|
+
this.core.on("viewport:change", m), window.addEventListener("click", d), window.addEventListener("touchstart", d);
|
|
1075
1075
|
});
|
|
1076
1076
|
});
|
|
1077
1077
|
this.core = t, this.config = Qe(i, this.core.getTheme()), this.element = this.createElement(), this.rect = new I.Rect(this.config), Ct(this.element, this), this.isDraft = o, _(this, ce, yi).call(this), setTimeout(() => {
|
|
@@ -1134,7 +1134,7 @@ var wt, ht, de, Lt, Dt, Bt, Vt, ge, vi;
|
|
|
1134
1134
|
class to extends yt {
|
|
1135
1135
|
constructor(t, i, o = !1) {
|
|
1136
1136
|
super();
|
|
1137
|
-
|
|
1137
|
+
f(this, ge);
|
|
1138
1138
|
C(this, "core");
|
|
1139
1139
|
C(this, "config");
|
|
1140
1140
|
C(this, "element");
|
|
@@ -1163,7 +1163,7 @@ class to extends yt {
|
|
|
1163
1163
|
window.addEventListener("click", r(this, Vt));
|
|
1164
1164
|
}), window.addEventListener("keydown", r(this, Bt));
|
|
1165
1165
|
});
|
|
1166
|
-
|
|
1166
|
+
f(this, wt, async () => {
|
|
1167
1167
|
const t = this.htmlEditorElement.getBoundingClientRect();
|
|
1168
1168
|
if (t.width === 0 || t.height === 0)
|
|
1169
1169
|
return;
|
|
@@ -1190,13 +1190,15 @@ class to extends yt {
|
|
|
1190
1190
|
C(this, "detachEditor", () => {
|
|
1191
1191
|
this.editor && (this.htmlElement.id = "", this.htmlEditorElement.innerHTML = this.editor.getHTML(), this.config.$_htmlContent = this.editor.getHTML(), this.editor.commands.blur(), this.htmlElement.style.pointerEvents = "none", this.element.listening(!0), this.core.isEditingText = !1, this.core._unregisterTextEditor(), window.removeEventListener("keydown", r(this, Bt)), window.removeEventListener("click", r(this, Vt)), this.editor.destroy(), this.editor = void 0, r(this, wt).call(this).then(() => {
|
|
1192
1192
|
this.htmlElement.style.transition = "opacity 0.1s", this.htmlElement.style.opacity = "0", this.element.opacity(1);
|
|
1193
|
+
}).finally(() => {
|
|
1194
|
+
this.syncConfigFromElement(), this.core._rebuildStateAfterNodeChange(this, !1);
|
|
1193
1195
|
}));
|
|
1194
1196
|
});
|
|
1195
|
-
|
|
1197
|
+
f(this, ht, () => {
|
|
1196
1198
|
const t = this.element.getClientRect();
|
|
1197
1199
|
this.htmlElement.style.left = `${t.x}px`, this.htmlElement.style.top = `${t.y}px`, this.config.lockX ? this.htmlEditorElement.style.width = `${this.element.width() / this.config.htmlScale * this.config.scaleWhenCreate}px` : this.htmlEditorElement.style.width = "max-content", this.htmlEditorElement.style.transform = `scale(${this.config.htmlScale})`;
|
|
1198
1200
|
});
|
|
1199
|
-
|
|
1201
|
+
f(this, de, () => {
|
|
1200
1202
|
this.resizeObserver = new ResizeObserver((t) => {
|
|
1201
1203
|
for (const i of t) {
|
|
1202
1204
|
let o = !1;
|
|
@@ -1207,22 +1209,22 @@ class to extends yt {
|
|
|
1207
1209
|
}
|
|
1208
1210
|
}), this.resizeObserver.observe(this.htmlEditorElement);
|
|
1209
1211
|
});
|
|
1210
|
-
|
|
1212
|
+
f(this, Lt, (t) => {
|
|
1211
1213
|
const i = t === "select";
|
|
1212
1214
|
this.element.listening(this.config.$_listening ?? i);
|
|
1213
1215
|
});
|
|
1214
|
-
|
|
1216
|
+
f(this, Dt, (t) => {
|
|
1215
1217
|
const i = this.element.getClientRect();
|
|
1216
1218
|
this.htmlElement.style.left = `${i.x}px`, this.htmlElement.style.top = `${i.y}px`, this.htmlElement.style.transform = `scale(${this.core.getState().viewport.scale / this.config.scaleWhenCreate})`;
|
|
1217
1219
|
});
|
|
1218
|
-
|
|
1220
|
+
f(this, Bt, (t) => {
|
|
1219
1221
|
t.key === "Escape" && this.detachEditor();
|
|
1220
1222
|
});
|
|
1221
|
-
|
|
1223
|
+
f(this, Vt, (t) => {
|
|
1222
1224
|
const i = t.target;
|
|
1223
1225
|
this.htmlElement.contains(i) || this.detachEditor();
|
|
1224
1226
|
});
|
|
1225
|
-
this.core = t, this.config = ti(i, this.core.getTheme()), this.config.scaleWhenCreate = this.config.scaleWhenCreate || this.core.getState().viewport.scale || 1, this.config.htmlScale = this.config.htmlScale || 1, this.element = this.createElement(), Ct(this.element, this), this.isDraft = o, this.htmlElement = document.createElement("div"), this.htmlElement.style.position = "absolute", this.htmlElement.style.pointerEvents = "none", this.htmlElement.style.overflowWrap = "break-word", this.htmlElement.style.transformOrigin = "top left", this.htmlElement.style.opacity = "0", this.htmlElement.style.transition = "opacity 0.1s", this.htmlEditorElement = document.createElement("div"), this.htmlEditorElement.style.transformOrigin = "top left", this.htmlEditorElement.innerHTML = this.config.$_htmlContent || "", this.htmlElement.appendChild(this.htmlEditorElement), this.core.getStage().content.appendChild(this.htmlElement), r(this, de).call(this), _(this, ge, vi).call(this), setTimeout(() => {
|
|
1227
|
+
this.core = t, this.config = ti(i, this.core.getTheme()), this.config.scaleWhenCreate = this.config.scaleWhenCreate || this.core.getState().viewport.scale || 1, this.config.htmlScale = this.config.htmlScale || 1, this.element = this.createElement(), Ct(this.element, this), this.isDraft = o, this.htmlElement = document.createElement("div"), this.htmlElement.style.position = "absolute", this.htmlElement.style.pointerEvents = "none", this.htmlElement.style.overflowWrap = "break-word", this.htmlElement.style.transformOrigin = "top left", this.htmlElement.style.opacity = "0", this.htmlElement.style.transition = "opacity 0.1s", this.htmlEditorElement = document.createElement("div"), this.htmlEditorElement.style.transformOrigin = "top left", this.htmlEditorElement.style.width = "max-content", this.htmlEditorElement.innerHTML = this.config.$_htmlContent || "", this.htmlElement.appendChild(this.htmlEditorElement), this.core.getStage().content.appendChild(this.htmlElement), r(this, de).call(this), _(this, ge, vi).call(this), setTimeout(() => {
|
|
1226
1228
|
r(this, ht).call(this), this.htmlElement.style.transform = `scale(${this.core.getState().viewport.scale / this.config.scaleWhenCreate})`, r(this, wt).call(this);
|
|
1227
1229
|
});
|
|
1228
1230
|
}
|
|
@@ -1255,7 +1257,7 @@ class to extends yt {
|
|
|
1255
1257
|
...t
|
|
1256
1258
|
},
|
|
1257
1259
|
this.core.getTheme()
|
|
1258
|
-
), this.getElement().setAttrs(this.config), r(this, ht).call(this);
|
|
1260
|
+
), console.log(this.config), delete this.config.image, this.getElement().setAttrs(this.config), r(this, ht).call(this);
|
|
1259
1261
|
}
|
|
1260
1262
|
/**
|
|
1261
1263
|
* 销毁
|
|
@@ -1270,7 +1272,7 @@ wt = new WeakMap(), ht = new WeakMap(), de = new WeakMap(), Lt = new WeakMap(),
|
|
|
1270
1272
|
vi = function() {
|
|
1271
1273
|
const t = this.getElement();
|
|
1272
1274
|
this.core.on("toolType:change", r(this, Lt)), this.core.on("viewport:change", r(this, Dt)), t.on("transformstart", () => {
|
|
1273
|
-
this.htmlElement.style.
|
|
1275
|
+
this.htmlElement.style.opacity = "1", this.element.opacity(0);
|
|
1274
1276
|
}), t.on("transform", (i) => {
|
|
1275
1277
|
const o = this.core.getTransformer().getActiveAnchor();
|
|
1276
1278
|
if (o === "middle-left" || o === "middle-right") {
|
|
@@ -1279,7 +1281,8 @@ vi = function() {
|
|
|
1279
1281
|
}
|
|
1280
1282
|
t.width(t.width() * t.scaleX()), t.height(t.height() * t.scaleY()), this.config.htmlScale = this.config.htmlScale * t.scaleX(), t.setAttr("htmlScale", this.config.htmlScale), t.scale({ x: 1, y: 1 }), r(this, ht).call(this);
|
|
1281
1283
|
}), t.on("transformend", (i) => {
|
|
1282
|
-
|
|
1284
|
+
r(this, wt).call(this).finally(() => {
|
|
1285
|
+
this.syncConfigFromElement(), this.core._rebuildStateAfterNodeChange(this, !0);
|
|
1283
1286
|
});
|
|
1284
1287
|
}), t.on("dragmove", () => {
|
|
1285
1288
|
r(this, ht).call(this);
|
|
@@ -1293,7 +1296,7 @@ var ft, we, Ot, Pt, Ci;
|
|
|
1293
1296
|
class eo extends yt {
|
|
1294
1297
|
constructor(t, i, o = !1) {
|
|
1295
1298
|
super();
|
|
1296
|
-
|
|
1299
|
+
f(this, ft);
|
|
1297
1300
|
C(this, "core");
|
|
1298
1301
|
C(this, "config");
|
|
1299
1302
|
C(this, "element");
|
|
@@ -1301,11 +1304,11 @@ class eo extends yt {
|
|
|
1301
1304
|
C(this, "imgCover");
|
|
1302
1305
|
C(this, "playIcon");
|
|
1303
1306
|
C(this, "isDraft");
|
|
1304
|
-
|
|
1307
|
+
f(this, Ot, (t) => {
|
|
1305
1308
|
const i = t === "select";
|
|
1306
1309
|
this.element.listening(this.config.$_listening ?? i);
|
|
1307
1310
|
});
|
|
1308
|
-
|
|
1311
|
+
f(this, Pt, () => {
|
|
1309
1312
|
this.getElement().getLayer() && this.core._rebuildStateAfterNodeChange([this], !0);
|
|
1310
1313
|
});
|
|
1311
1314
|
this.core = t, this.config = qe(i, this.core.getTheme());
|
|
@@ -1523,20 +1526,20 @@ class so extends zn {
|
|
|
1523
1526
|
}
|
|
1524
1527
|
};
|
|
1525
1528
|
super(s);
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1529
|
+
f(this, O);
|
|
1530
|
+
f(this, Et);
|
|
1531
|
+
f(this, H);
|
|
1532
|
+
f(this, G);
|
|
1533
|
+
f(this, Q);
|
|
1534
|
+
f(this, F, null);
|
|
1535
|
+
f(this, St);
|
|
1536
|
+
f(this, z, null);
|
|
1537
|
+
f(this, W, null);
|
|
1535
1538
|
/** 节点映射,方便快速查找 */
|
|
1536
|
-
|
|
1537
|
-
|
|
1539
|
+
f(this, it, /* @__PURE__ */ new Map());
|
|
1540
|
+
f(this, ct, null);
|
|
1538
1541
|
C(this, "isEditingText", !1);
|
|
1539
|
-
|
|
1542
|
+
f(this, ue, (t) => {
|
|
1540
1543
|
(t.key === "Delete" || t.key === "Backspace") && (t.stopPropagation(), this.deleteSelectedNodes());
|
|
1541
1544
|
});
|
|
1542
1545
|
b(this, Et, i?.theme ?? ci), b(this, St, t), b(this, H, new Zn(this, {
|
|
@@ -1676,7 +1679,7 @@ class so extends zn {
|
|
|
1676
1679
|
a.forEach((v) => {
|
|
1677
1680
|
v.$_type === "image-marker" && typeof v.$_markerNumber == "number" && (h = Math.max(h, v.$_markerNumber));
|
|
1678
1681
|
});
|
|
1679
|
-
const l = (i.x - s.x) / s.width, d = (i.y - s.y) / s.height,
|
|
1682
|
+
const l = (i.x - s.x) / s.width, d = (i.y - s.y) / s.height, m = (o.x - s.x) / s.width, u = (o.y - s.y) / s.height, g = Math.min(i.x, o.x), p = Math.min(i.y, o.y), x = Math.abs(o.x - i.x), y = Math.abs(o.y - i.y), N = {
|
|
1680
1683
|
id: _t(),
|
|
1681
1684
|
$_type: "image-marker",
|
|
1682
1685
|
x: g,
|
|
@@ -1693,7 +1696,7 @@ class so extends zn {
|
|
|
1693
1696
|
ratioY: Math.max(0, Math.min(1, d))
|
|
1694
1697
|
},
|
|
1695
1698
|
end: {
|
|
1696
|
-
ratioX: Math.max(0, Math.min(1,
|
|
1699
|
+
ratioX: Math.max(0, Math.min(1, m)),
|
|
1697
1700
|
ratioY: Math.max(0, Math.min(1, u))
|
|
1698
1701
|
}
|
|
1699
1702
|
}
|
|
@@ -1709,8 +1712,8 @@ class so extends zn {
|
|
|
1709
1712
|
(h) => !h.name().includes("imageMarker")
|
|
1710
1713
|
).slice().sort((h, l) => l.zIndex() - h.zIndex());
|
|
1711
1714
|
for (const h of a) {
|
|
1712
|
-
const l = h.x(), d = h.y(),
|
|
1713
|
-
if (t.x >= l && t.x <= l +
|
|
1715
|
+
const l = h.x(), d = h.y(), m = h.width(), u = h.height();
|
|
1716
|
+
if (t.x >= l && t.x <= l + m && t.y >= d && t.y <= d + u)
|
|
1714
1717
|
return h.getClassName() === "Image" ? h : null;
|
|
1715
1718
|
}
|
|
1716
1719
|
return null;
|
|
@@ -1769,12 +1772,12 @@ class so extends zn {
|
|
|
1769
1772
|
l.forEach((y) => {
|
|
1770
1773
|
y.$_type === "image-marker" && typeof y.$_markerNumber == "number" && (d = Math.max(d, y.$_markerNumber));
|
|
1771
1774
|
});
|
|
1772
|
-
const
|
|
1775
|
+
const m = (a.x - s.x) / s.width, u = (a.y - s.y) / s.height, g = (h.x - s.x) / s.width, p = (h.y - s.y) / s.height, x = {
|
|
1773
1776
|
...i,
|
|
1774
1777
|
$_markerNumber: d + 1,
|
|
1775
1778
|
$_relativeBox: {
|
|
1776
1779
|
start: {
|
|
1777
|
-
ratioX: Math.max(0, Math.min(1,
|
|
1780
|
+
ratioX: Math.max(0, Math.min(1, m)),
|
|
1778
1781
|
ratioY: Math.max(0, Math.min(1, u))
|
|
1779
1782
|
},
|
|
1780
1783
|
end: {
|
|
@@ -1966,9 +1969,9 @@ bi = function() {
|
|
|
1966
1969
|
wi = function() {
|
|
1967
1970
|
b(this, ct, new ResizeObserver((t) => {
|
|
1968
1971
|
for (const i of t) {
|
|
1969
|
-
const { width: o, height: s } = i.contentRect, a = this.getStage(), h = this.getState().viewport, l = a.width(), d = a.height(),
|
|
1972
|
+
const { width: o, height: s } = i.contentRect, a = this.getStage(), h = this.getState().viewport, l = a.width(), d = a.height(), m = h.x + l / 2, u = h.y + d / 2;
|
|
1970
1973
|
a.width(o), a.height(s);
|
|
1971
|
-
const g =
|
|
1974
|
+
const g = m - o / 2, p = u - s / 2;
|
|
1972
1975
|
this._updateViewport(
|
|
1973
1976
|
{
|
|
1974
1977
|
x: g,
|
|
@@ -1982,10 +1985,23 @@ wi = function() {
|
|
|
1982
1985
|
* 根据canvas节点映射重建 state.nodes
|
|
1983
1986
|
*/
|
|
1984
1987
|
Ee = function(t) {
|
|
1985
|
-
const i =
|
|
1986
|
-
|
|
1988
|
+
const i = this.getState().nodes || [], o = /* @__PURE__ */ new Map();
|
|
1989
|
+
i.forEach((d, m) => {
|
|
1990
|
+
o.set(d.id, m);
|
|
1991
|
+
});
|
|
1992
|
+
const s = Array.from(r(this, it).values()).map(
|
|
1993
|
+
(d) => d.getConfig()
|
|
1994
|
+
), a = [], h = [];
|
|
1995
|
+
s.forEach((d) => {
|
|
1996
|
+
o.has(d.id) ? a.push(d) : h.push(d);
|
|
1997
|
+
}), a.sort((d, m) => {
|
|
1998
|
+
const u = o.get(d.id) ?? 0, g = o.get(m.id) ?? 0;
|
|
1999
|
+
return u - g;
|
|
2000
|
+
});
|
|
2001
|
+
const l = {
|
|
2002
|
+
nodes: [...a, ...h]
|
|
1987
2003
|
};
|
|
1988
|
-
this._updateState(
|
|
2004
|
+
this._updateState(l, t);
|
|
1989
2005
|
}, /**
|
|
1990
2006
|
* 更新 state.nodes
|
|
1991
2007
|
*/
|
|
@@ -2121,7 +2137,7 @@ class ro extends so {
|
|
|
2121
2137
|
a.add(p);
|
|
2122
2138
|
}
|
|
2123
2139
|
});
|
|
2124
|
-
const d = a.getClientRect(),
|
|
2140
|
+
const d = a.getClientRect(), m = a.toDataURL({
|
|
2125
2141
|
x: d.x,
|
|
2126
2142
|
y: d.y,
|
|
2127
2143
|
width: d.width,
|
|
@@ -2130,7 +2146,7 @@ class ro extends so {
|
|
|
2130
2146
|
mimeType: t?.mimeType ?? "image/png",
|
|
2131
2147
|
quality: t?.quality ?? 1
|
|
2132
2148
|
});
|
|
2133
|
-
return a.destroy(),
|
|
2149
|
+
return a.destroy(), m;
|
|
2134
2150
|
}
|
|
2135
2151
|
/**
|
|
2136
2152
|
* 删除当前选中的节点
|
|
@@ -2229,8 +2245,8 @@ class ro extends so {
|
|
|
2229
2245
|
if ((this.getState().nodes || []).length === 0) return;
|
|
2230
2246
|
const i = e?.padding ?? 50, o = e?.scale === !0, s = e?.nodeIds;
|
|
2231
2247
|
let a = 1 / 0, h = 1 / 0, l = -1 / 0, d = -1 / 0;
|
|
2232
|
-
const
|
|
2233
|
-
if (
|
|
2248
|
+
const m = this.getMainLayer(), u = this.getState().selectedNodeIds || [], g = s && s.length > 0, p = !g && u.length > 0, x = g ? s : p ? u : null;
|
|
2249
|
+
if (m.children.forEach((P) => {
|
|
2234
2250
|
if (P.visible() && P.getClassName() !== "Transformer" && P.hasName(T.selectable)) {
|
|
2235
2251
|
if (x) {
|
|
2236
2252
|
const at = P.id();
|
|
@@ -2347,12 +2363,12 @@ function lo({
|
|
|
2347
2363
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2348
2364
|
"aria-hidden": "true",
|
|
2349
2365
|
children: [
|
|
2350
|
-
/* @__PURE__ */ c("defs", { children: oi.map(({ min: l, mid: d, step:
|
|
2351
|
-
const g =
|
|
2366
|
+
/* @__PURE__ */ c("defs", { children: oi.map(({ min: l, mid: d, step: m }, u) => {
|
|
2367
|
+
const g = m * i * h, p = 0.5 + s * h, x = 0.5 + a * h, y = p > 0 ? p % g : g + p % g, N = x > 0 ? x % g : g + x % g, v = h < d ? ao(h, [l, d], [0, 1]) : 1;
|
|
2352
2368
|
return /* @__PURE__ */ c(
|
|
2353
2369
|
"pattern",
|
|
2354
2370
|
{
|
|
2355
|
-
id: `grid_${
|
|
2371
|
+
id: `grid_${m}`,
|
|
2356
2372
|
width: g,
|
|
2357
2373
|
height: g,
|
|
2358
2374
|
patternUnits: "userSpaceOnUse",
|
|
@@ -2431,7 +2447,7 @@ function go({ api: n }) {
|
|
|
2431
2447
|
});
|
|
2432
2448
|
}, [t, n]);
|
|
2433
2449
|
const i = (l) => {
|
|
2434
|
-
const d = n.getStage().width() / 2,
|
|
2450
|
+
const d = n.getStage().width() / 2, m = n.getStage().height() / 2, u = (d - e.x) / e.scale, g = (m - e.y) / e.scale, p = d - u * l, x = m - g * l;
|
|
2435
2451
|
n.updateViewport({ x: p, y: x, scale: l });
|
|
2436
2452
|
}, o = () => {
|
|
2437
2453
|
const l = Math.min(e.scale * 1.2, 5);
|
|
@@ -2718,7 +2734,7 @@ function yo({
|
|
|
2718
2734
|
delay: o = 600,
|
|
2719
2735
|
closeDelay: s = 0
|
|
2720
2736
|
} = {}) {
|
|
2721
|
-
const [a, h] = R(n), l = t ?? a, d = i ?? h,
|
|
2737
|
+
const [a, h] = R(n), l = t ?? a, d = i ?? h, m = $n({
|
|
2722
2738
|
placement: e,
|
|
2723
2739
|
open: l,
|
|
2724
2740
|
onOpenChange: d,
|
|
@@ -2732,7 +2748,7 @@ function yo({
|
|
|
2732
2748
|
}),
|
|
2733
2749
|
Hn({ padding: 4 })
|
|
2734
2750
|
]
|
|
2735
|
-
}), u =
|
|
2751
|
+
}), u = m.context, g = Dn(u, {
|
|
2736
2752
|
mouseOnly: !0,
|
|
2737
2753
|
move: !1,
|
|
2738
2754
|
restMs: o,
|
|
@@ -2748,9 +2764,9 @@ function yo({
|
|
|
2748
2764
|
open: l,
|
|
2749
2765
|
setOpen: d,
|
|
2750
2766
|
...N,
|
|
2751
|
-
...
|
|
2767
|
+
...m
|
|
2752
2768
|
}),
|
|
2753
|
-
[l, d, N,
|
|
2769
|
+
[l, d, N, m]
|
|
2754
2770
|
);
|
|
2755
2771
|
}
|
|
2756
2772
|
const Ne = sn(null);
|
|
@@ -2931,7 +2947,7 @@ const Tt = $(
|
|
|
2931
2947
|
children: h,
|
|
2932
2948
|
...l
|
|
2933
2949
|
}, d) => {
|
|
2934
|
-
const { editor:
|
|
2950
|
+
const { editor: m } = dt(n), {
|
|
2935
2951
|
isVisible: u,
|
|
2936
2952
|
handleMark: g,
|
|
2937
2953
|
label: p,
|
|
@@ -2940,7 +2956,7 @@ const Tt = $(
|
|
|
2940
2956
|
Icon: N,
|
|
2941
2957
|
shortcutKeys: v
|
|
2942
2958
|
} = No({
|
|
2943
|
-
editor:
|
|
2959
|
+
editor: m,
|
|
2944
2960
|
type: e,
|
|
2945
2961
|
hideWhenUnavailable: i,
|
|
2946
2962
|
onToggled: o
|
|
@@ -3238,7 +3254,7 @@ function No(n) {
|
|
|
3238
3254
|
s.off("selectionUpdate", u);
|
|
3239
3255
|
};
|
|
3240
3256
|
}, [s, t, i]);
|
|
3241
|
-
const
|
|
3257
|
+
const m = K(() => {
|
|
3242
3258
|
if (!s) return !1;
|
|
3243
3259
|
const u = wo(s, t);
|
|
3244
3260
|
return u && o?.(), u;
|
|
@@ -3246,7 +3262,7 @@ function No(n) {
|
|
|
3246
3262
|
return {
|
|
3247
3263
|
isVisible: a,
|
|
3248
3264
|
isActive: d,
|
|
3249
|
-
handleMark:
|
|
3265
|
+
handleMark: m,
|
|
3250
3266
|
canToggle: l,
|
|
3251
3267
|
label: So(t),
|
|
3252
3268
|
shortcutKeys: Li[t],
|
|
@@ -3267,7 +3283,7 @@ function Di({
|
|
|
3267
3283
|
h ? 0 : -1
|
|
3268
3284
|
);
|
|
3269
3285
|
return V(() => {
|
|
3270
|
-
const
|
|
3286
|
+
const m = (g) => {
|
|
3271
3287
|
if (!i.length) return !1;
|
|
3272
3288
|
const p = () => d((y) => y === -1 ? 0 : (y + 1) % i.length), x = () => d((y) => y === -1 ? i.length - 1 : (y - 1 + i.length) % i.length);
|
|
3273
3289
|
switch (g.key) {
|
|
@@ -3295,10 +3311,10 @@ function Di({
|
|
|
3295
3311
|
};
|
|
3296
3312
|
let u = null;
|
|
3297
3313
|
if (n ? u = n.view.dom : e?.current && (u = e.current), u)
|
|
3298
|
-
return u.addEventListener("keydown",
|
|
3314
|
+
return u.addEventListener("keydown", m, !0), () => {
|
|
3299
3315
|
u?.removeEventListener(
|
|
3300
3316
|
"keydown",
|
|
3301
|
-
|
|
3317
|
+
m,
|
|
3302
3318
|
!0
|
|
3303
3319
|
);
|
|
3304
3320
|
};
|
|
@@ -3479,7 +3495,7 @@ const Pi = $(
|
|
|
3479
3495
|
onClick: h,
|
|
3480
3496
|
children: l,
|
|
3481
3497
|
style: d,
|
|
3482
|
-
useColorValue:
|
|
3498
|
+
useColorValue: m = !1,
|
|
3483
3499
|
...u
|
|
3484
3500
|
}, g) => {
|
|
3485
3501
|
const { editor: p } = dt(n), {
|
|
@@ -3492,7 +3508,7 @@ const Pi = $(
|
|
|
3492
3508
|
} = Be({
|
|
3493
3509
|
editor: p,
|
|
3494
3510
|
highlightColor: e,
|
|
3495
|
-
useColorValue:
|
|
3511
|
+
useColorValue: m,
|
|
3496
3512
|
label: t || `Toggle highlight (${e})`,
|
|
3497
3513
|
hideWhenUnavailable: i,
|
|
3498
3514
|
mode: o,
|
|
@@ -3665,7 +3681,7 @@ function Be(n) {
|
|
|
3665
3681
|
mode: s = "mark",
|
|
3666
3682
|
useColorValue: a = !1,
|
|
3667
3683
|
onApplied: h
|
|
3668
|
-
} = n, { editor: l } = dt(e), d = ye(), [
|
|
3684
|
+
} = n, { editor: l } = dt(e), d = ye(), [m, u] = R(!0), g = De(l, s), p = i && ko(i, a), x = Ro(l, p, s);
|
|
3669
3685
|
V(() => {
|
|
3670
3686
|
if (!l) return;
|
|
3671
3687
|
const v = () => {
|
|
@@ -3703,12 +3719,12 @@ function Be(n) {
|
|
|
3703
3719
|
v.preventDefault(), y();
|
|
3704
3720
|
},
|
|
3705
3721
|
{
|
|
3706
|
-
enabled:
|
|
3722
|
+
enabled: m && g,
|
|
3707
3723
|
enableOnContentEditable: !d,
|
|
3708
3724
|
enableOnFormTags: !0
|
|
3709
3725
|
}
|
|
3710
3726
|
), {
|
|
3711
|
-
isVisible:
|
|
3727
|
+
isVisible: m,
|
|
3712
3728
|
isActive: x,
|
|
3713
3729
|
handleColorHighlight: y,
|
|
3714
3730
|
handleRemoveHighlight: N,
|
|
@@ -3816,7 +3832,7 @@ function Ho({
|
|
|
3816
3832
|
onApplied: o,
|
|
3817
3833
|
...s
|
|
3818
3834
|
}) {
|
|
3819
|
-
const { editor: a } = dt(n), [h, l] = R(!1), { isVisible: d, canColorHighlight:
|
|
3835
|
+
const { editor: a } = dt(n), [h, l] = R(!1), { isVisible: d, canColorHighlight: m, isActive: u, label: g, Icon: p } = Be({
|
|
3820
3836
|
editor: a,
|
|
3821
3837
|
hideWhenUnavailable: t,
|
|
3822
3838
|
onApplied: o
|
|
@@ -3825,9 +3841,9 @@ function Ho({
|
|
|
3825
3841
|
/* @__PURE__ */ c(Vi, { asChild: !0, children: /* @__PURE__ */ c(
|
|
3826
3842
|
zi,
|
|
3827
3843
|
{
|
|
3828
|
-
disabled: !
|
|
3844
|
+
disabled: !m,
|
|
3829
3845
|
"data-active-state": u ? "on" : "off",
|
|
3830
|
-
"data-disabled": !
|
|
3846
|
+
"data-disabled": !m,
|
|
3831
3847
|
"aria-pressed": u,
|
|
3832
3848
|
"aria-label": g,
|
|
3833
3849
|
tooltip: g,
|
|
@@ -3870,7 +3886,7 @@ const Wi = $(
|
|
|
3870
3886
|
children: h,
|
|
3871
3887
|
style: l,
|
|
3872
3888
|
useColorValue: d = !1,
|
|
3873
|
-
...
|
|
3889
|
+
...m
|
|
3874
3890
|
}, u) => {
|
|
3875
3891
|
const { editor: g } = dt(n), {
|
|
3876
3892
|
isVisible: p,
|
|
@@ -3914,7 +3930,7 @@ const Wi = $(
|
|
|
3914
3930
|
onClick: st,
|
|
3915
3931
|
ref: u,
|
|
3916
3932
|
style: X,
|
|
3917
|
-
...
|
|
3933
|
+
...m,
|
|
3918
3934
|
children: [
|
|
3919
3935
|
h || /* @__PURE__ */ c(
|
|
3920
3936
|
"span",
|
|
@@ -4007,7 +4023,7 @@ function Pe({
|
|
|
4007
4023
|
useColorValue: o = !1,
|
|
4008
4024
|
onApplied: s
|
|
4009
4025
|
} = {}) {
|
|
4010
|
-
const { editor: a } = dt(n), h = ye(), [l, d] = R(!0), [
|
|
4026
|
+
const { editor: a } = dt(n), h = ye(), [l, d] = R(!0), [m, u] = R(!1), g = Oe(a);
|
|
4011
4027
|
V(() => {
|
|
4012
4028
|
if (!a) {
|
|
4013
4029
|
d(!1);
|
|
@@ -4047,7 +4063,7 @@ function Pe({
|
|
|
4047
4063
|
), {
|
|
4048
4064
|
isVisible: l,
|
|
4049
4065
|
canTextColor: g,
|
|
4050
|
-
isActive:
|
|
4066
|
+
isActive: m,
|
|
4051
4067
|
handleTextColor: p,
|
|
4052
4068
|
handleRemoveTextColor: x,
|
|
4053
4069
|
label: t,
|
|
@@ -4153,7 +4169,7 @@ function Po({
|
|
|
4153
4169
|
onApplied: o,
|
|
4154
4170
|
...s
|
|
4155
4171
|
}) {
|
|
4156
|
-
const { editor: a } = dt(n), [h, l] = R(!1), { isVisible: d, canTextColor:
|
|
4172
|
+
const { editor: a } = dt(n), [h, l] = R(!1), { isVisible: d, canTextColor: m, isActive: u, label: g, Icon: p } = Pe({
|
|
4157
4173
|
editor: a,
|
|
4158
4174
|
hideWhenUnavailable: t,
|
|
4159
4175
|
onApplied: o
|
|
@@ -4162,9 +4178,9 @@ function Po({
|
|
|
4162
4178
|
/* @__PURE__ */ c(Vi, { asChild: !0, children: /* @__PURE__ */ c(
|
|
4163
4179
|
Gi,
|
|
4164
4180
|
{
|
|
4165
|
-
disabled: !
|
|
4181
|
+
disabled: !m,
|
|
4166
4182
|
"data-active-state": u ? "on" : "off",
|
|
4167
|
-
"data-disabled": !
|
|
4183
|
+
"data-disabled": !m,
|
|
4168
4184
|
"aria-pressed": u,
|
|
4169
4185
|
"aria-label": g,
|
|
4170
4186
|
tooltip: g,
|
|
@@ -4266,12 +4282,12 @@ function ys({ api: n }) {
|
|
|
4266
4282
|
const [e, t] = R(null), [i, o] = R(1), [s, a] = R(1);
|
|
4267
4283
|
return V(() => {
|
|
4268
4284
|
if (!n) return;
|
|
4269
|
-
const h = (
|
|
4270
|
-
t(
|
|
4285
|
+
const h = (m) => {
|
|
4286
|
+
t(m), o(n.getState().viewport.scale), a(m.scaleWhenCreate || 1);
|
|
4271
4287
|
}, l = () => {
|
|
4272
4288
|
t(null);
|
|
4273
|
-
}, d = (
|
|
4274
|
-
o(
|
|
4289
|
+
}, d = (m) => {
|
|
4290
|
+
o(m);
|
|
4275
4291
|
};
|
|
4276
4292
|
return n.on("texteditor:register", h), n.on("texteditor:unregister", l), n.on("viewport:scale:change", d), () => {
|
|
4277
4293
|
n.off("texteditor:register", h), n.off("texteditor:unregister", l), n.off("viewport:scale:change", d);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@8btc/whiteboard",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.20-alpha.
|
|
4
|
+
"version": "0.0.20-alpha.24",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.umd.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"konva": "^10.0.12",
|
|
59
59
|
"lucide-react": "^0.562.0",
|
|
60
60
|
"mitt": "^3.0.1",
|
|
61
|
+
"radix-ui": "^1.4.3",
|
|
61
62
|
"react": "^19.2.4",
|
|
62
63
|
"react-dom": "^19.2.4",
|
|
63
64
|
"react-hotkeys-hook": "^5.2.4",
|
|
@@ -68,6 +69,9 @@
|
|
|
68
69
|
"zustand": "^5.0.9"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
72
|
+
"@dnd-kit/core": "^6.3.1",
|
|
73
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
74
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
71
75
|
"@eslint/js": "^9.39.1",
|
|
72
76
|
"@tailwindcss/vite": "^4.1.18",
|
|
73
77
|
"@types/node": "^24.10.1",
|