x-print-designer 0.2.6 → 0.2.7

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.
@@ -17656,7 +17656,7 @@ const createI18nInstance = (initialLocale) => {
17656
17656
  });
17657
17657
  };
17658
17658
  const i18n = createI18nInstance();
17659
- const baseStyles = `*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-300: #93c5fd;--brand-400: #60a5fa;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--brand-800: #1e40af;--brand-900: #1e3a8a;--brand-950: #172554;--brand-500-alpha-10: rgb(59 130 246 / .1)}input[type=radio]{accent-color:var(--brand-600)}.theme-outline-hover:hover{outline:1px solid var(--brand-300)}.theme-hover-bg:hover{background-color:var(--brand-50)}.theme-hover-border:hover{border-color:var(--brand-500)}.theme-text{color:var(--brand-500)}.theme-text-hover:hover{color:var(--brand-700)}.theme-border{border-color:var(--brand-500)}.theme-border-strong{border-color:var(--brand-600)}.theme-border-hover{border-color:var(--brand-500)}.group:hover .theme-border-hover{border-color:var(--brand-400)}.theme-bg{background-color:var(--brand-500)}.theme-bg-strong{background-color:var(--brand-600)}.theme-bg-soft{background-color:#000000b3}.exporting .marker{display:none!important}.exporting,.previewing{overflow:hidden!important}html{color-scheme:light}.dark{color-scheme:dark}.dark body{background-color:#0f172a;color:#e5e7eb}.dark .bg-white{background-color:#1f2937!important}.dark .bg-gray-50{background-color:#111827!important}.dark :not(.canvas-scroll).bg-gray-100{background-color:#1f2937!important}.dark .canvas-scroll.bg-gray-100{background-color:#334155!important}.dark .hover\\\\:bg-gray-50:hover{background-color:#1f2937!important}.dark .hover\\\\:bg-gray-100:hover{background-color:#374151!important}.dark .bg-gray-200{background-color:#374151!important}.dark .hover\\:bg-gray-200:hover{background-color:#4b5563!important}.dark .hover\\:bg-blue-50:hover,.dark .theme-hover-bg:hover{background-color:color-mix(in srgb,var(--brand-500) 16%,transparent)!important}.dark .hover\\:border-blue-500:hover{border-color:#3b82f680!important}.dark .text-gray-800{color:#f3f4f6!important}.dark .text-gray-700{color:#e5e7eb!important}.dark .text-gray-600{color:#d1d5db!important}.dark .text-gray-500{color:#cbd5e1!important}.dark .text-gray-400{color:#9ca3af!important}.dark .text-gray-900{color:#f9fafb!important}.dark .border-gray-100{border-color:#1f2937!important}.dark .border-gray-200{border-color:#374151!important}.dark .border-gray-300{border-color:#4b5563!important}.dark select,.dark option{background-color:#1f2937;color:#e5e7eb}.dark .shadow-sm,.dark .shadow,.dark .shadow-xl,.dark .\\!shadow{box-shadow:0 1px 2px #0009,0 1px 1px #0006!important}.dark .print-page{color-scheme:light}.dark .print-page .bg-white{background-color:#fff!important}.dark .print-page .border-gray-100{border-color:#f3f4f6!important}.dark .print-page .border-gray-200{border-color:#e5e7eb!important}.dark .print-page .border-gray-300{border-color:#d1d5db!important}.dark .print-page .text-gray-500{color:#6b7280!important}.dark .print-page .text-gray-600{color:#4b5563!important}.dark .print-page .text-gray-700{color:#374151!important}.dark .print-page .text-gray-800{color:#1f2937!important}.dark .print-page .text-gray-900{color:#111827!important}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f3f4f6;border-radius:0}::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:0;border:2px solid #f3f4f6}::-webkit-scrollbar-corner{background:#f3f4f6}*{scrollbar-width:thin;scrollbar-color:#d1d5db #f3f4f6}.dark ::-webkit-scrollbar-track{background:#1f2937}.dark ::-webkit-scrollbar-thumb{background-color:#4b5563;border:2px solid #1f2937}.dark ::-webkit-scrollbar-thumb:hover{background-color:#6b7280}.dark *{scrollbar-color:#4b5563 #1f2937}.\\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-bottom-4{bottom:-1rem}.-left-2{left:-.5rem}.-left-3{left:-.75rem}.-left-4{left:-1rem}.-right-1{right:-.25rem}.-right-12{right:-3rem}.-right-3{right:-.75rem}.-right-5{right:-1.25rem}.-top-3{top:-.75rem}.-top-4{top:-1rem}.-top-6{top:-1.5rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\\/2{left:50%}.left-2{left:.5rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.right-\\[280px\\]{right:280px}.top-0{top:0}.top-1\\/2{top:50%}.top-2{top:.5rem}.top-6{top:1.5rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[-1\\]{z-index:-1}.z-\\[100000\\]{z-index:100000}.z-\\[10000\\]{z-index:10000}.z-\\[1000\\]{z-index:1000}.z-\\[100\\]{z-index:100}.z-\\[2000\\]{z-index:2000}.z-\\[2001\\]{z-index:2001}.z-\\[3000\\]{z-index:3000}.z-\\[99999\\]{z-index:99999}.z-\\[9999\\]{z-index:9999}.z-\\[999\\]{z-index:999}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-1\\.5{margin-left:-.375rem}.-mt-1\\.5{margin-top:-.375rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.box-content{box-sizing:content-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\\.5{height:.125rem}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\[1px\\]{height:1px}.h-\\[500px\\]{height:500px}.h-\\[56px\\]{height:56px}.h-\\[60px\\]{height:60px}.h-\\[80vh\\]{height:80vh}.h-\\[90vh\\]{height:90vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[300px\\]{max-height:300px}.max-h-\\[500px\\]{max-height:500px}.max-h-\\[90vh\\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-\\[120px\\]{min-height:120px}.min-h-\\[30px\\]{min-height:30px}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\\[240px\\]{width:240px}.w-\\[260px\\]{width:260px}.w-\\[380px\\]{width:380px}.w-\\[60vw\\]{width:60vw}.w-\\[640px\\]{width:640px}.w-\\[700px\\]{width:700px}.w-\\[90vw\\]{width:90vw}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-\\[160px\\]{min-width:160px}.min-w-\\[200px\\]{min-width:200px}.min-w-\\[320px\\]{min-width:320px}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[300px\\]{max-width:300px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x: 1.5;--tw-scale-y: 1.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-\\[ping_2\\.4s_ease-in-out_infinite\\]{animation:ping 2.4s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-se-resize{cursor:se-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-0\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\\[0\\.5px\\]{border-width:.5px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-blue-200{border-color:var(--brand-200)}.border-blue-500{border-color:var(--brand-500)}.border-blue-600{border-color:var(--brand-600)}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.\\!bg-blue-100{background-color:var(--brand-100)!important}.bg-black\\/20{background-color:#0003}.bg-black\\/50{background-color:#00000080}.bg-blue-100{background-color:var(--brand-100)}.bg-blue-200{background-color:var(--brand-200)}.bg-blue-400{background-color:var(--brand-400)}.bg-blue-50{background-color:var(--brand-50)}.bg-blue-500{background-color:var(--brand-500)}.bg-blue-600{background-color:var(--brand-600)}.bg-emerald-400\\/80{background-color:#34d399cc}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-900\\/20{background-color:#14532d33}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-900\\/20{background-color:#7c2d1233}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\\/80{background-color:#fffc}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-\\[url\\(\\'data\\:image\\/png\\;base64\\,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ\\+5wNisxL\\/\\/8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII\\=\\'\\)\\]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--tw-gradient-stops))}.from-black{--tw-gradient-from: #000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-300{--tw-gradient-from: #d1d5db var(--tw-gradient-from-position);--tw-gradient-to: rgb(209 213 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-current{--tw-gradient-to: currentColor var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\\[length\\:6px_6px\\]{background-size:6px 6px}.bg-repeat{background-repeat:repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pl-1{padding-left:.25rem}.pl-8{padding-left:2rem}.pr-3{padding-right:.75rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.leading-none{line-height:1}.tracking-normal{letter-spacing:0em}.tracking-wider{letter-spacing:.05em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-400{color:var(--brand-400)}.text-blue-500{color:var(--brand-500)}.text-blue-600{color:var(--brand-600)}.text-blue-700{color:var(--brand-700)}.text-blue-900{color:var(--brand-900)}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.\\!shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-blue-400{--tw-ring-color: var(--brand-400)}.ring-blue-500{--tw-ring-color: var(--brand-500)}.ring-red-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-gray-900{--tw-ring-offset-color: #111827}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\\[-moz-appearance\\:textfield\\]{-moz-appearance:textfield}.\\[appearance\\:textfield\\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.dark .hover\\:bg-gray-50:hover{background-color:#111827!important}.dark .hover\\:bg-gray-100:hover:not(.canvas-scroll){background-color:#1f2937!important}.dark .hover\\:bg-gray-100:hover.canvas-scroll{background-color:#334155!important}.dark .hover\\:bg-gray-200:hover{background-color:#374151!important}.dark .hover\\:text-gray-800:hover{color:#f3f4f6!important}.dark .hover\\:text-gray-700:hover{color:#e5e7eb!important}.dark .hover\\:text-gray-600:hover{color:#d1d5db!important}.dark .print-page .hover\\:text-gray-600:hover{color:#4b5563!important}.dark .print-page .hover\\:text-gray-700:hover{color:#374151!important}.dark .print-page .hover\\:text-gray-800:hover{color:#1f2937!important}.dark .disabled\\:bg-gray-50:disabled{background-color:#111827!important}.dark .disabled\\:bg-gray-100:disabled:not(.canvas-scroll){background-color:#1f2937!important}.dark .disabled\\:bg-gray-100:disabled.canvas-scroll{background-color:#334155!important}.dark .disabled\\:text-gray-500:disabled{color:#cbd5e1!important}.dark .disabled\\:text-gray-400:disabled{color:#9ca3af!important}.dark .disabled\\:border-gray-200:disabled{border-color:#374151!important}.dark .print-page .disabled\\:border-gray-200:disabled{border-color:#e5e7eb!important}.dark .print-page .disabled\\:text-gray-500:disabled{color:#6b7280!important}.dark .disabled\\:hover\\:bg-gray-100:hover:disabled:not(.canvas-scroll){background-color:#1f2937!important}.dark .disabled\\:hover\\:bg-gray-100:hover:disabled.canvas-scroll{background-color:#334155!important}.dark .dark\\:bg-gray-100:is(.dark *):not(.canvas-scroll){background-color:#1f2937!important}.dark .dark\\:bg-gray-100:is(.dark *).canvas-scroll{background-color:#334155!important}.dark .dark\\:text-gray-600:is(.dark *){color:#d1d5db!important}.dark .dark\\:text-gray-500:is(.dark *){color:#cbd5e1!important}.dark .dark\\:text-gray-400:is(.dark *){color:#9ca3af!important}.dark .print-page .dark\\:text-gray-500:is(.dark *){color:#6b7280!important}.dark .print-page .dark\\:text-gray-600:is(.dark *){color:#4b5563!important}.dark .dark\\:disabled\\:text-gray-600:disabled:is(.dark *){color:#d1d5db!important}.dark .dark\\:disabled\\:text-gray-400:disabled:is(.dark *){color:#9ca3af!important}.dark .print-page .dark\\:disabled\\:text-gray-600:disabled:is(.dark *){color:#4b5563!important}.first\\:border-0:first-child{border-width:0px}.first\\:pt-0:first-child{padding-top:0}.last\\:border-0:last-child{border-width:0px}.last\\:border-b-0:last-child{border-bottom-width:0px}.focus-within\\:border-blue-500:focus-within{border-color:var(--brand-500)}.focus-within\\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\\:ring-blue-500:focus-within{--tw-ring-color: var(--brand-500)}.hover\\:z-10:hover{z-index:10}.hover\\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:border-blue-400:hover{border-color:var(--brand-400)}.hover\\:border-blue-500:hover{border-color:var(--brand-500)}.hover\\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\\:border-pink-400:hover{--tw-border-opacity: 1;border-color:rgb(244 114 182 / var(--tw-border-opacity, 1))}.hover\\:bg-blue-100:hover{background-color:var(--brand-100)}.hover\\:bg-blue-300:hover{background-color:var(--brand-300)}.hover\\:bg-blue-400:hover{background-color:var(--brand-400)}.hover\\:bg-blue-50:hover{background-color:var(--brand-50)}.hover\\:bg-blue-600:hover{background-color:var(--brand-600)}.hover\\:bg-blue-700:hover{background-color:var(--brand-700)}.hover\\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-500:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.hover\\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\\:bg-orange-600:hover{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.hover\\:bg-pink-50:hover{--tw-bg-opacity: 1;background-color:rgb(253 242 248 / var(--tw-bg-opacity, 1))}.hover\\:bg-pink-600:hover{--tw-bg-opacity: 1;background-color:rgb(219 39 119 / var(--tw-bg-opacity, 1))}.hover\\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\\:bg-slate-300:hover{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.hover\\:text-blue-500:hover{color:var(--brand-500)}.hover\\:text-blue-600:hover{color:var(--brand-600)}.hover\\:text-blue-700:hover{color:var(--brand-700)}.hover\\:text-blue-800:hover{color:var(--brand-800)}.hover\\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\\:text-pink-600:hover{--tw-text-opacity: 1;color:rgb(219 39 119 / var(--tw-text-opacity, 1))}.hover\\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\\:text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:decoration-blue-600:hover{text-decoration-color:var(--brand-600)}.hover\\:opacity-100:hover{opacity:1}.hover\\:outline:hover{outline-style:solid}.hover\\:outline-1:hover{outline-width:1px}.hover\\:outline-blue-300:hover{outline-color:var(--brand-300)}.focus\\:border-blue-500:focus{border-color:var(--brand-500)}.focus\\:border-blue-600:focus{border-color:var(--brand-600)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-blue-500:focus{--tw-ring-color: var(--brand-500)}.focus\\:ring-blue-600:focus{--tw-ring-color: var(--brand-600)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:border-gray-200:disabled{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.disabled\\:bg-gray-100:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\\:bg-gray-400:disabled{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.disabled\\:bg-gray-50:disabled{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.disabled\\:text-gray-400:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.disabled\\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:hover\\:bg-blue-600:hover:disabled{background-color:var(--brand-600)}.disabled\\:hover\\:bg-gray-100:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\\:opacity-100{opacity:1}.dark\\:border-blue-800:is(.dark *){border-color:var(--brand-800)}.dark\\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\\:border-gray-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.dark\\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\\:border-yellow-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.dark\\:bg-black\\/40:is(.dark *){background-color:#0006}.dark\\:bg-blue-400:is(.dark *){background-color:var(--brand-400)}.dark\\:bg-blue-500:is(.dark *){background-color:var(--brand-500)}.dark\\:bg-blue-700:is(.dark *){background-color:var(--brand-700)}.dark\\:bg-blue-900:is(.dark *){background-color:var(--brand-900)}.dark\\:bg-blue-950:is(.dark *){background-color:var(--brand-950)}.dark\\:bg-gray-100:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-700\\/50:is(.dark *){background-color:#37415180}.dark\\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-800\\/50:is(.dark *){background-color:#1f293780}.dark\\:bg-gray-800\\/80:is(.dark *){background-color:#1f2937cc}.dark\\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\\:bg-green-900\\/20:is(.dark *){background-color:#14532d33}.dark\\:bg-indigo-900\\/30:is(.dark *){background-color:#312e814d}.dark\\:bg-orange-900\\/20:is(.dark *){background-color:#7c2d1233}.dark\\:bg-orange-900\\/30:is(.dark *){background-color:#7c2d124d}.dark\\:bg-purple-900\\/20:is(.dark *){background-color:#581c8733}.dark\\:bg-purple-900\\/30:is(.dark *){background-color:#581c874d}.dark\\:bg-red-900\\/30:is(.dark *){background-color:#7f1d1d4d}.dark\\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\\:bg-violet-900\\/30:is(.dark *){background-color:#4c1d954d}.dark\\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\\:text-blue-100:is(.dark *){color:var(--brand-100)}.dark\\:text-blue-400:is(.dark *){color:var(--brand-400)}.dark\\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\\:placeholder-gray-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\\:placeholder-gray-500:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\\:ring-blue-400:is(.dark *){--tw-ring-color: var(--brand-400)}.dark\\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color: #111827}.dark\\:hover\\:border-blue-400:hover:is(.dark *){border-color:var(--brand-400)}.dark\\:hover\\:border-gray-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\\:hover\\:bg-blue-400:hover:is(.dark *){background-color:var(--brand-400)}.dark\\:hover\\:bg-blue-600:hover:is(.dark *){background-color:var(--brand-600)}.dark\\:hover\\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-800\\/50:hover:is(.dark *){background-color:#1f293780}.dark\\:hover\\:bg-pink-900\\/20:hover:is(.dark *){background-color:#83184333}.dark\\:hover\\:bg-red-900\\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\\:hover\\:bg-red-900\\/50:hover:is(.dark *){background-color:#7f1d1d80}.dark\\:hover\\:bg-slate-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:text-blue-400:hover:is(.dark *){color:var(--brand-400)}.dark\\:hover\\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-pink-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-red-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\\:focus\\:border-blue-400:focus:is(.dark *){border-color:var(--brand-400)}.dark\\:disabled\\:border-gray-700:disabled:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\\:disabled\\:bg-gray-700:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:disabled\\:bg-gray-800:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:disabled\\:text-gray-400:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\\:disabled\\:text-gray-600:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-4::-moz-range-thumb{height:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-4::-moz-range-thumb{width:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:cursor-pointer::-moz-range-thumb{cursor:pointer}.\\[\\&\\:\\:-moz-range-thumb\\]\\:rounded-full::-moz-range-thumb{border-radius:9999px}.\\[\\&\\:\\:-moz-range-thumb\\]\\:border-none::-moz-range-thumb{border-style:none}.\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-blue-600::-moz-range-thumb{background-color:var(--brand-600)}.\\[\\&\\:\\:-moz-range-thumb\\]\\:transition-all::-moz-range-thumb{-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\[\\&\\:\\:-moz-range-thumb\\]\\:hover\\:scale-110:hover::-moz-range-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\\:\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-blue-500:is(.dark *)::-moz-range-thumb{background-color:var(--brand-500)}.\\[\\&\\:\\:-webkit-inner-spin-button\\]\\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-outer-spin-button\\]\\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-4::-webkit-slider-thumb{height:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-4::-webkit-slider-thumb{width:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-blue-600::-webkit-slider-thumb{background-color:var(--brand-600)}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:transition-all::-webkit-slider-thumb{-webkit-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:hover\\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\\:\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-blue-500:is(.dark *)::-webkit-slider-thumb{background-color:var(--brand-500)}`;
17659
+ const baseStyles = `*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-300: #93c5fd;--brand-400: #60a5fa;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--brand-800: #1e40af;--brand-900: #1e3a8a;--brand-950: #172554;--brand-500-alpha-10: rgb(59 130 246 / .1)}input[type=radio]{accent-color:var(--brand-600)}.theme-outline-hover:hover{outline:1px solid var(--brand-300)}.theme-hover-bg:hover{background-color:var(--brand-50)}.theme-hover-border:hover{border-color:var(--brand-500)}.theme-text{color:var(--brand-500)}.theme-text-hover:hover{color:var(--brand-700)}.theme-border{border-color:var(--brand-500)}.theme-border-strong{border-color:var(--brand-600)}.theme-border-hover{border-color:var(--brand-500)}.group:hover .theme-border-hover{border-color:var(--brand-400)}.theme-bg{background-color:var(--brand-500)}.theme-bg-strong{background-color:var(--brand-600)}.theme-bg-soft{background-color:#000000b3}.exporting .marker{display:none!important}.exporting,.previewing{overflow:hidden!important}html{color-scheme:light}.dark{color-scheme:dark}.dark body{background-color:#0f172a;color:#e5e7eb}.dark .bg-white{background-color:#1f2937!important}.dark .bg-gray-50{background-color:#111827!important}.dark :not(.canvas-scroll).bg-gray-100{background-color:#1f2937!important}.dark .canvas-scroll.bg-gray-100{background-color:#334155!important}.dark .hover\\\\:bg-gray-50:hover{background-color:#1f2937!important}.dark .hover\\\\:bg-gray-100:hover{background-color:#374151!important}.dark .bg-gray-200{background-color:#374151!important}.dark .hover\\:bg-gray-200:hover{background-color:#4b5563!important}.dark .hover\\:bg-blue-50:hover,.dark .theme-hover-bg:hover{background-color:color-mix(in srgb,var(--brand-500) 16%,transparent)!important}.dark .hover\\:border-blue-500:hover{border-color:#3b82f680!important}.dark .text-gray-800{color:#f3f4f6!important}.dark .text-gray-700{color:#e5e7eb!important}.dark .text-gray-600{color:#d1d5db!important}.dark .text-gray-500{color:#cbd5e1!important}.dark .text-gray-400{color:#9ca3af!important}.dark .text-gray-900{color:#f9fafb!important}.dark .border-gray-100{border-color:#1f2937!important}.dark .border-gray-200{border-color:#374151!important}.dark .border-gray-300{border-color:#4b5563!important}.dark select,.dark option{background-color:#1f2937;color:#e5e7eb}.dark .shadow-sm,.dark .shadow,.dark .shadow-xl,.dark .\\!shadow{box-shadow:0 1px 2px #0009,0 1px 1px #0006!important}.dark .print-page{color-scheme:light}.dark .print-page .bg-white{background-color:#fff!important}.dark .print-page .border-gray-100{border-color:#f3f4f6!important}.dark .print-page .border-gray-200{border-color:#e5e7eb!important}.dark .print-page .border-gray-300{border-color:#d1d5db!important}.dark .print-page .text-gray-500{color:#6b7280!important}.dark .print-page .text-gray-600{color:#4b5563!important}.dark .print-page .text-gray-700{color:#374151!important}.dark .print-page .text-gray-800{color:#1f2937!important}.dark .print-page .text-gray-900{color:#111827!important}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f3f4f6;border-radius:0}::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:0;border:2px solid #f3f4f6}::-webkit-scrollbar-corner{background:#f3f4f6}*{scrollbar-width:thin;scrollbar-color:#d1d5db #f3f4f6}.dark ::-webkit-scrollbar-track{background:#1f2937}.dark ::-webkit-scrollbar-thumb{background-color:#4b5563;border:2px solid #1f2937}.dark ::-webkit-scrollbar-thumb:hover{background-color:#6b7280}.dark *{scrollbar-color:#4b5563 #1f2937}.\\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-bottom-4{bottom:-1rem}.-left-2{left:-.5rem}.-left-3{left:-.75rem}.-left-4{left:-1rem}.-right-1{right:-.25rem}.-right-12{right:-3rem}.-right-3{right:-.75rem}.-right-5{right:-1.25rem}.-top-3{top:-.75rem}.-top-4{top:-1rem}.-top-6{top:-1.5rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\\/2{left:50%}.left-2{left:.5rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.right-\\[280px\\]{right:280px}.top-0{top:0}.top-1\\/2{top:50%}.top-2{top:.5rem}.top-6{top:1.5rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[-1\\]{z-index:-1}.z-\\[100000\\]{z-index:100000}.z-\\[10000\\]{z-index:10000}.z-\\[1000\\]{z-index:1000}.z-\\[100\\]{z-index:100}.z-\\[2000\\]{z-index:2000}.z-\\[2001\\]{z-index:2001}.z-\\[3000\\]{z-index:3000}.z-\\[99999\\]{z-index:99999}.z-\\[9999\\]{z-index:9999}.z-\\[999\\]{z-index:999}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-1\\.5{margin-left:-.375rem}.-mt-1\\.5{margin-top:-.375rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.box-content{box-sizing:content-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\\.5{height:.125rem}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\[1px\\]{height:1px}.h-\\[500px\\]{height:500px}.h-\\[56px\\]{height:56px}.h-\\[60px\\]{height:60px}.h-\\[80vh\\]{height:80vh}.h-\\[90vh\\]{height:90vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[300px\\]{max-height:300px}.max-h-\\[500px\\]{max-height:500px}.max-h-\\[90vh\\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-\\[120px\\]{min-height:120px}.min-h-\\[30px\\]{min-height:30px}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\\[240px\\]{width:240px}.w-\\[260px\\]{width:260px}.w-\\[380px\\]{width:380px}.w-\\[60vw\\]{width:60vw}.w-\\[640px\\]{width:640px}.w-\\[700px\\]{width:700px}.w-\\[90vw\\]{width:90vw}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-\\[160px\\]{min-width:160px}.min-w-\\[200px\\]{min-width:200px}.min-w-\\[320px\\]{min-width:320px}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[300px\\]{max-width:300px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x: 1.5;--tw-scale-y: 1.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-\\[ping_2\\.4s_ease-in-out_infinite\\]{animation:ping 2.4s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-se-resize{cursor:se-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-0\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\\[0\\.5px\\]{border-width:.5px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-blue-200{border-color:var(--brand-200)}.border-blue-500{border-color:var(--brand-500)}.border-blue-600{border-color:var(--brand-600)}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.\\!bg-blue-100{background-color:var(--brand-100)!important}.bg-black\\/20{background-color:#0003}.bg-black\\/50{background-color:#00000080}.bg-blue-100{background-color:var(--brand-100)}.bg-blue-200{background-color:var(--brand-200)}.bg-blue-400{background-color:var(--brand-400)}.bg-blue-50{background-color:var(--brand-50)}.bg-blue-500{background-color:var(--brand-500)}.bg-blue-600{background-color:var(--brand-600)}.bg-emerald-400\\/80{background-color:#34d399cc}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-900\\/20{background-color:#14532d33}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-900\\/20{background-color:#7c2d1233}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\\/80{background-color:#fffc}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-\\[url\\(\\'data\\:image\\/png\\;base64\\,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ\\+5wNisxL\\/\\/8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII\\=\\'\\)\\]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--tw-gradient-stops))}.from-black{--tw-gradient-from: #000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-300{--tw-gradient-from: #d1d5db var(--tw-gradient-from-position);--tw-gradient-to: rgb(209 213 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-current{--tw-gradient-to: currentColor var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\\[length\\:6px_6px\\]{background-size:6px 6px}.bg-repeat{background-repeat:repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pl-1{padding-left:.25rem}.pl-8{padding-left:2rem}.pr-3{padding-right:.75rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.leading-none{line-height:1}.tracking-normal{letter-spacing:0em}.tracking-wider{letter-spacing:.05em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-400{color:var(--brand-400)}.text-blue-500{color:var(--brand-500)}.text-blue-600{color:var(--brand-600)}.text-blue-700{color:var(--brand-700)}.text-blue-900{color:var(--brand-900)}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.\\!shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-blue-400{--tw-ring-color: var(--brand-400)}.ring-blue-500{--tw-ring-color: var(--brand-500)}.ring-red-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-gray-900{--tw-ring-offset-color: #111827}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\\[-moz-appearance\\:textfield\\]{-moz-appearance:textfield}.\\[appearance\\:textfield\\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.dark .hover\\:bg-gray-50:hover{background-color:#111827!important}.dark .hover\\:bg-gray-100:hover:not(.canvas-scroll){background-color:#1f2937!important}.dark .hover\\:bg-gray-100:hover.canvas-scroll{background-color:#334155!important}.dark .hover\\:bg-gray-200:hover{background-color:#374151!important}.dark .hover\\:text-gray-800:hover{color:#f3f4f6!important}.dark .hover\\:text-gray-700:hover{color:#e5e7eb!important}.dark .hover\\:text-gray-600:hover{color:#d1d5db!important}.dark .print-page .hover\\:text-gray-600:hover{color:#4b5563!important}.dark .print-page .hover\\:text-gray-700:hover{color:#374151!important}.dark .print-page .hover\\:text-gray-800:hover{color:#1f2937!important}.dark .disabled\\:bg-gray-50:disabled{background-color:#111827!important}.dark .disabled\\:bg-gray-100:disabled:not(.canvas-scroll){background-color:#1f2937!important}.dark .disabled\\:bg-gray-100:disabled.canvas-scroll{background-color:#334155!important}.dark .disabled\\:text-gray-500:disabled{color:#cbd5e1!important}.dark .disabled\\:text-gray-400:disabled{color:#9ca3af!important}.dark .disabled\\:border-gray-200:disabled{border-color:#374151!important}.dark .print-page .disabled\\:border-gray-200:disabled{border-color:#e5e7eb!important}.dark .print-page .disabled\\:text-gray-500:disabled{color:#6b7280!important}.dark .disabled\\:hover\\:bg-gray-100:hover:disabled:not(.canvas-scroll){background-color:#1f2937!important}.dark .disabled\\:hover\\:bg-gray-100:hover:disabled.canvas-scroll{background-color:#334155!important}.dark .dark\\:bg-gray-100:is(.dark *):not(.canvas-scroll){background-color:#1f2937!important}.dark .dark\\:bg-gray-100:is(.dark *).canvas-scroll{background-color:#334155!important}.dark .dark\\:text-gray-600:is(.dark *){color:#d1d5db!important}.dark .dark\\:text-gray-500:is(.dark *){color:#cbd5e1!important}.dark .dark\\:text-gray-400:is(.dark *){color:#9ca3af!important}.dark .print-page .dark\\:text-gray-500:is(.dark *){color:#6b7280!important}.dark .print-page .dark\\:text-gray-600:is(.dark *){color:#4b5563!important}.dark .dark\\:disabled\\:text-gray-600:disabled:is(.dark *){color:#d1d5db!important}.dark .dark\\:disabled\\:text-gray-400:disabled:is(.dark *){color:#9ca3af!important}.dark .print-page .dark\\:disabled\\:text-gray-600:disabled:is(.dark *){color:#4b5563!important}.first\\:border-0:first-child{border-width:0px}.first\\:pt-0:first-child{padding-top:0}.last\\:border-0:last-child{border-width:0px}.last\\:border-b-0:last-child{border-bottom-width:0px}.focus-within\\:border-blue-500:focus-within{border-color:var(--brand-500)}.focus-within\\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\\:ring-blue-500:focus-within{--tw-ring-color: var(--brand-500)}.hover\\:z-10:hover{z-index:10}.hover\\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:border-blue-400:hover{border-color:var(--brand-400)}.hover\\:border-blue-500:hover{border-color:var(--brand-500)}.hover\\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\\:border-pink-400:hover{--tw-border-opacity: 1;border-color:rgb(244 114 182 / var(--tw-border-opacity, 1))}.hover\\:bg-blue-100:hover{background-color:var(--brand-100)}.hover\\:bg-blue-300:hover{background-color:var(--brand-300)}.hover\\:bg-blue-400:hover{background-color:var(--brand-400)}.hover\\:bg-blue-50:hover{background-color:var(--brand-50)}.hover\\:bg-blue-600:hover{background-color:var(--brand-600)}.hover\\:bg-blue-700:hover{background-color:var(--brand-700)}.hover\\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-500:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.hover\\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\\:bg-orange-600:hover{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.hover\\:bg-pink-50:hover{--tw-bg-opacity: 1;background-color:rgb(253 242 248 / var(--tw-bg-opacity, 1))}.hover\\:bg-pink-600:hover{--tw-bg-opacity: 1;background-color:rgb(219 39 119 / var(--tw-bg-opacity, 1))}.hover\\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\\:bg-slate-300:hover{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.hover\\:text-blue-500:hover{color:var(--brand-500)}.hover\\:text-blue-600:hover{color:var(--brand-600)}.hover\\:text-blue-700:hover{color:var(--brand-700)}.hover\\:text-blue-800:hover{color:var(--brand-800)}.hover\\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\\:text-pink-600:hover{--tw-text-opacity: 1;color:rgb(219 39 119 / var(--tw-text-opacity, 1))}.hover\\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\\:text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:decoration-blue-600:hover{text-decoration-color:var(--brand-600)}.hover\\:opacity-100:hover{opacity:1}.hover\\:outline:hover{outline-style:solid}.hover\\:outline-1:hover{outline-width:1px}.hover\\:outline-blue-300:hover{outline-color:var(--brand-300)}.focus\\:border-blue-500:focus{border-color:var(--brand-500)}.focus\\:border-blue-600:focus{border-color:var(--brand-600)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-blue-500:focus{--tw-ring-color: var(--brand-500)}.focus\\:ring-blue-600:focus{--tw-ring-color: var(--brand-600)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:border-gray-200:disabled{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.disabled\\:bg-gray-100:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\\:bg-gray-400:disabled{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.disabled\\:bg-gray-50:disabled{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.disabled\\:text-gray-400:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.disabled\\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:hover\\:bg-blue-600:hover:disabled{background-color:var(--brand-600)}.disabled\\:hover\\:bg-gray-100:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\\:opacity-100{opacity:1}.dark\\:border-blue-800:is(.dark *){border-color:var(--brand-800)}.dark\\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\\:border-gray-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.dark\\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\\:border-yellow-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.dark\\:bg-black\\/40:is(.dark *){background-color:#0006}.dark\\:bg-blue-400:is(.dark *){background-color:var(--brand-400)}.dark\\:bg-blue-500:is(.dark *){background-color:var(--brand-500)}.dark\\:bg-blue-700:is(.dark *){background-color:var(--brand-700)}.dark\\:bg-blue-900:is(.dark *){background-color:var(--brand-900)}.dark\\:bg-blue-950:is(.dark *){background-color:var(--brand-950)}.dark\\:bg-gray-100:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-700\\/50:is(.dark *){background-color:#37415180}.dark\\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-800\\/50:is(.dark *){background-color:#1f293780}.dark\\:bg-gray-800\\/80:is(.dark *){background-color:#1f2937cc}.dark\\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\\:bg-green-900\\/20:is(.dark *){background-color:#14532d33}.dark\\:bg-indigo-900\\/30:is(.dark *){background-color:#312e814d}.dark\\:bg-orange-900\\/20:is(.dark *){background-color:#7c2d1233}.dark\\:bg-orange-900\\/30:is(.dark *){background-color:#7c2d124d}.dark\\:bg-purple-900\\/20:is(.dark *){background-color:#581c8733}.dark\\:bg-purple-900\\/30:is(.dark *){background-color:#581c874d}.dark\\:bg-red-900\\/30:is(.dark *){background-color:#7f1d1d4d}.dark\\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\\:bg-violet-900\\/30:is(.dark *){background-color:#4c1d954d}.dark\\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\\:text-blue-100:is(.dark *){color:var(--brand-100)}.dark\\:text-blue-400:is(.dark *){color:var(--brand-400)}.dark\\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\\:placeholder-gray-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\\:placeholder-gray-500:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\\:ring-blue-400:is(.dark *){--tw-ring-color: var(--brand-400)}.dark\\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color: #111827}.dark\\:hover\\:border-blue-400:hover:is(.dark *){border-color:var(--brand-400)}.dark\\:hover\\:border-gray-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\\:hover\\:bg-blue-400:hover:is(.dark *){background-color:var(--brand-400)}.dark\\:hover\\:bg-blue-600:hover:is(.dark *){background-color:var(--brand-600)}.dark\\:hover\\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-800\\/50:hover:is(.dark *){background-color:#1f293780}.dark\\:hover\\:bg-pink-900\\/20:hover:is(.dark *){background-color:#83184333}.dark\\:hover\\:bg-red-900\\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\\:hover\\:bg-red-900\\/50:hover:is(.dark *){background-color:#7f1d1d80}.dark\\:hover\\:bg-slate-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:text-blue-400:hover:is(.dark *){color:var(--brand-400)}.dark\\:hover\\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-pink-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-red-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\\:focus\\:border-blue-400:focus:is(.dark *){border-color:var(--brand-400)}.dark\\:disabled\\:border-gray-700:disabled:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\\:disabled\\:bg-gray-700:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:disabled\\:bg-gray-800:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:disabled\\:text-gray-400:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\\:disabled\\:text-gray-600:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-4::-moz-range-thumb{height:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-4::-moz-range-thumb{width:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:cursor-pointer::-moz-range-thumb{cursor:pointer}.\\[\\&\\:\\:-moz-range-thumb\\]\\:rounded-full::-moz-range-thumb{border-radius:9999px}.\\[\\&\\:\\:-moz-range-thumb\\]\\:border-none::-moz-range-thumb{border-style:none}.\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-blue-600::-moz-range-thumb{background-color:var(--brand-600)}.\\[\\&\\:\\:-moz-range-thumb\\]\\:transition-all::-moz-range-thumb{-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\[\\&\\:\\:-moz-range-thumb\\]\\:hover\\:scale-110:hover::-moz-range-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\\:\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-blue-500:is(.dark *)::-moz-range-thumb{background-color:var(--brand-500)}.\\[\\&\\:\\:-webkit-inner-spin-button\\]\\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-outer-spin-button\\]\\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-4::-webkit-slider-thumb{height:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-4::-webkit-slider-thumb{width:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-blue-600::-webkit-slider-thumb{background-color:var(--brand-600)}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:transition-all::-webkit-slider-thumb{-webkit-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:hover\\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\\:\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-blue-500:is(.dark *)::-webkit-slider-thumb{background-color:var(--brand-500)}`;
17660
17660
  class ConfirmManager {
17661
17661
  show(message, options = {}) {
17662
17662
  return new Promise((resolve2) => {
@@ -25521,24 +25521,24 @@ const _hoisted_1$1m = ["data-tfoot-repeat", "data-auto-paginate", "data-custom-s
25521
25521
  const _hoisted_2$E = ["onDblclick"];
25522
25522
  const _hoisted_3$C = ["onMousedown"];
25523
25523
  const _hoisted_4$z = { key: 0 };
25524
- const _hoisted_5$x = { class: "p-4 text-center text-sm text-gray-400 dark:text-gray-500 select-none" };
25525
- const _hoisted_6$u = ["rowspan", "colspan", "data-field", "onMousedown", "onMouseover"];
25526
- const _hoisted_7$t = { key: 0 };
25527
- const _hoisted_8$r = ["colspan"];
25528
- const _hoisted_9$p = {
25524
+ const _hoisted_5$w = { class: "p-4 text-center text-sm text-gray-400 dark:text-gray-500 select-none" };
25525
+ const _hoisted_6$t = ["rowspan", "colspan", "data-field", "onMousedown", "onMouseover"];
25526
+ const _hoisted_7$s = { key: 0 };
25527
+ const _hoisted_8$q = ["colspan"];
25528
+ const _hoisted_9$o = {
25529
25529
  key: 2,
25530
25530
  class: "h-full border-none bg-transparent"
25531
25531
  };
25532
- const _hoisted_10$n = ["colspan"];
25533
- const _hoisted_11$n = { key: 0 };
25534
- const _hoisted_12$l = ["rowspan", "colspan", "data-field", "data-value", "onMousedown", "onMouseover", "onDblclick"];
25535
- const _hoisted_13$l = ["data-tfoot-repeat", "data-auto-paginate", "data-custom-script"];
25536
- const _hoisted_14$j = { key: 0 };
25537
- const _hoisted_15$g = { class: "p-4 text-center text-sm text-gray-400 dark:text-gray-500 select-none" };
25538
- const _hoisted_16$f = ["onDblclick"];
25539
- const _hoisted_17$f = ["rowspan", "colspan", "data-field", "onMousedown", "onMouseover"];
25540
- const _hoisted_18$d = { key: 0 };
25541
- const _hoisted_19$c = ["rowspan", "colspan", "data-field", "data-value", "onMousedown", "onMouseover", "onDblclick"];
25532
+ const _hoisted_10$m = ["colspan"];
25533
+ const _hoisted_11$m = { key: 0 };
25534
+ const _hoisted_12$k = ["rowspan", "colspan", "data-field", "data-value", "onMousedown", "onMouseover", "onDblclick"];
25535
+ const _hoisted_13$k = ["data-tfoot-repeat", "data-auto-paginate", "data-custom-script"];
25536
+ const _hoisted_14$i = { key: 0 };
25537
+ const _hoisted_15$f = { class: "p-4 text-center text-sm text-gray-400 dark:text-gray-500 select-none" };
25538
+ const _hoisted_16$e = ["onDblclick"];
25539
+ const _hoisted_17$e = ["rowspan", "colspan", "data-field", "onMousedown", "onMouseover"];
25540
+ const _hoisted_18$c = { key: 0 };
25541
+ const _hoisted_19$b = ["rowspan", "colspan", "data-field", "data-value", "onMousedown", "onMouseover", "onDblclick"];
25542
25542
  const _hoisted_20$a = { class: "text-sm font-semibold text-gray-700" };
25543
25543
  const _hoisted_21$8 = { class: "flex flex-col gap-1" };
25544
25544
  const _hoisted_22$8 = { class: "text-xs text-gray-500" };
@@ -26192,7 +26192,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26192
26192
  ]),
26193
26193
  createBaseVNode("tbody", null, [
26194
26194
  processedData.value.columns.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_4$z, [
26195
- createBaseVNode("td", _hoisted_5$x, toDisplayString$1(unref(t)("properties.label.selectDataField")), 1)
26195
+ createBaseVNode("td", _hoisted_5$w, toDisplayString$1(unref(t)("properties.label.selectDataField")), 1)
26196
26196
  ])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
26197
26197
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(store).isExporting ? processedData.value.data : processedData.value.data.slice(0, 5), (row, i) => {
26198
26198
  return openBlock(), createElementBlock("tr", { key: i }, [
@@ -26215,12 +26215,12 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26215
26215
  "data-field": col.field,
26216
26216
  onMousedown: (e) => handleMouseDown(e, i, col.field),
26217
26217
  onMouseover: ($event) => handleMouseOver(i, col.field)
26218
- }, toDisplayString$1(getCellValue(row, col.field)), 47, _hoisted_6$u)) : createCommentVNode("", true)
26218
+ }, toDisplayString$1(getCellValue(row, col.field)), 47, _hoisted_6$t)) : createCommentVNode("", true)
26219
26219
  ], 64);
26220
26220
  }), 128))
26221
26221
  ]);
26222
26222
  }), 128)),
26223
- !unref(store).isExporting && processedData.value.data.length > 5 ? (openBlock(), createElementBlock("tr", _hoisted_7$t, [
26223
+ !unref(store).isExporting && processedData.value.data.length > 5 ? (openBlock(), createElementBlock("tr", _hoisted_7$s, [
26224
26224
  createBaseVNode("td", {
26225
26225
  colspan: processedData.value.columns.length,
26226
26226
  class: "p-1 text-center text-gray-500 select-none",
@@ -26228,17 +26228,17 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26228
26228
  ...cellStyle.value,
26229
26229
  height: __props.element.style.rowHeight ? `${__props.element.style.rowHeight}px` : void 0
26230
26230
  })
26231
- }, " ... ", 12, _hoisted_8$r)
26231
+ }, " ... ", 12, _hoisted_8$q)
26232
26232
  ])) : createCommentVNode("", true)
26233
26233
  ], 64)),
26234
- !unref(store).isExporting ? (openBlock(), createElementBlock("tr", _hoisted_9$p, [
26234
+ !unref(store).isExporting ? (openBlock(), createElementBlock("tr", _hoisted_9$o, [
26235
26235
  createBaseVNode("td", {
26236
26236
  colspan: processedData.value.columns.length || 1,
26237
26237
  class: "border-none p-0"
26238
- }, null, 8, _hoisted_10$n)
26238
+ }, null, 8, _hoisted_10$m)
26239
26239
  ])) : createCommentVNode("", true)
26240
26240
  ]),
26241
- __props.element.showFooter ? (openBlock(), createElementBlock("tfoot", _hoisted_11$n, [
26241
+ __props.element.showFooter ? (openBlock(), createElementBlock("tfoot", _hoisted_11$m, [
26242
26242
  (openBlock(true), createElementBlock(Fragment, null, renderList(processedData.value.footerData, (row, i) => {
26243
26243
  return openBlock(), createElementBlock("tr", { key: i }, [
26244
26244
  (openBlock(true), createElementBlock(Fragment, null, renderList(processedData.value.columns, (col) => {
@@ -26265,7 +26265,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26265
26265
  onMousedown: (e) => handleMouseDown(e, i, col.field, "footer"),
26266
26266
  onMouseover: ($event) => handleMouseOver(i, col.field, "footer"),
26267
26267
  onDblclick: (e) => handleFooterDblClick(e, i, col.field)
26268
- }, toDisplayString$1(getCellValue(row, col.field)), 47, _hoisted_12$l)) : createCommentVNode("", true)
26268
+ }, toDisplayString$1(getCellValue(row, col.field)), 47, _hoisted_12$k)) : createCommentVNode("", true)
26269
26269
  ], 64);
26270
26270
  }), 128))
26271
26271
  ]);
@@ -26279,8 +26279,8 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26279
26279
  "data-custom-script": processedData.value.scriptContent || __props.element.customScript
26280
26280
  }, [
26281
26281
  createBaseVNode("tbody", null, [
26282
- processedData.value.columns.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_14$j, [
26283
- createBaseVNode("td", _hoisted_15$g, toDisplayString$1(unref(t)("properties.label.selectDataField")), 1)
26282
+ processedData.value.columns.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_14$i, [
26283
+ createBaseVNode("td", _hoisted_15$f, toDisplayString$1(unref(t)("properties.label.selectDataField")), 1)
26284
26284
  ])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(processedData.value.columns, (col, colIndex) => {
26285
26285
  return openBlock(), createElementBlock("tr", {
26286
26286
  key: col.field
@@ -26297,7 +26297,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26297
26297
  cursor: unref(store).selectedElementId === __props.element.id ? "pointer" : "default"
26298
26298
  }),
26299
26299
  onDblclick: (e) => handleHeaderDblClick(e, colIndex)
26300
- }, toDisplayString$1(col.header), 45, _hoisted_16$f),
26300
+ }, toDisplayString$1(col.header), 45, _hoisted_16$e),
26301
26301
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(store).isExporting ? processedData.value.data : processedData.value.data.slice(0, 5), (row, rowIndex) => {
26302
26302
  return openBlock(), createElementBlock("td", {
26303
26303
  key: rowIndex,
@@ -26314,7 +26314,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26314
26314
  "data-field": col.field,
26315
26315
  onMousedown: (e) => handleMouseDown(e, rowIndex, col.field),
26316
26316
  onMouseover: ($event) => handleMouseOver(rowIndex, col.field)
26317
- }, toDisplayString$1(getCellValue(row, col.field)), 47, _hoisted_17$f);
26317
+ }, toDisplayString$1(getCellValue(row, col.field)), 47, _hoisted_17$e);
26318
26318
  }), 128)),
26319
26319
  !unref(store).isExporting && processedData.value.data.length > 5 ? (openBlock(), createElementBlock("td", {
26320
26320
  key: 0,
@@ -26327,7 +26327,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26327
26327
  ]);
26328
26328
  }), 128))
26329
26329
  ]),
26330
- __props.element.showFooter && processedData.value.columns.length > 0 ? (openBlock(), createElementBlock("tfoot", _hoisted_18$d, [
26330
+ __props.element.showFooter && processedData.value.columns.length > 0 ? (openBlock(), createElementBlock("tfoot", _hoisted_18$c, [
26331
26331
  (openBlock(true), createElementBlock(Fragment, null, renderList(processedData.value.footerData, (footerRow, fi) => {
26332
26332
  return openBlock(), createElementBlock("tr", {
26333
26333
  key: "frl" + fi
@@ -26356,13 +26356,13 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
26356
26356
  onMousedown: (e) => handleMouseDown(e, fi, col.field, "footer"),
26357
26357
  onMouseover: ($event) => handleMouseOver(fi, col.field, "footer"),
26358
26358
  onDblclick: (e) => handleFooterDblClick(e, fi, col.field)
26359
- }, toDisplayString$1(getCellValue(footerRow, col.field)), 47, _hoisted_19$c)) : createCommentVNode("", true)
26359
+ }, toDisplayString$1(getCellValue(footerRow, col.field)), 47, _hoisted_19$b)) : createCommentVNode("", true)
26360
26360
  ], 64);
26361
26361
  }), 128))
26362
26362
  ]);
26363
26363
  }), 128))
26364
26364
  ])) : createCommentVNode("", true)
26365
- ], 10, _hoisted_13$l)),
26365
+ ], 10, _hoisted_13$k)),
26366
26366
  (openBlock(), createBlock(Teleport, {
26367
26367
  to: unref(modalContainer) || "body"
26368
26368
  }, [
@@ -26453,21 +26453,21 @@ const _hoisted_1$1l = { class: "w-full h-full border-collapse table-fixed" };
26453
26453
  const _hoisted_2$D = ["rowspan", "colspan", "onMousedown", "onMouseenter", "onDblclick"];
26454
26454
  const _hoisted_3$B = ["src"];
26455
26455
  const _hoisted_4$y = { key: 0 };
26456
- const _hoisted_5$w = { class: "flex items-center justify-between mb-3" };
26457
- const _hoisted_6$t = { class: "text-sm font-medium text-gray-700 dark:text-gray-200" };
26458
- const _hoisted_7$s = { class: "mb-3" };
26459
- const _hoisted_8$q = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
26460
- const _hoisted_9$o = { value: "text" };
26461
- const _hoisted_10$m = { value: "image" };
26462
- const _hoisted_11$m = { class: "mb-3" };
26463
- const _hoisted_12$k = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
26464
- const _hoisted_13$k = { class: "relative" };
26465
- const _hoisted_14$i = { class: "flex items-center gap-2" };
26466
- const _hoisted_15$f = ["value"];
26467
- const _hoisted_16$e = { class: "space-y-1" };
26468
- const _hoisted_17$e = { class: "flex items-center justify-between" };
26469
- const _hoisted_18$c = { class: "text-[10px] text-gray-400" };
26470
- const _hoisted_19$b = { class: "text-[10px] text-gray-500" };
26456
+ const _hoisted_5$v = { class: "flex items-center justify-between mb-3" };
26457
+ const _hoisted_6$s = { class: "text-sm font-medium text-gray-700 dark:text-gray-200" };
26458
+ const _hoisted_7$r = { class: "mb-3" };
26459
+ const _hoisted_8$p = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
26460
+ const _hoisted_9$n = { value: "text" };
26461
+ const _hoisted_10$l = { value: "image" };
26462
+ const _hoisted_11$l = { class: "mb-3" };
26463
+ const _hoisted_12$j = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
26464
+ const _hoisted_13$j = { class: "relative" };
26465
+ const _hoisted_14$h = { class: "flex items-center gap-2" };
26466
+ const _hoisted_15$e = ["value"];
26467
+ const _hoisted_16$d = { class: "space-y-1" };
26468
+ const _hoisted_17$d = { class: "flex items-center justify-between" };
26469
+ const _hoisted_18$b = { class: "text-[10px] text-gray-400" };
26470
+ const _hoisted_19$a = { class: "text-[10px] text-gray-500" };
26471
26471
  const _hoisted_20$9 = { class: "flex gap-2" };
26472
26472
  const _hoisted_21$7 = {
26473
26473
  key: 0,
@@ -27169,29 +27169,29 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
27169
27169
  onClick: _cache[15] || (_cache[15] = withModifiers(() => {
27170
27170
  }, ["stop"]))
27171
27171
  }, [
27172
- createBaseVNode("div", _hoisted_5$w, [
27173
- createBaseVNode("span", _hoisted_6$t, toDisplayString$1(unref(t)("properties.label.editCell")) + " (" + toDisplayString$1(editingCell.value.row + 1) + ", " + toDisplayString$1(editingCell.value.col + 1) + ") ", 1),
27172
+ createBaseVNode("div", _hoisted_5$v, [
27173
+ createBaseVNode("span", _hoisted_6$s, toDisplayString$1(unref(t)("properties.label.editCell")) + " (" + toDisplayString$1(editingCell.value.row + 1) + ", " + toDisplayString$1(editingCell.value.col + 1) + ") ", 1),
27174
27174
  createBaseVNode("button", {
27175
27175
  onClick: closeEditForm,
27176
27176
  class: "text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-lg leading-none"
27177
27177
  }, " × ")
27178
27178
  ]),
27179
- createBaseVNode("div", _hoisted_7$s, [
27180
- createBaseVNode("label", _hoisted_8$q, toDisplayString$1(unref(t)("properties.label.cellContentType")), 1),
27179
+ createBaseVNode("div", _hoisted_7$r, [
27180
+ createBaseVNode("label", _hoisted_8$p, toDisplayString$1(unref(t)("properties.label.cellContentType")), 1),
27181
27181
  withDirectives(createBaseVNode("select", {
27182
27182
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => editForm.value.contentType = $event),
27183
27183
  class: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md text-sm bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200"
27184
27184
  }, [
27185
- createBaseVNode("option", _hoisted_9$o, toDisplayString$1(unref(t)("properties.option.cellTypeText")), 1),
27186
- createBaseVNode("option", _hoisted_10$m, toDisplayString$1(unref(t)("properties.option.cellTypeImage")), 1)
27185
+ createBaseVNode("option", _hoisted_9$n, toDisplayString$1(unref(t)("properties.option.cellTypeText")), 1),
27186
+ createBaseVNode("option", _hoisted_10$l, toDisplayString$1(unref(t)("properties.option.cellTypeImage")), 1)
27187
27187
  ], 512), [
27188
27188
  [vModelSelect, editForm.value.contentType]
27189
27189
  ])
27190
27190
  ]),
27191
- createBaseVNode("div", _hoisted_11$m, [
27192
- createBaseVNode("label", _hoisted_12$k, toDisplayString$1(unref(t)("properties.label.cellBackgroundColor")), 1),
27193
- createBaseVNode("div", _hoisted_13$k, [
27194
- createBaseVNode("div", _hoisted_14$i, [
27191
+ createBaseVNode("div", _hoisted_11$l, [
27192
+ createBaseVNode("label", _hoisted_12$j, toDisplayString$1(unref(t)("properties.label.cellBackgroundColor")), 1),
27193
+ createBaseVNode("div", _hoisted_13$j, [
27194
+ createBaseVNode("div", _hoisted_14$h, [
27195
27195
  createBaseVNode("button", {
27196
27196
  type: "button",
27197
27197
  onClick: toggleBgColorPicker,
@@ -27232,11 +27232,11 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
27232
27232
  value: bgColor.value,
27233
27233
  onInput: handleBgColorInput,
27234
27234
  class: "w-full h-12 cursor-pointer border-0 p-0 rounded"
27235
- }, null, 40, _hoisted_15$f),
27236
- createBaseVNode("div", _hoisted_16$e, [
27237
- createBaseVNode("div", _hoisted_17$e, [
27238
- createBaseVNode("span", _hoisted_18$c, toDisplayString$1(unref(t)("properties.label.opacity")), 1),
27239
- createBaseVNode("span", _hoisted_19$b, toDisplayString$1(Math.round(bgAlpha.value * 100)) + "%", 1)
27235
+ }, null, 40, _hoisted_15$e),
27236
+ createBaseVNode("div", _hoisted_16$d, [
27237
+ createBaseVNode("div", _hoisted_17$d, [
27238
+ createBaseVNode("span", _hoisted_18$b, toDisplayString$1(unref(t)("properties.label.opacity")), 1),
27239
+ createBaseVNode("span", _hoisted_19$a, toDisplayString$1(Math.round(bgAlpha.value * 100)) + "%", 1)
27240
27240
  ]),
27241
27241
  withDirectives(createBaseVNode("input", {
27242
27242
  type: "range",
@@ -27827,7 +27827,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
27827
27827
  const renderBarcode = async () => {
27828
27828
  if (!barcodeRef.value) return;
27829
27829
  try {
27830
- const jsBarcodeModule = await import("./JsBarcode-Dow1PECK.js").then((n) => n.JsBarcode);
27830
+ const jsBarcodeModule = await import("./JsBarcode-uqOyCfHn.js").then((n) => n.JsBarcode);
27831
27831
  const JsBarcode = (jsBarcodeModule == null ? void 0 : jsBarcodeModule.default) || jsBarcodeModule;
27832
27832
  const content = resolvedContent.value;
27833
27833
  const style = props.element.style;
@@ -27944,7 +27944,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
27944
27944
  });
27945
27945
  const renderQR = async () => {
27946
27946
  try {
27947
- const qrcodeModule = await import("./browser-D8az-2WH.js").then((n) => n.browser);
27947
+ const qrcodeModule = await import("./browser-3LUs52W8.js").then((n) => n.browser);
27948
27948
  const QRCode = (qrcodeModule == null ? void 0 : qrcodeModule.default) || qrcodeModule;
27949
27949
  const content = resolvedContent.value;
27950
27950
  qrSrc.value = await QRCode.toDataURL(content, {
@@ -29498,8 +29498,8 @@ const _hoisted_4$w = {
29498
29498
  key: 2,
29499
29499
  class: "space-y-2"
29500
29500
  };
29501
- const _hoisted_5$v = { class: "text-xs opacity-70" };
29502
- const _hoisted_6$s = { class: "w-full text-sm" };
29501
+ const _hoisted_5$u = { class: "text-xs opacity-70" };
29502
+ const _hoisted_6$r = { class: "w-full text-sm" };
29503
29503
  const elementPropertiesSchema = {
29504
29504
  sections: [
29505
29505
  {
@@ -29591,9 +29591,9 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
29591
29591
  })
29592
29592
  }, [
29593
29593
  createBaseVNode("span", null, toDisplayString$1(group.parentLabel), 1),
29594
- createBaseVNode("span", _hoisted_5$v, toDisplayString$1(group.childData.length) + " 项", 1)
29594
+ createBaseVNode("span", _hoisted_5$u, toDisplayString$1(group.childData.length) + " 项", 1)
29595
29595
  ], 4),
29596
- createBaseVNode("table", _hoisted_6$s, [
29596
+ createBaseVNode("table", _hoisted_6$r, [
29597
29597
  createBaseVNode("thead", null, [
29598
29598
  createBaseVNode("tr", null, [
29599
29599
  (openBlock(true), createElementBlock(Fragment, null, renderList(nestedColumns.value, (col) => {
@@ -29979,22 +29979,22 @@ const _hoisted_1$17 = { class: "absolute top-0 -right-12 flex flex-col gap-2 z-1
29979
29979
  const _hoisted_2$w = ["title", "disabled"];
29980
29980
  const _hoisted_3$w = ["title", "disabled", "onClick"];
29981
29981
  const _hoisted_4$v = ["title", "disabled", "onClick"];
29982
- const _hoisted_5$u = ["title", "disabled", "onClick"];
29983
- const _hoisted_6$r = ["id", "onDrop", "onMousedown", "onContextmenu"];
29984
- const _hoisted_7$r = {
29982
+ const _hoisted_5$t = ["title", "disabled", "onClick"];
29983
+ const _hoisted_6$q = ["id", "onDrop", "onMousedown", "onContextmenu"];
29984
+ const _hoisted_7$q = {
29985
29985
  key: 0,
29986
29986
  "data-print-exclude": "true",
29987
29987
  class: "absolute inset-0 pointer-events-none opacity-50",
29988
29988
  style: { "background-image": "linear-gradient(#e5e7eb 1px, transparent 1px), linear-gradient(90deg, #e5e7eb 1px, transparent 1px)", "background-size": "20px 20px" }
29989
29989
  };
29990
- const _hoisted_8$p = ["onMousedown"];
29991
- const _hoisted_9$n = ["onMousedown"];
29992
- const _hoisted_10$l = {
29990
+ const _hoisted_8$o = ["onMousedown"];
29991
+ const _hoisted_9$m = ["onMousedown"];
29992
+ const _hoisted_10$k = {
29993
29993
  key: 5,
29994
29994
  "data-print-exclude": "true",
29995
29995
  class: "marker absolute inset-0 pointer-events-none z-50 opacity-50"
29996
29996
  };
29997
- const _hoisted_11$l = {
29997
+ const _hoisted_11$k = {
29998
29998
  key: 6,
29999
29999
  "data-print-exclude": "true",
30000
30000
  class: "margin-guides absolute inset-0 pointer-events-none z-40"
@@ -30377,7 +30377,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30377
30377
  onClick: ($event) => unref(store).removePage(index2)
30378
30378
  }, [
30379
30379
  createVNode(unref(DeleteIcon))
30380
- ], 8, _hoisted_5$u)) : createCommentVNode("", true)
30380
+ ], 8, _hoisted_5$t)) : createCommentVNode("", true)
30381
30381
  ]),
30382
30382
  createBaseVNode("div", {
30383
30383
  id: `page-${index2}`,
@@ -30392,7 +30392,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30392
30392
  onContextmenu: (e) => handleContextMenu(e, index2),
30393
30393
  onClick: withModifiers(handleBackgroundClick, ["self"])
30394
30394
  }, [
30395
- unref(store).showGrid ? (openBlock(), createElementBlock("div", _hoisted_7$r)) : createCommentVNode("", true),
30395
+ unref(store).showGrid ? (openBlock(), createElementBlock("div", _hoisted_7$q)) : createCommentVNode("", true),
30396
30396
  isBoxSelecting.value && currentSelectingPageIndex.value === index2 ? (openBlock(), createElementBlock("div", {
30397
30397
  key: 1,
30398
30398
  "data-print-exclude": "true",
@@ -30422,7 +30422,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30422
30422
  createBaseVNode("div", {
30423
30423
  class: normalizeClass(["absolute right-0 -top-4 text-xs bg-white/80 px-1 pointer-events-none", index2 === 0 ? "text-red-400" : "text-gray-400"])
30424
30424
  }, toDisplayString$1(unref(t)("canvas.headerLabel")), 3)
30425
- ], 46, _hoisted_8$p)) : createCommentVNode("", true),
30425
+ ], 46, _hoisted_8$o)) : createCommentVNode("", true),
30426
30426
  unref(store).showFooterLine ? (openBlock(), createElementBlock("div", {
30427
30427
  key: 3,
30428
30428
  "data-print-exclude": "true",
@@ -30447,7 +30447,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30447
30447
  createBaseVNode("div", {
30448
30448
  class: normalizeClass(["absolute right-0 -bottom-4 text-xs bg-white/80 px-1 pointer-events-none", index2 === 0 ? "text-red-400" : "text-gray-400"])
30449
30449
  }, toDisplayString$1(unref(t)("canvas.footerLabel")), 3)
30450
- ], 46, _hoisted_9$n)) : createCommentVNode("", true),
30450
+ ], 46, _hoisted_9$m)) : createCommentVNode("", true),
30451
30451
  index2 > 0 && pages.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 4 }, renderList(getGlobalElements(), (element) => {
30452
30452
  return openBlock(), createBlock(_sfc_main$T, {
30453
30453
  key: `global-${element.id}`,
@@ -30486,7 +30486,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30486
30486
  _: 2
30487
30487
  }, 1032, ["element", "is-selected", "zoom", "page-index", "read-only"]);
30488
30488
  }), 128)),
30489
- unref(store).showCornerMarkers ? (openBlock(), createElementBlock("div", _hoisted_10$l, [
30489
+ unref(store).showCornerMarkers ? (openBlock(), createElementBlock("div", _hoisted_10$k, [
30490
30490
  createBaseVNode("div", {
30491
30491
  class: "absolute w-3 h-3 border-t-2 border-l-2 border-gray-300",
30492
30492
  style: normalizeStyle({ top: `${marginTop.value}px`, left: `${marginLeft.value}px` })
@@ -30504,7 +30504,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30504
30504
  style: normalizeStyle({ bottom: `${marginBottom.value}px`, right: `${marginRight.value}px` })
30505
30505
  }, null, 4)
30506
30506
  ])) : createCommentVNode("", true),
30507
- unref(store).showMarginLines && (marginLeft.value > 0 || marginTop.value > 0) ? (openBlock(), createElementBlock("div", _hoisted_11$l, [
30507
+ unref(store).showMarginLines && (marginLeft.value > 0 || marginTop.value > 0) ? (openBlock(), createElementBlock("div", _hoisted_11$k, [
30508
30508
  marginTop.value > 0 ? (openBlock(), createElementBlock("div", {
30509
30509
  key: 0,
30510
30510
  class: "absolute border-t border-dashed border-gray-400 w-full",
@@ -30526,7 +30526,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
30526
30526
  style: normalizeStyle({ right: `${marginRight.value}px` })
30527
30527
  }, null, 4)) : createCommentVNode("", true)
30528
30528
  ])) : createCommentVNode("", true)
30529
- ], 44, _hoisted_6$r)
30529
+ ], 44, _hoisted_6$q)
30530
30530
  ]);
30531
30531
  }), 128))
30532
30532
  ], 4);
@@ -30979,7 +30979,7 @@ const usePrint = () => {
30979
30979
  const svgToCanvas = async (root) => {
30980
30980
  const svgs = root.querySelectorAll("svg");
30981
30981
  if (svgs.length === 0) return;
30982
- const { Canvg } = await import("./index.es-1W4rlw7i.js");
30982
+ const { Canvg } = await import("./index.es-B8Kec5wM.js");
30983
30983
  svgs.forEach((svg) => {
30984
30984
  const parent = svg.parentElement;
30985
30985
  if (!parent) return;
@@ -31516,7 +31516,7 @@ const usePrint = () => {
31516
31516
  }
31517
31517
  try {
31518
31518
  const generatePageImage = async (page) => {
31519
- const domToImageModule = await import("./dom-to-image-more.min-EwLsJY0X.js").then((n) => n.domToImageMore_min);
31519
+ const domToImageModule = await import("./dom-to-image-more.min-DHZ5Ltoy.js").then((n) => n.domToImageMore_min);
31520
31520
  const domtoimage = (domToImageModule == null ? void 0 : domToImageModule.default) || domToImageModule;
31521
31521
  const canvas = await domtoimage.toCanvas(page, {
31522
31522
  filter: (node) => {
@@ -31574,7 +31574,7 @@ const usePrint = () => {
31574
31574
  cleanup = source.cleanup;
31575
31575
  const { container, tempWrapper: wrapper } = await processContentForImage(source.content, width, height, true, source.getComputedStyleFn);
31576
31576
  tempWrapper = wrapper;
31577
- const jsPdfModule = await import("./jspdf.es.min-CbQXUuAV.js");
31577
+ const jsPdfModule = await import("./jspdf.es.min-BxC0Eby9.js");
31578
31578
  const jsPDF = (jsPdfModule == null ? void 0 : jsPdfModule.default) || (jsPdfModule == null ? void 0 : jsPdfModule.jsPDF) || jsPdfModule;
31579
31579
  const pdf = new jsPDF({
31580
31580
  orientation: width > height ? "l" : "p",
@@ -31986,7 +31986,7 @@ const usePrint = () => {
31986
31986
  link.click();
31987
31987
  document.body.removeChild(link);
31988
31988
  } else {
31989
- const jsZipModule = await import("./jszip.min-DG2p2kOZ.js").then((n) => n.jszip_min);
31989
+ const jsZipModule = await import("./jszip.min-BB--6ATv.js").then((n) => n.jszip_min);
31990
31990
  const JSZip = (jsZipModule == null ? void 0 : jsZipModule.default) || jsZipModule;
31991
31991
  const zip = new JSZip();
31992
31992
  await Promise.all(pageImages.map(async (dataUrl, index2) => {
@@ -32102,9 +32102,9 @@ const _hoisted_1$14 = { class: "bg-white dark:bg-gray-900 rounded-lg shadow-xl w
32102
32102
  const _hoisted_2$v = { class: "h-[60px] flex items-center justify-between px-4 border-b border-gray-200 dark:border-gray-800 shrink-0" };
32103
32103
  const _hoisted_3$v = { class: "flex items-center gap-2" };
32104
32104
  const _hoisted_4$u = { class: "text-lg font-semibold text-gray-800 dark:text-gray-100" };
32105
- const _hoisted_5$t = { class: "px-2 py-0.5 rounded bg-gray-200 dark:bg-gray-800 text-gray-600 dark:text-gray-400 text-xs font-mono uppercase" };
32106
- const _hoisted_6$q = { class: "flex-1 overflow-hidden relative" };
32107
- const _hoisted_7$q = { class: "p-4 border-t border-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-800 flex justify-end rounded-b-lg" };
32105
+ const _hoisted_5$s = { class: "px-2 py-0.5 rounded bg-gray-200 dark:bg-gray-800 text-gray-600 dark:text-gray-400 text-xs font-mono uppercase" };
32106
+ const _hoisted_6$p = { class: "flex-1 overflow-hidden relative" };
32107
+ const _hoisted_7$p = { class: "p-4 border-t border-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-800 flex justify-end rounded-b-lg" };
32108
32108
  const _sfc_main$x = /* @__PURE__ */ defineComponent({
32109
32109
  __name: "CodeEditorModal",
32110
32110
  props: {
@@ -32116,7 +32116,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
32116
32116
  },
32117
32117
  emits: ["update:visible", "update:value", "close"],
32118
32118
  setup(__props, { emit: __emit }) {
32119
- const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-Bm7ZKHB-.js").then((m) => m.Editor));
32119
+ const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-BbNFaQX5.js").then((m) => m.Editor));
32120
32120
  const { t } = useI18n();
32121
32121
  const { isDark: isDark2 } = useTheme();
32122
32122
  const modalContainer = inject("modal-container", /* @__PURE__ */ ref(null));
@@ -32176,7 +32176,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
32176
32176
  createBaseVNode("div", _hoisted_2$v, [
32177
32177
  createBaseVNode("div", _hoisted_3$v, [
32178
32178
  createBaseVNode("h3", _hoisted_4$u, toDisplayString$1(__props.title), 1),
32179
- createBaseVNode("span", _hoisted_5$t, toDisplayString$1(__props.language), 1)
32179
+ createBaseVNode("span", _hoisted_5$s, toDisplayString$1(__props.language), 1)
32180
32180
  ]),
32181
32181
  createBaseVNode("button", {
32182
32182
  onClick: handleClose,
@@ -32185,7 +32185,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
32185
32185
  createVNode(unref(Close), { class: "w-4 h-4" })
32186
32186
  ])
32187
32187
  ]),
32188
- createBaseVNode("div", _hoisted_6$q, [
32188
+ createBaseVNode("div", _hoisted_6$p, [
32189
32189
  createVNode(unref(Editor), {
32190
32190
  value: __props.value,
32191
32191
  language: __props.language,
@@ -32194,7 +32194,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
32194
32194
  class: "w-full h-full"
32195
32195
  }, null, 8, ["value", "language", "options"])
32196
32196
  ]),
32197
- createBaseVNode("div", _hoisted_7$q, [
32197
+ createBaseVNode("div", _hoisted_7$p, [
32198
32198
  createBaseVNode("button", {
32199
32199
  onClick: handleClose,
32200
32200
  class: "px-4 py-2 bg-blue-600 dark:bg-blue-500 text-white rounded hover:bg-blue-700 dark:hover:bg-blue-600 transition-colors text-sm"
@@ -32211,11 +32211,11 @@ const _hoisted_1$13 = { class: "bg-white rounded-lg shadow-xl w-[90vw] h-[90vh]
32211
32211
  const _hoisted_2$u = { class: "relative flex items-center justify-between p-4 border-b border-gray-200" };
32212
32212
  const _hoisted_3$u = { class: "text-lg font-semibold text-gray-800" };
32213
32213
  const _hoisted_4$t = { class: "absolute left-1/2 -translate-x-1/2 flex items-center gap-2" };
32214
- const _hoisted_5$s = ["title"];
32215
- const _hoisted_6$p = ["title"];
32216
- const _hoisted_7$p = { class: "text-xs text-gray-600 w-9 text-right select-none" };
32217
- const _hoisted_8$o = ["innerHTML"];
32218
- const _hoisted_9$m = { class: "p-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3 rounded-b-lg" };
32214
+ const _hoisted_5$r = ["title"];
32215
+ const _hoisted_6$o = ["title"];
32216
+ const _hoisted_7$o = { class: "text-xs text-gray-600 w-9 text-right select-none" };
32217
+ const _hoisted_8$n = ["innerHTML"];
32218
+ const _hoisted_9$l = { class: "p-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3 rounded-b-lg" };
32219
32219
  const _sfc_main$w = /* @__PURE__ */ defineComponent({
32220
32220
  __name: "PreviewModal",
32221
32221
  props: {
@@ -32411,7 +32411,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
32411
32411
  title: unref(t)("preview.zoomOut")
32412
32412
  }, [
32413
32413
  createVNode(unref(ZoomOut), { class: "w-4 h-4" })
32414
- ], 8, _hoisted_5$s),
32414
+ ], 8, _hoisted_5$r),
32415
32415
  withDirectives(createBaseVNode("input", {
32416
32416
  type: "range",
32417
32417
  min: "20",
@@ -32433,8 +32433,8 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
32433
32433
  title: unref(t)("preview.zoomIn")
32434
32434
  }, [
32435
32435
  createVNode(unref(ZoomIn), { class: "w-4 h-4" })
32436
- ], 8, _hoisted_6$p),
32437
- createBaseVNode("span", _hoisted_7$p, toDisplayString$1(zoomPercent.value) + "%", 1)
32436
+ ], 8, _hoisted_6$o),
32437
+ createBaseVNode("span", _hoisted_7$o, toDisplayString$1(zoomPercent.value) + "%", 1)
32438
32438
  ]),
32439
32439
  createBaseVNode("button", {
32440
32440
  onClick: handleClose,
@@ -32454,9 +32454,9 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
32454
32454
  class: "preview-content",
32455
32455
  style: normalizeStyle(`width: ${__props.width}px; zoom: ${zoomPercent.value / 100}`),
32456
32456
  innerHTML: __props.htmlContent
32457
- }, null, 12, _hoisted_8$o)
32457
+ }, null, 12, _hoisted_8$n)
32458
32458
  ], 512),
32459
- createBaseVNode("div", _hoisted_9$m, [
32459
+ createBaseVNode("div", _hoisted_9$l, [
32460
32460
  createBaseVNode("button", {
32461
32461
  onClick: handlePrint,
32462
32462
  class: "px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 flex items-center gap-2 text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-blue-600"
@@ -32579,19 +32579,19 @@ const _hoisted_2$t = {
32579
32579
  };
32580
32580
  const _hoisted_3$t = { class: "flex gap-2 mb-3" };
32581
32581
  const _hoisted_4$s = { class: "flex-1 flex flex-col gap-2" };
32582
- const _hoisted_5$r = { class: "relative h-3 rounded bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] border border-gray-200 dark:border-gray-700" };
32583
- const _hoisted_6$o = { class: "w-8 h-8 rounded border border-gray-200 dark:border-gray-700 overflow-hidden relative" };
32584
- const _hoisted_7$o = {
32582
+ const _hoisted_5$q = { class: "relative h-3 rounded bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] border border-gray-200 dark:border-gray-700" };
32583
+ const _hoisted_6$n = { class: "w-8 h-8 rounded border border-gray-200 dark:border-gray-700 overflow-hidden relative" };
32584
+ const _hoisted_7$n = {
32585
32585
  key: 0,
32586
32586
  class: "absolute inset-0 flex items-center justify-center pointer-events-none"
32587
32587
  };
32588
- const _hoisted_8$n = { class: "flex gap-2 mb-3" };
32589
- const _hoisted_9$l = { class: "flex-1" };
32590
- const _hoisted_10$k = { class: "w-16 text-right text-xs text-gray-500 dark:text-gray-400 flex items-center justify-end" };
32591
- const _hoisted_11$k = { class: "grid grid-cols-9 gap-1.5 mb-3" };
32592
- const _hoisted_12$j = ["onClick", "title"];
32593
- const _hoisted_13$j = { class: "flex justify-between border-t border-gray-100 dark:border-gray-700 pt-2" };
32594
- const _hoisted_14$h = { key: 0 };
32588
+ const _hoisted_8$m = { class: "flex gap-2 mb-3" };
32589
+ const _hoisted_9$k = { class: "flex-1" };
32590
+ const _hoisted_10$j = { class: "w-16 text-right text-xs text-gray-500 dark:text-gray-400 flex items-center justify-end" };
32591
+ const _hoisted_11$j = { class: "grid grid-cols-9 gap-1.5 mb-3" };
32592
+ const _hoisted_12$i = ["onClick", "title"];
32593
+ const _hoisted_13$i = { class: "flex justify-between border-t border-gray-100 dark:border-gray-700 pt-2" };
32594
+ const _hoisted_14$g = { key: 0 };
32595
32595
  const _sfc_main$v = /* @__PURE__ */ defineComponent({
32596
32596
  __name: "ColorPicker",
32597
32597
  props: {
@@ -32893,7 +32893,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
32893
32893
  style: normalizeStyle(hueCursorStyle.value)
32894
32894
  }, null, 4)
32895
32895
  ], 544),
32896
- createBaseVNode("div", _hoisted_5$r, [
32896
+ createBaseVNode("div", _hoisted_5$q, [
32897
32897
  createBaseVNode("div", {
32898
32898
  ref_key: "alphaSliderRef",
32899
32899
  ref: alphaSliderRef,
@@ -32908,19 +32908,19 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
32908
32908
  ], 36)
32909
32909
  ])
32910
32910
  ]),
32911
- createBaseVNode("div", _hoisted_6$o, [
32911
+ createBaseVNode("div", _hoisted_6$n, [
32912
32912
  _cache[12] || (_cache[12] = createBaseVNode("div", { class: "absolute inset-0 bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50" }, null, -1)),
32913
32913
  createBaseVNode("div", {
32914
32914
  class: "absolute inset-0",
32915
32915
  style: normalizeStyle({ backgroundColor: rgbaValue.value })
32916
32916
  }, null, 4),
32917
- hsv.value.a === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$o, [..._cache[11] || (_cache[11] = [
32917
+ hsv.value.a === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$n, [..._cache[11] || (_cache[11] = [
32918
32918
  createBaseVNode("div", { class: "w-full h-[1px] bg-red-500 rotate-45" }, null, -1)
32919
32919
  ])])) : createCommentVNode("", true)
32920
32920
  ])
32921
32921
  ]),
32922
- createBaseVNode("div", _hoisted_8$n, [
32923
- createBaseVNode("div", _hoisted_9$l, [
32922
+ createBaseVNode("div", _hoisted_8$m, [
32923
+ createBaseVNode("div", _hoisted_9$k, [
32924
32924
  withDirectives(createBaseVNode("input", {
32925
32925
  type: "text",
32926
32926
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => hexValue.value = $event),
@@ -32930,9 +32930,9 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
32930
32930
  [vModelText, hexValue.value]
32931
32931
  ])
32932
32932
  ]),
32933
- createBaseVNode("div", _hoisted_10$k, toDisplayString$1(Math.round(hsv.value.a * 100)) + "% ", 1)
32933
+ createBaseVNode("div", _hoisted_10$j, toDisplayString$1(Math.round(hsv.value.a * 100)) + "% ", 1)
32934
32934
  ]),
32935
- createBaseVNode("div", _hoisted_11$k, [
32935
+ createBaseVNode("div", _hoisted_11$j, [
32936
32936
  (openBlock(), createElementBlock(Fragment, null, renderList(PRESET_COLORS, (color) => {
32937
32937
  return createBaseVNode("div", {
32938
32938
  key: color,
@@ -32940,10 +32940,10 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
32940
32940
  style: normalizeStyle({ backgroundColor: color }),
32941
32941
  onClick: ($event) => selectPreset(color),
32942
32942
  title: color
32943
- }, null, 14, _hoisted_12$j);
32943
+ }, null, 14, _hoisted_12$i);
32944
32944
  }), 64))
32945
32945
  ]),
32946
- createBaseVNode("div", _hoisted_13$j, [
32946
+ createBaseVNode("div", _hoisted_13$i, [
32947
32947
  createBaseVNode("button", {
32948
32948
  onClick: _cache[5] || (_cache[5] = ($event) => {
32949
32949
  _ctx.$emit("update:modelValue", void 0);
@@ -32951,7 +32951,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
32951
32951
  }),
32952
32952
  class: "text-xs text-red-600 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/30 px-2 py-1 rounded transition-colors"
32953
32953
  }, toDisplayString$1(unref(t)("colorPicker.clear")), 1),
32954
- __props.allowTransparent ? (openBlock(), createElementBlock("div", _hoisted_14$h, [
32954
+ __props.allowTransparent ? (openBlock(), createElementBlock("div", _hoisted_14$g, [
32955
32955
  createBaseVNode("button", {
32956
32956
  onClick: _cache[6] || (_cache[6] = ($event) => {
32957
32957
  _ctx.$emit("update:modelValue", "transparent");
@@ -33027,28 +33027,28 @@ const _hoisted_1$W = { class: "h-[60px] flex items-center justify-between px-4 b
33027
33027
  const _hoisted_2$s = { class: "text-lg font-semibold text-gray-800 dark:text-gray-100" };
33028
33028
  const _hoisted_3$s = { class: "p-4" };
33029
33029
  const _hoisted_4$r = { class: "mb-4 space-y-3" };
33030
- const _hoisted_5$q = {
33030
+ const _hoisted_5$p = {
33031
33031
  key: 0,
33032
33032
  class: "block text-sm font-medium text-gray-700 dark:text-gray-200"
33033
33033
  };
33034
- const _hoisted_6$n = ["onUpdate:modelValue", "placeholder"];
33035
- const _hoisted_7$n = ["value", "placeholder", "min", "max", "step", "onInput"];
33036
- const _hoisted_8$m = ["onUpdate:modelValue", "rows", "placeholder"];
33037
- const _hoisted_9$k = ["onUpdate:modelValue"];
33038
- const _hoisted_10$j = {
33034
+ const _hoisted_6$m = ["onUpdate:modelValue", "placeholder"];
33035
+ const _hoisted_7$m = ["value", "placeholder", "min", "max", "step", "onInput"];
33036
+ const _hoisted_8$l = ["onUpdate:modelValue", "rows", "placeholder"];
33037
+ const _hoisted_9$j = ["onUpdate:modelValue"];
33038
+ const _hoisted_10$i = {
33039
33039
  key: 0,
33040
33040
  value: ""
33041
33041
  };
33042
- const _hoisted_11$j = ["value"];
33043
- const _hoisted_12$i = {
33042
+ const _hoisted_11$i = ["value"];
33043
+ const _hoisted_12$h = {
33044
33044
  key: 5,
33045
33045
  class: "space-y-2"
33046
33046
  };
33047
- const _hoisted_13$i = ["onUpdate:modelValue", "value"];
33048
- const _hoisted_14$g = ["onUpdate:modelValue"];
33049
- const _hoisted_15$e = ["onUpdate:modelValue"];
33050
- const _hoisted_16$d = { class: "flex justify-end gap-2" };
33051
- const _hoisted_17$d = ["disabled"];
33047
+ const _hoisted_13$h = ["onUpdate:modelValue", "value"];
33048
+ const _hoisted_14$f = ["onUpdate:modelValue"];
33049
+ const _hoisted_15$d = ["onUpdate:modelValue"];
33050
+ const _hoisted_16$c = { class: "flex justify-end gap-2" };
33051
+ const _hoisted_17$c = ["disabled"];
33052
33052
  const _sfc_main$u = /* @__PURE__ */ defineComponent({
33053
33053
  __name: "InputModal",
33054
33054
  props: {
@@ -33205,7 +33205,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33205
33205
  key: field.key,
33206
33206
  class: "space-y-1"
33207
33207
  }, [
33208
- field.label ? (openBlock(), createElementBlock("label", _hoisted_5$q, toDisplayString$1(field.label), 1)) : createCommentVNode("", true),
33208
+ field.label ? (openBlock(), createElementBlock("label", _hoisted_5$p, toDisplayString$1(field.label), 1)) : createCommentVNode("", true),
33209
33209
  field.type === "input" ? withDirectives((openBlock(), createElementBlock("input", {
33210
33210
  key: 1,
33211
33211
  "onUpdate:modelValue": ($event) => formValues.value[field.key] = $event,
@@ -33216,7 +33216,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33216
33216
  withKeys(handleSave, ["enter"]),
33217
33217
  _cache[1] || (_cache[1] = withKeys(($event) => emit2("close"), ["esc"]))
33218
33218
  ]
33219
- }, null, 40, _hoisted_6$n)), [
33219
+ }, null, 40, _hoisted_6$m)), [
33220
33220
  [vModelText, formValues.value[field.key]]
33221
33221
  ]) : field.type === "number" ? (openBlock(), createElementBlock("input", {
33222
33222
  key: 2,
@@ -33232,14 +33232,14 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33232
33232
  withKeys(handleSave, ["enter"]),
33233
33233
  _cache[2] || (_cache[2] = withKeys(($event) => emit2("close"), ["esc"]))
33234
33234
  ]
33235
- }, null, 40, _hoisted_7$n)) : field.type === "textarea" ? withDirectives((openBlock(), createElementBlock("textarea", {
33235
+ }, null, 40, _hoisted_7$m)) : field.type === "textarea" ? withDirectives((openBlock(), createElementBlock("textarea", {
33236
33236
  key: 3,
33237
33237
  "onUpdate:modelValue": ($event) => formValues.value[field.key] = $event,
33238
33238
  class: "w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
33239
33239
  rows: field.rows ?? 4,
33240
33240
  placeholder: field.placeholder || __props.placeholder || unref(t)("input.placeholder"),
33241
33241
  onKeydown: _cache[3] || (_cache[3] = withKeys(($event) => emit2("close"), ["esc"]))
33242
- }, null, 40, _hoisted_8$m)), [
33242
+ }, null, 40, _hoisted_8$l)), [
33243
33243
  [vModelText, formValues.value[field.key]]
33244
33244
  ]) : field.type === "select" ? withDirectives((openBlock(), createElementBlock("select", {
33245
33245
  key: 4,
@@ -33247,16 +33247,16 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33247
33247
  class: "w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
33248
33248
  onKeydown: _cache[4] || (_cache[4] = withKeys(($event) => emit2("close"), ["esc"]))
33249
33249
  }, [
33250
- !field.required ? (openBlock(), createElementBlock("option", _hoisted_10$j, toDisplayString$1(field.placeholder || unref(t)("input.placeholder")), 1)) : createCommentVNode("", true),
33250
+ !field.required ? (openBlock(), createElementBlock("option", _hoisted_10$i, toDisplayString$1(field.placeholder || unref(t)("input.placeholder")), 1)) : createCommentVNode("", true),
33251
33251
  (openBlock(true), createElementBlock(Fragment, null, renderList(field.options || [], (opt) => {
33252
33252
  return openBlock(), createElementBlock("option", {
33253
33253
  key: String(opt.value),
33254
33254
  value: opt.value
33255
- }, toDisplayString$1(opt.label), 9, _hoisted_11$j);
33255
+ }, toDisplayString$1(opt.label), 9, _hoisted_11$i);
33256
33256
  }), 128))
33257
- ], 40, _hoisted_9$k)), [
33257
+ ], 40, _hoisted_9$j)), [
33258
33258
  [vModelSelect, formValues.value[field.key]]
33259
- ]) : field.type === "radio" ? (openBlock(), createElementBlock("div", _hoisted_12$i, [
33259
+ ]) : field.type === "radio" ? (openBlock(), createElementBlock("div", _hoisted_12$h, [
33260
33260
  (openBlock(true), createElementBlock(Fragment, null, renderList(field.options || [], (opt) => {
33261
33261
  return openBlock(), createElementBlock("label", {
33262
33262
  key: String(opt.value),
@@ -33266,7 +33266,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33266
33266
  "onUpdate:modelValue": ($event) => formValues.value[field.key] = $event,
33267
33267
  type: "radio",
33268
33268
  value: opt.value
33269
- }, null, 8, _hoisted_13$i), [
33269
+ }, null, 8, _hoisted_13$h), [
33270
33270
  [vModelRadio, formValues.value[field.key]]
33271
33271
  ]),
33272
33272
  createBaseVNode("span", null, toDisplayString$1(opt.label), 1)
@@ -33278,7 +33278,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33278
33278
  type: "date",
33279
33279
  class: "w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
33280
33280
  onKeydown: _cache[5] || (_cache[5] = withKeys(($event) => emit2("close"), ["esc"]))
33281
- }, null, 40, _hoisted_14$g)), [
33281
+ }, null, 40, _hoisted_14$f)), [
33282
33282
  [vModelText, formValues.value[field.key]]
33283
33283
  ]) : field.type === "datetime" ? withDirectives((openBlock(), createElementBlock("input", {
33284
33284
  key: 7,
@@ -33286,13 +33286,13 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33286
33286
  type: "datetime-local",
33287
33287
  class: "w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
33288
33288
  onKeydown: _cache[6] || (_cache[6] = withKeys(($event) => emit2("close"), ["esc"]))
33289
- }, null, 40, _hoisted_15$e)), [
33289
+ }, null, 40, _hoisted_15$d)), [
33290
33290
  [vModelText, formValues.value[field.key]]
33291
33291
  ]) : createCommentVNode("", true)
33292
33292
  ]);
33293
33293
  }), 128))
33294
33294
  ]),
33295
- createBaseVNode("div", _hoisted_16$d, [
33295
+ createBaseVNode("div", _hoisted_16$c, [
33296
33296
  createBaseVNode("button", {
33297
33297
  onClick: _cache[7] || (_cache[7] = ($event) => emit2("close")),
33298
33298
  class: "px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-md transition-colors"
@@ -33301,7 +33301,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
33301
33301
  onClick: handleSave,
33302
33302
  disabled: !isFormValid.value,
33303
33303
  class: "px-4 py-2 text-sm font-medium text-white bg-blue-600 dark:bg-blue-500 hover:bg-blue-700 dark:hover:bg-blue-600 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
33304
- }, toDisplayString$1(unref(t)("common.confirm")), 9, _hoisted_17$d)
33304
+ }, toDisplayString$1(unref(t)("common.confirm")), 9, _hoisted_17$c)
33305
33305
  ])
33306
33306
  ])
33307
33307
  ], 512)
@@ -33317,32 +33317,32 @@ const _hoisted_3$r = {
33317
33317
  class: "inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] leading-none flex-shrink-0 bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-600"
33318
33318
  };
33319
33319
  const _hoisted_4$q = { class: "truncate" };
33320
- const _hoisted_5$p = {
33320
+ const _hoisted_5$o = {
33321
33321
  key: 0,
33322
33322
  class: "absolute top-full left-0 mt-2 w-[260px] bg-white dark:bg-gray-800 rounded-lg shadow-xl border border-gray-200 dark:border-gray-700 z-[100] flex flex-col max-h-[500px]"
33323
33323
  };
33324
- const _hoisted_6$m = { class: "flex-1 overflow-y-auto py-1" };
33325
- const _hoisted_7$m = {
33324
+ const _hoisted_6$l = { class: "flex-1 overflow-y-auto py-1" };
33325
+ const _hoisted_7$l = {
33326
33326
  key: 0,
33327
33327
  class: "px-4 py-3 text-sm text-gray-500 dark:text-gray-400 text-center"
33328
33328
  };
33329
- const _hoisted_8$l = ["onClick", "onContextmenu", "title"];
33330
- const _hoisted_9$j = { class: "flex items-center gap-2 overflow-hidden flex-1" };
33331
- const _hoisted_10$i = { class: "w-2 h-2 flex items-center justify-center flex-shrink-0" };
33332
- const _hoisted_11$i = {
33329
+ const _hoisted_8$k = ["onClick", "onContextmenu", "title"];
33330
+ const _hoisted_9$i = { class: "flex items-center gap-2 overflow-hidden flex-1" };
33331
+ const _hoisted_10$h = { class: "w-2 h-2 flex items-center justify-center flex-shrink-0" };
33332
+ const _hoisted_11$h = {
33333
33333
  key: 0,
33334
33334
  class: "w-1.5 h-1.5 rounded-full bg-blue-500"
33335
33335
  };
33336
- const _hoisted_12$h = {
33336
+ const _hoisted_12$g = {
33337
33337
  key: 0,
33338
33338
  class: "inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] leading-none flex-shrink-0 bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-600"
33339
33339
  };
33340
- const _hoisted_13$h = ["onClick"];
33341
- const _hoisted_14$f = { class: "border-t border-gray-100 dark:border-gray-700 p-1" };
33342
- const _hoisted_15$d = ["onClick", "disabled"];
33343
- const _hoisted_16$c = ["src"];
33344
- const _hoisted_17$c = ["src"];
33345
- const _hoisted_18$b = {
33340
+ const _hoisted_13$g = ["onClick"];
33341
+ const _hoisted_14$e = { class: "border-t border-gray-100 dark:border-gray-700 p-1" };
33342
+ const _hoisted_15$c = ["onClick", "disabled"];
33343
+ const _hoisted_16$b = ["src"];
33344
+ const _hoisted_17$b = ["src"];
33345
+ const _hoisted_18$a = {
33346
33346
  key: 4,
33347
33347
  class: "w-3.5 h-3.5 inline-flex items-center justify-center"
33348
33348
  };
@@ -33844,9 +33844,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
33844
33844
  ]),
33845
33845
  createVNode(unref(ChevronDown), { class: "w-4 h-4 flex-shrink-0" })
33846
33846
  ], 8, _hoisted_1$V),
33847
- isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_5$p, [
33848
- createBaseVNode("div", _hoisted_6$m, [
33849
- unref(store).templates.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$m, toDisplayString$1(unref(t)("template.noTemplates")), 1)) : createCommentVNode("", true),
33847
+ isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_5$o, [
33848
+ createBaseVNode("div", _hoisted_6$l, [
33849
+ unref(store).templates.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$l, toDisplayString$1(unref(t)("template.noTemplates")), 1)) : createCommentVNode("", true),
33850
33850
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(store).templates, (t2) => {
33851
33851
  return openBlock(), createElementBlock("div", {
33852
33852
  key: t2.id,
@@ -33855,9 +33855,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
33855
33855
  onContextmenu: withModifiers(($event) => openRowMenuByContext($event, t2.id), ["prevent"]),
33856
33856
  title: t2.name
33857
33857
  }, [
33858
- createBaseVNode("div", _hoisted_9$j, [
33859
- createBaseVNode("div", _hoisted_10$i, [
33860
- unref(store).currentTemplateId === t2.id ? (openBlock(), createElementBlock("div", _hoisted_11$i)) : createCommentVNode("", true)
33858
+ createBaseVNode("div", _hoisted_9$i, [
33859
+ createBaseVNode("div", _hoisted_10$h, [
33860
+ unref(store).currentTemplateId === t2.id ? (openBlock(), createElementBlock("div", _hoisted_11$h)) : createCommentVNode("", true)
33861
33861
  ]),
33862
33862
  (openBlock(true), createElementBlock(Fragment, null, renderList(getVisibleTemplateTags(t2), (tag) => {
33863
33863
  return openBlock(), createElementBlock("span", {
@@ -33866,7 +33866,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
33866
33866
  style: normalizeStyle(normalizeTagColor(tag.color))
33867
33867
  }, toDisplayString$1(tag.label), 5);
33868
33868
  }), 128)),
33869
- getTemplateTagOverflow(t2) > 0 ? (openBlock(), createElementBlock("span", _hoisted_12$h, " +" + toDisplayString$1(getTemplateTagOverflow(t2)), 1)) : createCommentVNode("", true),
33869
+ getTemplateTagOverflow(t2) > 0 ? (openBlock(), createElementBlock("span", _hoisted_12$g, " +" + toDisplayString$1(getTemplateTagOverflow(t2)), 1)) : createCommentVNode("", true),
33870
33870
  createBaseVNode("span", {
33871
33871
  class: normalizeClass(["text-sm text-gray-700 dark:text-gray-200 truncate", { "font-medium text-blue-600 dark:text-blue-400": unref(store).currentTemplateId === t2.id }])
33872
33872
  }, toDisplayString$1(t2.name), 3)
@@ -33876,11 +33876,11 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
33876
33876
  class: normalizeClass(["row-menu-trigger p-1 hover:bg-gray-200 dark:hover:bg-gray-600 rounded-full text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 opacity-0 group-hover:opacity-100 transition-opacity", { "opacity-100 bg-gray-200 dark:bg-gray-600": activeMenuId.value === t2.id }])
33877
33877
  }, [
33878
33878
  createVNode(unref(MoreVert), { class: "w-4 h-4" })
33879
- ], 10, _hoisted_13$h)
33880
- ], 40, _hoisted_8$l);
33879
+ ], 10, _hoisted_13$g)
33880
+ ], 40, _hoisted_8$k);
33881
33881
  }), 128))
33882
33882
  ]),
33883
- createBaseVNode("div", _hoisted_14$f, [
33883
+ createBaseVNode("div", _hoisted_14$e, [
33884
33884
  createCommentVNode("", true)
33885
33885
  ])
33886
33886
  ])) : createCommentVNode("", true),
@@ -33912,16 +33912,16 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
33912
33912
  key: 1,
33913
33913
  src: menuItem.iconImage,
33914
33914
  class: "w-3.5 h-3.5 object-contain"
33915
- }, null, 8, _hoisted_16$c)) : menuItem.iconClass ? (openBlock(), createElementBlock("i", {
33915
+ }, null, 8, _hoisted_16$b)) : menuItem.iconClass ? (openBlock(), createElementBlock("i", {
33916
33916
  key: 2,
33917
33917
  class: normalizeClass(menuItem.iconClass)
33918
33918
  }, null, 2)) : resolveIconFromIconField(menuItem.icon) ? (openBlock(), createElementBlock("img", {
33919
33919
  key: 3,
33920
33920
  src: resolveIconFromIconField(menuItem.icon),
33921
33921
  class: "w-3.5 h-3.5 object-contain"
33922
- }, null, 8, _hoisted_17$c)) : menuItem.icon ? (openBlock(), createElementBlock("span", _hoisted_18$b, toDisplayString$1(menuItem.icon), 1)) : createCommentVNode("", true),
33922
+ }, null, 8, _hoisted_17$b)) : menuItem.icon ? (openBlock(), createElementBlock("span", _hoisted_18$a, toDisplayString$1(menuItem.icon), 1)) : createCommentVNode("", true),
33923
33923
  createBaseVNode("span", null, toDisplayString$1(menuItem.label), 1)
33924
- ], 10, _hoisted_15$d);
33924
+ ], 10, _hoisted_15$c);
33925
33925
  }), 128)) : createCommentVNode("", true)
33926
33926
  ], 4)
33927
33927
  ])) : createCommentVNode("", true)
@@ -33976,39 +33976,39 @@ const _hoisted_1$U = { class: "relative" };
33976
33976
  const _hoisted_2$q = { class: "flex items-center bg-gray-100 dark:bg-gray-800 rounded-lg p-1" };
33977
33977
  const _hoisted_3$q = ["disabled", "title"];
33978
33978
  const _hoisted_4$p = ["disabled", "title"];
33979
- const _hoisted_5$o = { class: "truncate" };
33980
- const _hoisted_6$l = ["disabled", "title"];
33981
- const _hoisted_7$l = {
33979
+ const _hoisted_5$n = { class: "truncate" };
33980
+ const _hoisted_6$k = ["disabled", "title"];
33981
+ const _hoisted_7$k = {
33982
33982
  key: 0,
33983
33983
  class: "absolute top-full left-0 mt-2 w-64 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 shadow-xl rounded-lg p-4 z-[1000]"
33984
33984
  };
33985
- const _hoisted_8$k = { class: "text-sm font-semibold text-gray-700 dark:text-gray-200 mb-3" };
33986
- const _hoisted_9$i = { class: "space-y-3" };
33987
- const _hoisted_10$h = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
33988
- const _hoisted_11$h = ["value"];
33989
- const _hoisted_12$g = {
33985
+ const _hoisted_8$j = { class: "text-sm font-semibold text-gray-700 dark:text-gray-200 mb-3" };
33986
+ const _hoisted_9$h = { class: "space-y-3" };
33987
+ const _hoisted_10$g = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
33988
+ const _hoisted_11$g = ["value"];
33989
+ const _hoisted_12$f = {
33990
33990
  value: "CUSTOM",
33991
33991
  class: "dark:bg-gray-800 dark:text-gray-200"
33992
33992
  };
33993
- const _hoisted_13$g = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
33994
- const _hoisted_14$e = ["value"];
33995
- const _hoisted_15$c = {
33993
+ const _hoisted_13$f = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
33994
+ const _hoisted_14$d = ["value"];
33995
+ const _hoisted_15$b = {
33996
33996
  value: "mm",
33997
33997
  class: "dark:bg-gray-800 dark:text-gray-200"
33998
33998
  };
33999
- const _hoisted_16$b = {
33999
+ const _hoisted_16$a = {
34000
34000
  value: "cm",
34001
34001
  class: "dark:bg-gray-800 dark:text-gray-200"
34002
34002
  };
34003
- const _hoisted_17$b = {
34003
+ const _hoisted_17$a = {
34004
34004
  value: "in",
34005
34005
  class: "dark:bg-gray-800 dark:text-gray-200"
34006
34006
  };
34007
- const _hoisted_18$a = {
34007
+ const _hoisted_18$9 = {
34008
34008
  value: "pt",
34009
34009
  class: "dark:bg-gray-800 dark:text-gray-200"
34010
34010
  };
34011
- const _hoisted_19$a = {
34011
+ const _hoisted_19$9 = {
34012
34012
  value: "px",
34013
34013
  class: "dark:bg-gray-800 dark:text-gray-200"
34014
34014
  };
@@ -34221,7 +34221,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
34221
34221
  class: "flex items-center justify-center text-xs text-gray-700 dark:text-gray-200 hover:bg-gray-200 dark:hover:bg-gray-700 rounded px-1 py-0.5 transition-colors w-16 text-center disabled:opacity-50 disabled:cursor-not-allowed",
34222
34222
  title: unref(t)("editor.paperSettings")
34223
34223
  }, [
34224
- createBaseVNode("span", _hoisted_5$o, toDisplayString$1(selectedPaper.value === "CUSTOM" ? unref(t)("editor.custom") : selectedPaper.value), 1)
34224
+ createBaseVNode("span", _hoisted_5$n, toDisplayString$1(selectedPaper.value === "CUSTOM" ? unref(t)("editor.custom") : selectedPaper.value), 1)
34225
34225
  ], 8, _hoisted_4$p),
34226
34226
  createBaseVNode("button", {
34227
34227
  onClick: togglePaperSettings,
@@ -34230,13 +34230,13 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
34230
34230
  title: unref(t)("editor.paperSettings")
34231
34231
  }, [
34232
34232
  createVNode(unref(ChevronDown), { class: "w-4 h-4" })
34233
- ], 8, _hoisted_6$l)
34233
+ ], 8, _hoisted_6$k)
34234
34234
  ]),
34235
- showPaperSettings.value ? (openBlock(), createElementBlock("div", _hoisted_7$l, [
34236
- createBaseVNode("h3", _hoisted_8$k, toDisplayString$1(unref(t)("editor.paperSettings")), 1),
34237
- createBaseVNode("div", _hoisted_9$i, [
34235
+ showPaperSettings.value ? (openBlock(), createElementBlock("div", _hoisted_7$k, [
34236
+ createBaseVNode("h3", _hoisted_8$j, toDisplayString$1(unref(t)("editor.paperSettings")), 1),
34237
+ createBaseVNode("div", _hoisted_9$h, [
34238
34238
  createBaseVNode("div", null, [
34239
- createBaseVNode("label", _hoisted_10$h, toDisplayString$1(unref(t)("editor.sizePreset")), 1),
34239
+ createBaseVNode("label", _hoisted_10$g, toDisplayString$1(unref(t)("editor.sizePreset")), 1),
34240
34240
  withDirectives(createBaseVNode("select", {
34241
34241
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedPaper.value = $event),
34242
34242
  onChange: handlePaperChange,
@@ -34247,26 +34247,26 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
34247
34247
  key,
34248
34248
  value: key,
34249
34249
  class: "dark:bg-gray-800 dark:text-gray-200"
34250
- }, toDisplayString$1(key) + " (" + toDisplayString$1(formatUnitValue(size.width)) + toDisplayString$1(unitLabel.value) + " x " + toDisplayString$1(formatUnitValue(size.height)) + toDisplayString$1(unitLabel.value) + ") ", 9, _hoisted_11$h);
34250
+ }, toDisplayString$1(key) + " (" + toDisplayString$1(formatUnitValue(size.width)) + toDisplayString$1(unitLabel.value) + " x " + toDisplayString$1(formatUnitValue(size.height)) + toDisplayString$1(unitLabel.value) + ") ", 9, _hoisted_11$g);
34251
34251
  }), 128)),
34252
- createBaseVNode("option", _hoisted_12$g, toDisplayString$1(unref(t)("editor.custom")), 1)
34252
+ createBaseVNode("option", _hoisted_12$f, toDisplayString$1(unref(t)("editor.custom")), 1)
34253
34253
  ], 544), [
34254
34254
  [vModelSelect, selectedPaper.value]
34255
34255
  ])
34256
34256
  ]),
34257
34257
  createBaseVNode("div", null, [
34258
- createBaseVNode("label", _hoisted_13$g, toDisplayString$1(unref(t)("editor.unit")), 1),
34258
+ createBaseVNode("label", _hoisted_13$f, toDisplayString$1(unref(t)("editor.unit")), 1),
34259
34259
  createBaseVNode("select", {
34260
34260
  value: unref(store).unit,
34261
34261
  onChange: _cache[1] || (_cache[1] = (e) => unref(store).setUnit(e.target.value)),
34262
34262
  class: "w-full px-2 py-1.5 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"
34263
34263
  }, [
34264
- createBaseVNode("option", _hoisted_15$c, toDisplayString$1(unref(t)("common.mm")), 1),
34265
- createBaseVNode("option", _hoisted_16$b, toDisplayString$1(unref(t)("common.cm")), 1),
34266
- createBaseVNode("option", _hoisted_17$b, toDisplayString$1(unref(t)("common.in")), 1),
34267
- createBaseVNode("option", _hoisted_18$a, toDisplayString$1(unref(t)("common.pt")), 1),
34268
- createBaseVNode("option", _hoisted_19$a, toDisplayString$1(unref(t)("common.px")), 1)
34269
- ], 40, _hoisted_14$e)
34264
+ createBaseVNode("option", _hoisted_15$b, toDisplayString$1(unref(t)("common.mm")), 1),
34265
+ createBaseVNode("option", _hoisted_16$a, toDisplayString$1(unref(t)("common.cm")), 1),
34266
+ createBaseVNode("option", _hoisted_17$a, toDisplayString$1(unref(t)("common.in")), 1),
34267
+ createBaseVNode("option", _hoisted_18$9, toDisplayString$1(unref(t)("common.pt")), 1),
34268
+ createBaseVNode("option", _hoisted_19$9, toDisplayString$1(unref(t)("common.px")), 1)
34269
+ ], 40, _hoisted_14$d)
34270
34270
  ]),
34271
34271
  createBaseVNode("div", _hoisted_20$8, [
34272
34272
  createBaseVNode("div", null, [
@@ -34664,24 +34664,24 @@ const _hoisted_1$T = { class: "bg-white rounded-lg shadow-xl w-[700px] max-w-ful
34664
34664
  const _hoisted_2$p = { class: "h-[56px] flex items-center justify-between px-4 border-b border-gray-200" };
34665
34665
  const _hoisted_3$p = { class: "text-lg font-semibold text-gray-800" };
34666
34666
  const _hoisted_4$o = { class: "flex-1 overflow-y-auto p-6 space-y-5 text-sm text-gray-700" };
34667
- const _hoisted_5$n = { class: "space-y-3" };
34668
- const _hoisted_6$k = { class: "font-medium text-gray-900" };
34669
- const _hoisted_7$k = {
34667
+ const _hoisted_5$m = { class: "space-y-3" };
34668
+ const _hoisted_6$j = { class: "font-medium text-gray-900" };
34669
+ const _hoisted_7$j = {
34670
34670
  key: 0,
34671
34671
  class: "grid grid-cols-2 gap-4"
34672
34672
  };
34673
- const _hoisted_8$j = { class: "flex flex-col gap-1 col-span-2" };
34674
- const _hoisted_9$h = { class: "text-xs text-gray-500" };
34675
- const _hoisted_10$g = ["disabled"];
34676
- const _hoisted_11$g = { value: "" };
34677
- const _hoisted_12$f = ["value", "disabled"];
34678
- const _hoisted_13$f = { class: "grid grid-cols-2 gap-4" };
34679
- const _hoisted_14$d = { class: "flex flex-col gap-1" };
34680
- const _hoisted_15$b = { class: "text-xs text-gray-500" };
34681
- const _hoisted_16$a = ["disabled"];
34682
- const _hoisted_17$a = { value: "" };
34683
- const _hoisted_18$9 = ["value"];
34684
- const _hoisted_19$9 = { class: "flex flex-col gap-1" };
34673
+ const _hoisted_8$i = { class: "flex flex-col gap-1 col-span-2" };
34674
+ const _hoisted_9$g = { class: "text-xs text-gray-500" };
34675
+ const _hoisted_10$f = ["disabled"];
34676
+ const _hoisted_11$f = { value: "" };
34677
+ const _hoisted_12$e = ["value", "disabled"];
34678
+ const _hoisted_13$e = { class: "grid grid-cols-2 gap-4" };
34679
+ const _hoisted_14$c = { class: "flex flex-col gap-1" };
34680
+ const _hoisted_15$a = { class: "text-xs text-gray-500" };
34681
+ const _hoisted_16$9 = ["disabled"];
34682
+ const _hoisted_17$9 = { value: "" };
34683
+ const _hoisted_18$8 = ["value"];
34684
+ const _hoisted_19$8 = { class: "flex flex-col gap-1" };
34685
34685
  const _hoisted_20$7 = { class: "text-xs text-gray-500" };
34686
34686
  const _hoisted_21$5 = ["placeholder"];
34687
34687
  const _hoisted_22$5 = {
@@ -34995,49 +34995,49 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
34995
34995
  ])
34996
34996
  ]),
34997
34997
  createBaseVNode("div", _hoisted_4$o, [
34998
- createBaseVNode("div", _hoisted_5$n, [
34999
- createBaseVNode("div", _hoisted_6$k, toDisplayString$1(unref(t)("printDialog.sectionBasic")), 1),
35000
- props.mode === "remote" ? (openBlock(), createElementBlock("div", _hoisted_7$k, [
35001
- createBaseVNode("label", _hoisted_8$j, [
35002
- createBaseVNode("span", _hoisted_9$h, toDisplayString$1(unref(t)("printDialog.remoteClient")), 1),
34998
+ createBaseVNode("div", _hoisted_5$m, [
34999
+ createBaseVNode("div", _hoisted_6$j, toDisplayString$1(unref(t)("printDialog.sectionBasic")), 1),
35000
+ props.mode === "remote" ? (openBlock(), createElementBlock("div", _hoisted_7$j, [
35001
+ createBaseVNode("label", _hoisted_8$i, [
35002
+ createBaseVNode("span", _hoisted_9$g, toDisplayString$1(unref(t)("printDialog.remoteClient")), 1),
35003
35003
  withDirectives(createBaseVNode("select", {
35004
35004
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedClientId.value = $event),
35005
35005
  class: "w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600",
35006
35006
  disabled: isLoadingPrinters.value
35007
35007
  }, [
35008
- createBaseVNode("option", _hoisted_11$g, toDisplayString$1(unref(t)("printDialog.remoteClientPlaceholder")), 1),
35008
+ createBaseVNode("option", _hoisted_11$f, toDisplayString$1(unref(t)("printDialog.remoteClientPlaceholder")), 1),
35009
35009
  (openBlock(true), createElementBlock(Fragment, null, renderList(remoteClientsSafe.value, (client) => {
35010
35010
  return openBlock(), createElementBlock("option", {
35011
35011
  key: client.client_id,
35012
35012
  value: client.client_id,
35013
35013
  disabled: client.online === false
35014
- }, toDisplayString$1(client.client_name || client.client_id) + toDisplayString$1(client.online === false ? " (offline)" : ""), 9, _hoisted_12$f);
35014
+ }, toDisplayString$1(client.client_name || client.client_id) + toDisplayString$1(client.online === false ? " (offline)" : ""), 9, _hoisted_12$e);
35015
35015
  }), 128))
35016
- ], 8, _hoisted_10$g), [
35016
+ ], 8, _hoisted_10$f), [
35017
35017
  [vModelSelect, selectedClientId.value]
35018
35018
  ])
35019
35019
  ])
35020
35020
  ])) : createCommentVNode("", true),
35021
- createBaseVNode("div", _hoisted_13$f, [
35022
- createBaseVNode("label", _hoisted_14$d, [
35023
- createBaseVNode("span", _hoisted_15$b, toDisplayString$1(unref(t)("printDialog.printer")), 1),
35021
+ createBaseVNode("div", _hoisted_13$e, [
35022
+ createBaseVNode("label", _hoisted_14$c, [
35023
+ createBaseVNode("span", _hoisted_15$a, toDisplayString$1(unref(t)("printDialog.printer")), 1),
35024
35024
  withDirectives(createBaseVNode("select", {
35025
35025
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.printer = $event),
35026
35026
  class: "w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600",
35027
35027
  disabled: isLoadingPrinters.value || isLoadingCaps.value || props.mode === "remote" && !selectedClientId.value
35028
35028
  }, [
35029
- createBaseVNode("option", _hoisted_17$a, toDisplayString$1(unref(t)("printDialog.printerSelect")), 1),
35029
+ createBaseVNode("option", _hoisted_17$9, toDisplayString$1(unref(t)("printDialog.printerSelect")), 1),
35030
35030
  (openBlock(true), createElementBlock(Fragment, null, renderList(printerOptions.value, (printer) => {
35031
35031
  return openBlock(), createElementBlock("option", {
35032
35032
  key: printer.key,
35033
35033
  value: printer.key
35034
- }, toDisplayString$1(printer.label), 9, _hoisted_18$9);
35034
+ }, toDisplayString$1(printer.label), 9, _hoisted_18$8);
35035
35035
  }), 128))
35036
- ], 8, _hoisted_16$a), [
35036
+ ], 8, _hoisted_16$9), [
35037
35037
  [vModelSelect, form.printer]
35038
35038
  ])
35039
35039
  ]),
35040
- createBaseVNode("label", _hoisted_19$9, [
35040
+ createBaseVNode("label", _hoisted_19$8, [
35041
35041
  createBaseVNode("span", _hoisted_20$7, toDisplayString$1(unref(t)("printDialog.jobName")), 1),
35042
35042
  withDirectives(createBaseVNode("input", {
35043
35043
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => form.jobName = $event),
@@ -35228,27 +35228,27 @@ const _hoisted_1$S = { class: "flex items-center gap-4 text-gray-700 dark:text-g
35228
35228
  const _hoisted_2$o = { class: "flex items-center gap-2 bg-gray-100 dark:bg-gray-800 rounded-lg p-1 px-2" };
35229
35229
  const _hoisted_3$o = ["disabled", "title"];
35230
35230
  const _hoisted_4$n = ["value"];
35231
- const _hoisted_5$m = { class: "flex items-center gap-1" };
35232
- const _hoisted_6$j = ["disabled", "title"];
35233
- const _hoisted_7$j = ["disabled"];
35234
- const _hoisted_8$i = ["disabled", "title"];
35235
- const _hoisted_9$g = ["disabled", "title"];
35236
- const _hoisted_10$f = ["disabled", "title"];
35237
- const _hoisted_11$f = ["disabled", "title"];
35238
- const _hoisted_12$e = ["disabled", "title"];
35239
- const _hoisted_13$e = ["disabled", "title"];
35240
- const _hoisted_14$c = ["disabled", "title"];
35241
- const _hoisted_15$a = { class: "w-1 h-3.5 rounded-[1px] border border-gray-300 dark:border-gray-600 relative overflow-hidden bg-white" };
35242
- const _hoisted_16$9 = {
35231
+ const _hoisted_5$l = { class: "flex items-center gap-1" };
35232
+ const _hoisted_6$i = ["disabled", "title"];
35233
+ const _hoisted_7$i = ["disabled"];
35234
+ const _hoisted_8$h = ["disabled", "title"];
35235
+ const _hoisted_9$f = ["disabled", "title"];
35236
+ const _hoisted_10$e = ["disabled", "title"];
35237
+ const _hoisted_11$e = ["disabled", "title"];
35238
+ const _hoisted_12$d = ["disabled", "title"];
35239
+ const _hoisted_13$d = ["disabled", "title"];
35240
+ const _hoisted_14$b = ["disabled", "title"];
35241
+ const _hoisted_15$9 = { class: "w-1 h-3.5 rounded-[1px] border border-gray-300 dark:border-gray-600 relative overflow-hidden bg-white" };
35242
+ const _hoisted_16$8 = {
35243
35243
  key: 0,
35244
35244
  class: "absolute inset-0 bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50 bg-repeat bg-[length:6px_6px]"
35245
35245
  };
35246
- const _hoisted_17$9 = {
35246
+ const _hoisted_17$8 = {
35247
35247
  key: 1,
35248
35248
  class: "absolute inset-0 flex items-center justify-center"
35249
35249
  };
35250
- const _hoisted_18$8 = ["disabled", "title"];
35251
- const _hoisted_19$8 = { class: "flex items-center gap-1 bg-gray-100 dark:bg-gray-800 rounded-lg p-1" };
35250
+ const _hoisted_18$7 = ["disabled", "title"];
35251
+ const _hoisted_19$7 = { class: "flex items-center gap-1 bg-gray-100 dark:bg-gray-800 rounded-lg p-1" };
35252
35252
  const _hoisted_20$6 = ["disabled", "title"];
35253
35253
  const _hoisted_21$4 = ["disabled", "title"];
35254
35254
  const _hoisted_22$4 = ["disabled", "title"];
@@ -35630,13 +35630,13 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35630
35630
  [vModelSelect, selectedFont.value]
35631
35631
  ]),
35632
35632
  _cache[40] || (_cache[40] = createBaseVNode("div", { class: "w-px h-4 bg-gray-300 dark:bg-gray-700" }, null, -1)),
35633
- createBaseVNode("div", _hoisted_5$m, [
35633
+ createBaseVNode("div", _hoisted_5$l, [
35634
35634
  createBaseVNode("button", {
35635
35635
  onClick: _cache[1] || (_cache[1] = ($event) => selectedFontSize.value--),
35636
35636
  disabled: isFontControlsDisabled.value,
35637
35637
  class: "w-6 h-6 flex items-center justify-center hover:bg-gray-200 dark:hover:bg-gray-700 rounded text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed",
35638
35638
  title: unref(t)("editor.fontSize") + " (-)"
35639
- }, "-", 8, _hoisted_6$j),
35639
+ }, "-", 8, _hoisted_6$i),
35640
35640
  withDirectives(createBaseVNode("input", {
35641
35641
  type: "number",
35642
35642
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => selectedFontSize.value = $event),
@@ -35644,7 +35644,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35644
35644
  class: "w-12 text-center text-sm bg-transparent dark:bg-gray-800 border-none outline-none focus:ring-0 p-0 disabled:opacity-50 disabled:cursor-not-allowed [appearance:textfield] [-moz-appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none dark:text-gray-200",
35645
35645
  min: "1",
35646
35646
  max: "200"
35647
- }, null, 8, _hoisted_7$j), [
35647
+ }, null, 8, _hoisted_7$i), [
35648
35648
  [vModelText, selectedFontSize.value]
35649
35649
  ]),
35650
35650
  createBaseVNode("button", {
@@ -35652,7 +35652,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35652
35652
  disabled: isFontControlsDisabled.value,
35653
35653
  class: "w-6 h-6 flex items-center justify-center hover:bg-gray-200 dark:hover:bg-gray-700 rounded text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed",
35654
35654
  title: unref(t)("editor.fontSize") + " (+)"
35655
- }, "+", 8, _hoisted_8$i)
35655
+ }, "+", 8, _hoisted_8$h)
35656
35656
  ]),
35657
35657
  _cache[41] || (_cache[41] = createBaseVNode("div", { class: "w-px h-4 bg-gray-300 dark:bg-gray-700" }, null, -1)),
35658
35658
  createBaseVNode("button", {
@@ -35662,7 +35662,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35662
35662
  title: unref(t)("editor.bold")
35663
35663
  }, [
35664
35664
  createVNode(unref(Bold), { class: "w-4 h-4" })
35665
- ], 10, _hoisted_9$g),
35665
+ ], 10, _hoisted_9$f),
35666
35666
  createBaseVNode("button", {
35667
35667
  onClick: toggleItalic,
35668
35668
  disabled: isFontControlsDisabled.value,
@@ -35670,7 +35670,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35670
35670
  title: unref(t)("editor.italic")
35671
35671
  }, [
35672
35672
  createVNode(unref(Italic), { class: "w-4 h-4" })
35673
- ], 10, _hoisted_10$f),
35673
+ ], 10, _hoisted_10$e),
35674
35674
  createBaseVNode("button", {
35675
35675
  onClick: toggleUnderline,
35676
35676
  disabled: isFontControlsDisabled.value,
@@ -35678,7 +35678,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35678
35678
  title: unref(t)("editor.underline")
35679
35679
  }, [
35680
35680
  createVNode(unref(FormatUnderlined), { class: "w-4 h-4" })
35681
- ], 10, _hoisted_11$f),
35681
+ ], 10, _hoisted_11$e),
35682
35682
  createBaseVNode("button", {
35683
35683
  onClick: toggleVertical,
35684
35684
  disabled: isFontControlsDisabled.value,
@@ -35686,7 +35686,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35686
35686
  title: unref(t)("editor.verticalText")
35687
35687
  }, [
35688
35688
  createVNode(unref(TextRotateVertical), { class: "w-4 h-4" })
35689
- ], 10, _hoisted_12$e),
35689
+ ], 10, _hoisted_12$d),
35690
35690
  createVNode(_sfc_main$v, {
35691
35691
  modelValue: selectedColor.value,
35692
35692
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => selectedColor.value = $event),
@@ -35705,7 +35705,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35705
35705
  class: "w-1 h-3.5 rounded-[1px] border border-gray-300 dark:border-gray-600",
35706
35706
  style: normalizeStyle({ backgroundColor: color })
35707
35707
  }, null, 4)
35708
- ], 8, _hoisted_13$e)
35708
+ ], 8, _hoisted_13$d)
35709
35709
  ]),
35710
35710
  _: 1
35711
35711
  }, 8, ["modelValue", "disabled"]),
@@ -35724,17 +35724,17 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35724
35724
  title: unref(t)("editor.backgroundColor")
35725
35725
  }, [
35726
35726
  createVNode(unref(FormatColorFill), { class: "w-4 h-4" }),
35727
- createBaseVNode("div", _hoisted_15$a, [
35728
- color === "transparent" ? (openBlock(), createElementBlock("div", _hoisted_16$9)) : createCommentVNode("", true),
35727
+ createBaseVNode("div", _hoisted_15$9, [
35728
+ color === "transparent" ? (openBlock(), createElementBlock("div", _hoisted_16$8)) : createCommentVNode("", true),
35729
35729
  createBaseVNode("div", {
35730
35730
  class: "absolute inset-0",
35731
35731
  style: normalizeStyle({ backgroundColor: color === "transparent" ? "transparent" : color })
35732
35732
  }, null, 4),
35733
- color === "transparent" ? (openBlock(), createElementBlock("div", _hoisted_17$9, [..._cache[39] || (_cache[39] = [
35733
+ color === "transparent" ? (openBlock(), createElementBlock("div", _hoisted_17$8, [..._cache[39] || (_cache[39] = [
35734
35734
  createBaseVNode("div", { class: "w-full h-[1px] bg-red-500 rotate-90 transform scale-150" }, null, -1)
35735
35735
  ])])) : createCommentVNode("", true)
35736
35736
  ])
35737
- ], 8, _hoisted_14$c)
35737
+ ], 8, _hoisted_14$b)
35738
35738
  ]),
35739
35739
  _: 1
35740
35740
  }, 8, ["modelValue", "disabled"]),
@@ -35746,10 +35746,10 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
35746
35746
  title: unref(t)("editor.resetRotation")
35747
35747
  }, [
35748
35748
  createVNode(unref(RotateCcw), { class: "w-4 h-4" })
35749
- ], 8, _hoisted_18$8)
35749
+ ], 8, _hoisted_18$7)
35750
35750
  ]),
35751
35751
  _cache[48] || (_cache[48] = createBaseVNode("div", { class: "h-6 w-px bg-gray-300 dark:bg-gray-700" }, null, -1)),
35752
- createBaseVNode("div", _hoisted_19$8, [
35752
+ createBaseVNode("div", _hoisted_19$7, [
35753
35753
  createBaseVNode("button", {
35754
35754
  onClick: _cache[6] || (_cache[6] = ($event) => unref(store).alignSelectedElements("left")),
35755
35755
  disabled: !unref(store).selectedElementId || isLocked.value || !unref(store).isTemplateEditable,
@@ -36642,7 +36642,7 @@ function render$r(_ctx, _cache) {
36642
36642
  }
36643
36643
  const InfoIcon = markRaw({ name: "material-symbols-info", render: render$r });
36644
36644
  const name = "x-print-designer";
36645
- const version = "0.2.6";
36645
+ const version = "0.2.7";
36646
36646
  const dependencies = { "@guolao/vue-monaco-editor": "^1.6.0", "canvg": "^3.0.11", "dom-to-image-more": "^3.7.2", "echarts": "^6.0.0", "jsbarcode": "^3.12.3", "jspdf": "4.2", "jszip": "^3.10.1", "lodash": "^4.17.21", "pinia": "^2.3.0", "qrcode": "^1.5.4", "uuid": "^11.0.3", "vue": "^3.5.13", "vue-i18n": "^11.2.8" };
36647
36647
  const devDependencies = { "@iconify-json/material-symbols": "^1.2.53", "@types/jsbarcode": "^3.11.4", "@types/lodash": "^4.17.13", "@types/node": "^22.10.2", "@types/qrcode": "^1.5.6", "@types/uuid": "^10.0.0", "@vitejs/plugin-vue": "^5.2.1", "@vue/tsconfig": "^0.7.0", "autoprefixer": "^10.4.20", "postcss": "^8.4.49", "rollup-plugin-visualizer": "^7.0.1", "sharp": "^0.34.5", "tailwindcss": "^3.4.17", "terser": "^5.46.1", "typescript": "~5.6.2", "unplugin-icons": "^23.0.1", "vite": "^6.0.1", "vue-tsc": "^2.1.10" };
36648
36648
  const pkg = {
@@ -36655,24 +36655,24 @@ const _hoisted_1$P = { class: "bg-white rounded-lg shadow-xl w-[700px] max-w-ful
36655
36655
  const _hoisted_2$n = { class: "w-48 bg-gray-50 border-r border-gray-200 flex flex-col" };
36656
36656
  const _hoisted_3$n = { class: "h-[60px] flex items-center px-4 border-b border-gray-200" };
36657
36657
  const _hoisted_4$m = { class: "text-lg font-semibold text-gray-800" };
36658
- const _hoisted_5$l = { class: "flex-1 py-2" };
36659
- const _hoisted_6$i = { class: "flex-1 flex flex-col min-w-0" };
36660
- const _hoisted_7$i = { class: "h-[60px] flex items-center justify-between px-4 border-b border-gray-200" };
36661
- const _hoisted_8$h = { class: "text-lg font-semibold text-gray-800" };
36662
- const _hoisted_9$f = { class: "flex-1 overflow-y-auto p-6" };
36663
- const _hoisted_10$e = {
36658
+ const _hoisted_5$k = { class: "flex-1 py-2" };
36659
+ const _hoisted_6$h = { class: "flex-1 flex flex-col min-w-0" };
36660
+ const _hoisted_7$h = { class: "h-[60px] flex items-center justify-between px-4 border-b border-gray-200" };
36661
+ const _hoisted_8$g = { class: "text-lg font-semibold text-gray-800" };
36662
+ const _hoisted_9$e = { class: "flex-1 overflow-y-auto p-6" };
36663
+ const _hoisted_10$d = {
36664
36664
  key: 0,
36665
36665
  class: "space-y-6"
36666
36666
  };
36667
- const _hoisted_11$e = { class: "grid grid-cols-1 gap-6 text-sm" };
36668
- const _hoisted_12$d = { class: "font-medium text-gray-900 mb-3 border-b pb-1" };
36669
- const _hoisted_13$d = { class: "space-y-2 text-gray-600" };
36670
- const _hoisted_14$b = { class: "flex justify-between items-center" };
36671
- const _hoisted_15$9 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36672
- const _hoisted_16$8 = { class: "flex justify-between items-center" };
36673
- const _hoisted_17$8 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36674
- const _hoisted_18$7 = { class: "flex justify-between items-center" };
36675
- const _hoisted_19$7 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36667
+ const _hoisted_11$d = { class: "grid grid-cols-1 gap-6 text-sm" };
36668
+ const _hoisted_12$c = { class: "font-medium text-gray-900 mb-3 border-b pb-1" };
36669
+ const _hoisted_13$c = { class: "space-y-2 text-gray-600" };
36670
+ const _hoisted_14$a = { class: "flex justify-between items-center" };
36671
+ const _hoisted_15$8 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36672
+ const _hoisted_16$7 = { class: "flex justify-between items-center" };
36673
+ const _hoisted_17$7 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36674
+ const _hoisted_18$6 = { class: "flex justify-between items-center" };
36675
+ const _hoisted_19$6 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36676
36676
  const _hoisted_20$5 = { class: "flex justify-between items-center" };
36677
36677
  const _hoisted_21$3 = { class: "bg-gray-100 px-2 py-0.5 rounded border text-xs" };
36678
36678
  const _hoisted_22$3 = { class: "flex justify-between items-center" };
@@ -36808,7 +36808,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
36808
36808
  createBaseVNode("div", _hoisted_3$n, [
36809
36809
  createBaseVNode("h3", _hoisted_4$m, toDisplayString$1(unref(t)("help.title")), 1)
36810
36810
  ]),
36811
- createBaseVNode("div", _hoisted_5$l, [
36811
+ createBaseVNode("div", _hoisted_5$k, [
36812
36812
  createBaseVNode("button", {
36813
36813
  onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "shortcuts"),
36814
36814
  class: normalizeClass(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm", activeTab.value === "shortcuts" ? "bg-white text-blue-600 border-l-4 border-blue-600 font-medium" : "text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])
@@ -36825,9 +36825,9 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
36825
36825
  ], 2)
36826
36826
  ])
36827
36827
  ]),
36828
- createBaseVNode("div", _hoisted_6$i, [
36829
- createBaseVNode("div", _hoisted_7$i, [
36830
- createBaseVNode("h3", _hoisted_8$h, toDisplayString$1(activeTab.value === "shortcuts" ? unref(t)("shortcuts.keyboardShortcuts") : unref(t)("help.aboutProject", { name: unref(projectName) })), 1),
36828
+ createBaseVNode("div", _hoisted_6$h, [
36829
+ createBaseVNode("div", _hoisted_7$h, [
36830
+ createBaseVNode("h3", _hoisted_8$g, toDisplayString$1(activeTab.value === "shortcuts" ? unref(t)("shortcuts.keyboardShortcuts") : unref(t)("help.aboutProject", { name: unref(projectName) })), 1),
36831
36831
  createBaseVNode("button", {
36832
36832
  onClick: close,
36833
36833
  class: "p-1 hover:bg-gray-100 rounded-full transition-colors text-gray-500"
@@ -36835,26 +36835,26 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
36835
36835
  createVNode(unref(Close), { class: "w-4 h-4" })
36836
36836
  ])
36837
36837
  ]),
36838
- createBaseVNode("div", _hoisted_9$f, [
36839
- activeTab.value === "shortcuts" ? (openBlock(), createElementBlock("div", _hoisted_10$e, [
36840
- createBaseVNode("div", _hoisted_11$e, [
36838
+ createBaseVNode("div", _hoisted_9$e, [
36839
+ activeTab.value === "shortcuts" ? (openBlock(), createElementBlock("div", _hoisted_10$d, [
36840
+ createBaseVNode("div", _hoisted_11$d, [
36841
36841
  createBaseVNode("div", null, [
36842
- createBaseVNode("h4", _hoisted_12$d, toDisplayString$1(unref(t)("shortcuts.general")), 1),
36843
- createBaseVNode("ul", _hoisted_13$d, [
36844
- createBaseVNode("li", _hoisted_14$b, [
36842
+ createBaseVNode("h4", _hoisted_12$c, toDisplayString$1(unref(t)("shortcuts.general")), 1),
36843
+ createBaseVNode("ul", _hoisted_13$c, [
36844
+ createBaseVNode("li", _hoisted_14$a, [
36845
36845
  createBaseVNode("span", null, toDisplayString$1(unref(t)("common.save")), 1),
36846
36846
  _cache[2] || (_cache[2] = createTextVNode()),
36847
- createBaseVNode("kbd", _hoisted_15$9, toDisplayString$1(unref(formatShortcut)(["Ctrl", "S"])), 1)
36847
+ createBaseVNode("kbd", _hoisted_15$8, toDisplayString$1(unref(formatShortcut)(["Ctrl", "S"])), 1)
36848
36848
  ]),
36849
- createBaseVNode("li", _hoisted_16$8, [
36849
+ createBaseVNode("li", _hoisted_16$7, [
36850
36850
  createBaseVNode("span", null, toDisplayString$1(unref(t)("shortcuts.saveAsTemplate")), 1),
36851
36851
  _cache[3] || (_cache[3] = createTextVNode()),
36852
- createBaseVNode("kbd", _hoisted_17$8, toDisplayString$1(unref(formatShortcut)(["Ctrl", "Shift", "S"])), 1)
36852
+ createBaseVNode("kbd", _hoisted_17$7, toDisplayString$1(unref(formatShortcut)(["Ctrl", "Shift", "S"])), 1)
36853
36853
  ]),
36854
- createBaseVNode("li", _hoisted_18$7, [
36854
+ createBaseVNode("li", _hoisted_18$6, [
36855
36855
  createBaseVNode("span", null, toDisplayString$1(unref(t)("editor.print")), 1),
36856
36856
  _cache[4] || (_cache[4] = createTextVNode()),
36857
- createBaseVNode("kbd", _hoisted_19$7, toDisplayString$1(unref(formatShortcut)(["Ctrl", "P"])), 1)
36857
+ createBaseVNode("kbd", _hoisted_19$6, toDisplayString$1(unref(formatShortcut)(["Ctrl", "P"])), 1)
36858
36858
  ]),
36859
36859
  createBaseVNode("li", _hoisted_20$5, [
36860
36860
  createBaseVNode("span", null, toDisplayString$1(unref(t)("editor.exportPdf")), 1),
@@ -37145,30 +37145,30 @@ const _hoisted_1$K = { class: "bg-white rounded-lg shadow-xl w-[700px] max-w-ful
37145
37145
  const _hoisted_2$m = { class: "w-48 bg-gray-50 border-r border-gray-200 flex flex-col" };
37146
37146
  const _hoisted_3$m = { class: "h-[60px] flex items-center px-4 border-b border-gray-200" };
37147
37147
  const _hoisted_4$l = { class: "text-lg font-semibold text-gray-800" };
37148
- const _hoisted_5$k = { class: "flex-1 py-2" };
37149
- const _hoisted_6$h = { class: "flex items-center gap-2" };
37150
- const _hoisted_7$h = {
37148
+ const _hoisted_5$j = { class: "flex-1 py-2" };
37149
+ const _hoisted_6$g = { class: "flex items-center gap-2" };
37150
+ const _hoisted_7$g = {
37151
37151
  key: 0,
37152
37152
  class: "relative inline-flex h-2.5 w-2.5"
37153
37153
  };
37154
- const _hoisted_8$g = { class: "flex items-center gap-2" };
37155
- const _hoisted_9$e = {
37154
+ const _hoisted_8$f = { class: "flex items-center gap-2" };
37155
+ const _hoisted_9$d = {
37156
37156
  key: 0,
37157
37157
  class: "relative inline-flex h-2.5 w-2.5"
37158
37158
  };
37159
- const _hoisted_10$d = { class: "flex-1 flex flex-col min-w-0 relative" };
37160
- const _hoisted_11$d = { class: "h-[60px] flex items-center justify-between px-4 border-b border-gray-200" };
37161
- const _hoisted_12$c = { class: "flex items-center gap-3" };
37162
- const _hoisted_13$c = { class: "text-lg font-semibold text-gray-800" };
37163
- const _hoisted_14$a = { class: "flex-1 overflow-y-auto p-6" };
37164
- const _hoisted_15$8 = {
37159
+ const _hoisted_10$c = { class: "flex-1 flex flex-col min-w-0 relative" };
37160
+ const _hoisted_11$c = { class: "h-[60px] flex items-center justify-between px-4 border-b border-gray-200" };
37161
+ const _hoisted_12$b = { class: "flex items-center gap-3" };
37162
+ const _hoisted_13$b = { class: "text-lg font-semibold text-gray-800" };
37163
+ const _hoisted_14$9 = { class: "flex-1 overflow-y-auto p-6" };
37164
+ const _hoisted_15$7 = {
37165
37165
  key: 0,
37166
37166
  class: "space-y-4 text-sm text-gray-700"
37167
37167
  };
37168
- const _hoisted_16$7 = { class: "mb-2 font-medium text-gray-900" };
37169
- const _hoisted_17$7 = { class: "flex items-center gap-3" };
37170
- const _hoisted_18$6 = { class: "text-xs text-gray-500 mt-2" };
37171
- const _hoisted_19$6 = { class: "border-t border-gray-200 pt-4" };
37168
+ const _hoisted_16$6 = { class: "mb-2 font-medium text-gray-900" };
37169
+ const _hoisted_17$6 = { class: "flex items-center gap-3" };
37170
+ const _hoisted_18$5 = { class: "text-xs text-gray-500 mt-2" };
37171
+ const _hoisted_19$5 = { class: "border-t border-gray-200 pt-4" };
37172
37172
  const _hoisted_20$4 = { class: "mb-2 font-medium text-gray-900" };
37173
37173
  const _hoisted_21$2 = { class: "flex flex-wrap gap-2" };
37174
37174
  const _hoisted_22$2 = ["onClick"];
@@ -37582,7 +37582,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
37582
37582
  createBaseVNode("div", _hoisted_3$m, [
37583
37583
  createBaseVNode("h3", _hoisted_4$l, toDisplayString$1(unref(t)("settings.title")), 1)
37584
37584
  ]),
37585
- createBaseVNode("div", _hoisted_5$k, [
37585
+ createBaseVNode("div", _hoisted_5$j, [
37586
37586
  createBaseVNode("button", {
37587
37587
  onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "basic"),
37588
37588
  class: normalizeClass(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm", activeTab.value === "basic" ? "bg-white text-blue-600 border-l-4 border-blue-600 font-medium" : "text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])
@@ -37602,9 +37602,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
37602
37602
  class: normalizeClass(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm", activeTab.value === "local" ? "bg-white text-blue-600 border-l-4 border-blue-600 font-medium" : "text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])
37603
37603
  }, [
37604
37604
  createVNode(unref(PrintIcon), { class: "w-5 h-5" }),
37605
- createBaseVNode("span", _hoisted_6$h, [
37605
+ createBaseVNode("span", _hoisted_6$g, [
37606
37606
  createBaseVNode("span", null, toDisplayString$1(unref(t)("settings.localConnection")), 1),
37607
- localConnected.value ? (openBlock(), createElementBlock("span", _hoisted_7$h, [..._cache[30] || (_cache[30] = [
37607
+ localConnected.value ? (openBlock(), createElementBlock("span", _hoisted_7$g, [..._cache[30] || (_cache[30] = [
37608
37608
  createBaseVNode("span", { class: "absolute inline-flex h-full w-full rounded-full bg-emerald-400/80 animate-[ping_2.4s_ease-in-out_infinite]" }, null, -1),
37609
37609
  createBaseVNode("span", { class: "relative inline-flex h-2.5 w-2.5 rounded-full bg-emerald-500" }, null, -1)
37610
37610
  ])])) : createCommentVNode("", true)
@@ -37615,9 +37615,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
37615
37615
  class: normalizeClass(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm", activeTab.value === "remote" ? "bg-white text-blue-600 border-l-4 border-blue-600 font-medium" : "text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])
37616
37616
  }, [
37617
37617
  createVNode(unref(CloudIcon), { class: "w-5 h-5" }),
37618
- createBaseVNode("span", _hoisted_8$g, [
37618
+ createBaseVNode("span", _hoisted_8$f, [
37619
37619
  createBaseVNode("span", null, toDisplayString$1(unref(t)("settings.remoteConnection")), 1),
37620
- remoteConnected.value ? (openBlock(), createElementBlock("span", _hoisted_9$e, [..._cache[31] || (_cache[31] = [
37620
+ remoteConnected.value ? (openBlock(), createElementBlock("span", _hoisted_9$d, [..._cache[31] || (_cache[31] = [
37621
37621
  createBaseVNode("span", { class: "absolute inline-flex h-full w-full rounded-full bg-emerald-400/80 animate-[ping_2.4s_ease-in-out_infinite]" }, null, -1),
37622
37622
  createBaseVNode("span", { class: "relative inline-flex h-2.5 w-2.5 rounded-full bg-emerald-500" }, null, -1)
37623
37623
  ])])) : createCommentVNode("", true)
@@ -37625,10 +37625,10 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
37625
37625
  ], 2)
37626
37626
  ])
37627
37627
  ]),
37628
- createBaseVNode("div", _hoisted_10$d, [
37629
- createBaseVNode("div", _hoisted_11$d, [
37630
- createBaseVNode("div", _hoisted_12$c, [
37631
- createBaseVNode("h3", _hoisted_13$c, toDisplayString$1(activeTab.value === "basic" ? unref(t)("settings.basic") : activeTab.value === "language" ? unref(t)("settings.language") : activeTab.value === "local" ? unref(t)("settings.localConnection") : unref(t)("settings.remoteConnection")), 1)
37628
+ createBaseVNode("div", _hoisted_10$c, [
37629
+ createBaseVNode("div", _hoisted_11$c, [
37630
+ createBaseVNode("div", _hoisted_12$b, [
37631
+ createBaseVNode("h3", _hoisted_13$b, toDisplayString$1(activeTab.value === "basic" ? unref(t)("settings.basic") : activeTab.value === "language" ? unref(t)("settings.language") : activeTab.value === "local" ? unref(t)("settings.localConnection") : unref(t)("settings.remoteConnection")), 1)
37632
37632
  ]),
37633
37633
  createBaseVNode("button", {
37634
37634
  onClick: close,
@@ -37637,11 +37637,11 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
37637
37637
  createVNode(unref(Close), { class: "w-4 h-4" })
37638
37638
  ])
37639
37639
  ]),
37640
- createBaseVNode("div", _hoisted_14$a, [
37641
- activeTab.value === "basic" ? (openBlock(), createElementBlock("div", _hoisted_15$8, [
37640
+ createBaseVNode("div", _hoisted_14$9, [
37641
+ activeTab.value === "basic" ? (openBlock(), createElementBlock("div", _hoisted_15$7, [
37642
37642
  createBaseVNode("div", null, [
37643
- createBaseVNode("div", _hoisted_16$7, toDisplayString$1(unref(t)("settings.theme")), 1),
37644
- createBaseVNode("div", _hoisted_17$7, [
37643
+ createBaseVNode("div", _hoisted_16$6, toDisplayString$1(unref(t)("settings.theme")), 1),
37644
+ createBaseVNode("div", _hoisted_17$6, [
37645
37645
  createBaseVNode("label", {
37646
37646
  class: normalizeClass(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer", unref(selectedTheme) === "system" ? "border-blue-600 text-blue-700" : "border-gray-300"])
37647
37647
  }, [
@@ -37679,9 +37679,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
37679
37679
  createBaseVNode("span", null, toDisplayString$1(unref(t)("settings.themeDark")), 1)
37680
37680
  ], 2)
37681
37681
  ]),
37682
- createBaseVNode("p", _hoisted_18$6, toDisplayString$1(unref(t)("settings.themeDesc")), 1)
37682
+ createBaseVNode("p", _hoisted_18$5, toDisplayString$1(unref(t)("settings.themeDesc")), 1)
37683
37683
  ]),
37684
- createBaseVNode("div", _hoisted_19$6, [
37684
+ createBaseVNode("div", _hoisted_19$5, [
37685
37685
  createBaseVNode("div", _hoisted_20$4, toDisplayString$1(unref(t)("settings.themeColor")), 1),
37686
37686
  createBaseVNode("div", _hoisted_21$2, [
37687
37687
  (openBlock(true), createElementBlock(Fragment, null, renderList(brandPresets.value.filter((p2) => p2.key !== "custom"), (preset) => {
@@ -38314,20 +38314,20 @@ const _hoisted_1$u = { class: "w-64 bg-white dark:bg-gray-900 border-r border-gr
38314
38314
  const _hoisted_2$l = { class: "p-4 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800" };
38315
38315
  const _hoisted_3$l = { class: "font-semibold text-gray-700 dark:text-gray-200" };
38316
38316
  const _hoisted_4$k = { class: "text-xs text-gray-500 dark:text-gray-400 mt-1" };
38317
- const _hoisted_5$j = { class: "flex border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900" };
38318
- const _hoisted_6$g = {
38317
+ const _hoisted_5$i = { class: "flex border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900" };
38318
+ const _hoisted_6$f = {
38319
38319
  key: 0,
38320
38320
  class: "absolute bottom-0 left-0 w-full h-0.5 bg-blue-600 dark:bg-blue-400"
38321
38321
  };
38322
- const _hoisted_7$g = { class: "flex-1 overflow-y-auto" };
38323
- const _hoisted_8$f = { class: "text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider mb-3 px-1" };
38324
- const _hoisted_9$d = { class: "grid grid-cols-2 gap-3" };
38325
- const _hoisted_10$c = ["onDragstart"];
38326
- const _hoisted_11$c = { class: "text-sm font-medium text-gray-700 dark:text-gray-200 whitespace-nowrap" };
38327
- const _hoisted_12$b = ["onClick", "disabled"];
38328
- const _hoisted_13$b = ["src"];
38329
- const _hoisted_14$9 = ["src"];
38330
- const _hoisted_15$7 = {
38322
+ const _hoisted_7$f = { class: "flex-1 overflow-y-auto" };
38323
+ const _hoisted_8$e = { class: "text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider mb-3 px-1" };
38324
+ const _hoisted_9$c = { class: "grid grid-cols-2 gap-3" };
38325
+ const _hoisted_10$b = ["onDragstart"];
38326
+ const _hoisted_11$b = { class: "text-sm font-medium text-gray-700 dark:text-gray-200 whitespace-nowrap" };
38327
+ const _hoisted_12$a = ["onClick", "disabled"];
38328
+ const _hoisted_13$a = ["src"];
38329
+ const _hoisted_14$8 = ["src"];
38330
+ const _hoisted_15$6 = {
38331
38331
  key: 4,
38332
38332
  class: "w-3.5 h-3.5 inline-flex items-center justify-center"
38333
38333
  };
@@ -38670,23 +38670,23 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
38670
38670
  createBaseVNode("h2", _hoisted_3$l, toDisplayString$1(unref(t)("sidebar.elements")), 1),
38671
38671
  createBaseVNode("p", _hoisted_4$k, toDisplayString$1(unref(t)("sidebar.dragToCanvas")), 1)
38672
38672
  ]),
38673
- createBaseVNode("div", _hoisted_5$j, [
38673
+ createBaseVNode("div", _hoisted_5$i, [
38674
38674
  createBaseVNode("button", {
38675
38675
  onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "standard"),
38676
38676
  class: normalizeClass(["flex-1 py-3 text-sm font-medium transition-colors relative", activeTab.value === "standard" ? "text-blue-600 dark:text-blue-400" : "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-800"])
38677
38677
  }, [
38678
38678
  createTextVNode(toDisplayString$1(unref(t)("sidebar.standard")) + " ", 1),
38679
- activeTab.value === "standard" ? (openBlock(), createElementBlock("div", _hoisted_6$g)) : createCommentVNode("", true)
38679
+ activeTab.value === "standard" ? (openBlock(), createElementBlock("div", _hoisted_6$f)) : createCommentVNode("", true)
38680
38680
  ], 2)
38681
38681
  ]),
38682
- createBaseVNode("div", _hoisted_7$g, [
38682
+ createBaseVNode("div", _hoisted_7$f, [
38683
38683
  activeTab.value === "standard" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, renderList(categories, (category) => {
38684
38684
  return createBaseVNode("div", {
38685
38685
  key: category.title,
38686
38686
  class: "p-4 border-b border-gray-100 dark:border-gray-800 last:border-0"
38687
38687
  }, [
38688
- createBaseVNode("h3", _hoisted_8$f, toDisplayString$1(unref(t)(category.title)), 1),
38689
- createBaseVNode("div", _hoisted_9$d, [
38688
+ createBaseVNode("h3", _hoisted_8$e, toDisplayString$1(unref(t)(category.title)), 1),
38689
+ createBaseVNode("div", _hoisted_9$c, [
38690
38690
  (openBlock(true), createElementBlock(Fragment, null, renderList(category.items, (item) => {
38691
38691
  return openBlock(), createElementBlock("div", {
38692
38692
  key: item.type,
@@ -38695,8 +38695,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
38695
38695
  onDragstart: (e) => handleDragStart(e, item.type)
38696
38696
  }, [
38697
38697
  (openBlock(), createBlock(resolveDynamicComponent(item.icon), { class: "w-8 h-8 text-gray-600 dark:text-gray-300 mb-2" })),
38698
- createBaseVNode("span", _hoisted_11$c, toDisplayString$1(unref(t)(item.label)), 1)
38699
- ], 40, _hoisted_10$c);
38698
+ createBaseVNode("span", _hoisted_11$b, toDisplayString$1(unref(t)(item.label)), 1)
38699
+ ], 40, _hoisted_10$b);
38700
38700
  }), 128))
38701
38701
  ])
38702
38702
  ]);
@@ -38730,16 +38730,16 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
38730
38730
  key: 1,
38731
38731
  src: menuItem.iconImage,
38732
38732
  class: "w-3.5 h-3.5 object-contain"
38733
- }, null, 8, _hoisted_13$b)) : menuItem.iconClass ? (openBlock(), createElementBlock("i", {
38733
+ }, null, 8, _hoisted_13$a)) : menuItem.iconClass ? (openBlock(), createElementBlock("i", {
38734
38734
  key: 2,
38735
38735
  class: normalizeClass(menuItem.iconClass)
38736
38736
  }, null, 2)) : resolveIconFromIconField(menuItem.icon) ? (openBlock(), createElementBlock("img", {
38737
38737
  key: 3,
38738
38738
  src: resolveIconFromIconField(menuItem.icon),
38739
38739
  class: "w-3.5 h-3.5 object-contain"
38740
- }, null, 8, _hoisted_14$9)) : menuItem.icon ? (openBlock(), createElementBlock("span", _hoisted_15$7, toDisplayString$1(menuItem.icon), 1)) : createCommentVNode("", true),
38740
+ }, null, 8, _hoisted_14$8)) : menuItem.icon ? (openBlock(), createElementBlock("span", _hoisted_15$6, toDisplayString$1(menuItem.icon), 1)) : createCommentVNode("", true),
38741
38741
  createBaseVNode("span", null, toDisplayString$1(menuItem.label), 1)
38742
- ], 10, _hoisted_12$b);
38742
+ ], 10, _hoisted_12$a);
38743
38743
  }), 128)) : createCommentVNode("", true)
38744
38744
  ], 4)
38745
38745
  ])) : createCommentVNode("", true)
@@ -38774,10 +38774,10 @@ const _hoisted_1$t = {
38774
38774
  const _hoisted_2$k = { class: "text-sm text-gray-700 dark:text-gray-200 font-medium" };
38775
38775
  const _hoisted_3$k = ["disabled"];
38776
38776
  const _hoisted_4$j = { class: "sr-only" };
38777
- const _hoisted_5$i = { key: 1 };
38778
- const _hoisted_6$f = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
38779
- const _hoisted_7$f = ["value", "disabled", "placeholder"];
38780
- const _hoisted_8$e = ["type", "value", "disabled", "placeholder", "min", "max", "step"];
38777
+ const _hoisted_5$h = { key: 1 };
38778
+ const _hoisted_6$e = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1" };
38779
+ const _hoisted_7$e = ["value", "disabled", "placeholder"];
38780
+ const _hoisted_8$d = ["type", "value", "disabled", "placeholder", "min", "max", "step"];
38781
38781
  const _sfc_main$l = /* @__PURE__ */ defineComponent({
38782
38782
  __name: "PropertyInput",
38783
38783
  props: {
@@ -38812,8 +38812,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
38812
38812
  class: normalizeClass(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out", __props.value ? "translate-x-5" : "translate-x-0"])
38813
38813
  }, null, 2)
38814
38814
  ], 10, _hoisted_3$k)
38815
- ])) : (openBlock(), createElementBlock("div", _hoisted_5$i, [
38816
- createBaseVNode("label", _hoisted_6$f, toDisplayString$1(__props.label), 1),
38815
+ ])) : (openBlock(), createElementBlock("div", _hoisted_5$h, [
38816
+ createBaseVNode("label", _hoisted_6$e, toDisplayString$1(__props.label), 1),
38817
38817
  __props.type === "textarea" ? (openBlock(), createElementBlock("textarea", {
38818
38818
  key: 0,
38819
38819
  value: __props.value === void 0 || __props.value === null ? "" : String(__props.value),
@@ -38821,7 +38821,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
38821
38821
  placeholder: __props.placeholder,
38822
38822
  onInput: handleInput,
38823
38823
  class: "w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none h-24 resize-y disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"
38824
- }, null, 40, _hoisted_7$f)) : (openBlock(), createElementBlock("input", {
38824
+ }, null, 40, _hoisted_7$e)) : (openBlock(), createElementBlock("input", {
38825
38825
  key: 1,
38826
38826
  type: __props.type || "text",
38827
38827
  value: __props.value === void 0 || __props.value === null ? "" : String(__props.value),
@@ -38832,7 +38832,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
38832
38832
  step: __props.step,
38833
38833
  onChange: handleInput,
38834
38834
  class: "w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"
38835
- }, null, 40, _hoisted_8$e))
38835
+ }, null, 40, _hoisted_8$d))
38836
38836
  ]));
38837
38837
  };
38838
38838
  }
@@ -38945,7 +38945,7 @@ const _hoisted_1$p = { class: "flex flex-col gap-1" };
38945
38945
  const _hoisted_2$h = { class: "flex justify-between items-center" };
38946
38946
  const _hoisted_3$h = { class: "text-xs text-gray-500 font-medium" };
38947
38947
  const _hoisted_4$h = { class: "flex items-center gap-2" };
38948
- const _hoisted_5$h = { class: "text-[10px] text-gray-400 uppercase" };
38948
+ const _hoisted_5$g = { class: "text-[10px] text-gray-400 uppercase" };
38949
38949
  const _sfc_main$i = /* @__PURE__ */ defineComponent({
38950
38950
  __name: "PropertyCode",
38951
38951
  props: {
@@ -38957,7 +38957,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
38957
38957
  },
38958
38958
  emits: ["update:value"],
38959
38959
  setup(__props, { emit: __emit }) {
38960
- const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-Bm7ZKHB-.js").then((m) => m.Editor));
38960
+ const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-BbNFaQX5.js").then((m) => m.Editor));
38961
38961
  const emit2 = __emit;
38962
38962
  useDesignerStore();
38963
38963
  const { isDark: isDark2 } = useTheme();
@@ -38995,7 +38995,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
38995
38995
  createBaseVNode("div", _hoisted_2$h, [
38996
38996
  createBaseVNode("label", _hoisted_3$h, toDisplayString$1(__props.label), 1),
38997
38997
  createBaseVNode("div", _hoisted_4$h, [
38998
- createBaseVNode("span", _hoisted_5$h, toDisplayString$1(__props.language), 1),
38998
+ createBaseVNode("span", _hoisted_5$g, toDisplayString$1(__props.language), 1),
38999
38999
  createBaseVNode("button", {
39000
39000
  onClick: toggleExpand,
39001
39001
  class: "text-gray-400 hover:text-blue-600 transition-colors p-0.5 rounded hover:bg-gray-100",
@@ -39037,9 +39037,9 @@ const _hoisted_1$o = { class: "block text-xs text-gray-500 dark:text-gray-400 mb
39037
39037
  const _hoisted_2$g = { class: "space-y-2" };
39038
39038
  const _hoisted_3$g = ["value", "disabled", "placeholder"];
39039
39039
  const _hoisted_4$g = { class: "flex flex-col gap-1" };
39040
- const _hoisted_5$g = ["disabled"];
39041
- const _hoisted_6$e = { class: "text-[10px] text-gray-400 dark:text-gray-500 text-center" };
39042
- const _hoisted_7$e = {
39040
+ const _hoisted_5$f = ["disabled"];
39041
+ const _hoisted_6$d = { class: "text-[10px] text-gray-400 dark:text-gray-500 text-center" };
39042
+ const _hoisted_7$d = {
39043
39043
  key: 0,
39044
39044
  class: "text-xs text-red-500 mt-1"
39045
39045
  };
@@ -39124,10 +39124,10 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
39124
39124
  })
39125
39125
  ], -1)),
39126
39126
  createTextVNode(" " + toDisplayString$1(unref(t)("properties.image.uploadBtn")), 1)
39127
- ], 8, _hoisted_5$g),
39128
- createBaseVNode("span", _hoisted_6$e, toDisplayString$1(unref(t)("properties.image.uploadTip")), 1)
39127
+ ], 8, _hoisted_5$f),
39128
+ createBaseVNode("span", _hoisted_6$d, toDisplayString$1(unref(t)("properties.image.uploadTip")), 1)
39129
39129
  ]),
39130
- errorMessage.value ? (openBlock(), createElementBlock("p", _hoisted_7$e, toDisplayString$1(errorMessage.value), 1)) : createCommentVNode("", true),
39130
+ errorMessage.value ? (openBlock(), createElementBlock("p", _hoisted_7$d, toDisplayString$1(errorMessage.value), 1)) : createCommentVNode("", true),
39131
39131
  createBaseVNode("input", {
39132
39132
  ref_key: "fileInput",
39133
39133
  ref: fileInput2,
@@ -39148,25 +39148,25 @@ const _hoisted_4$f = {
39148
39148
  key: 0,
39149
39149
  class: "truncate flex-1"
39150
39150
  };
39151
- const _hoisted_5$f = {
39151
+ const _hoisted_5$e = {
39152
39152
  key: 1,
39153
39153
  class: "text-gray-400 dark:text-gray-500 truncate flex-1"
39154
39154
  };
39155
- const _hoisted_6$d = {
39155
+ const _hoisted_6$c = {
39156
39156
  key: 0,
39157
39157
  class: "absolute top-full left-0 right-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000]"
39158
39158
  };
39159
- const _hoisted_7$d = { class: "p-2 border-b border-gray-100 dark:border-gray-700 sticky top-0 bg-white dark:bg-gray-800" };
39160
- const _hoisted_8$d = { class: "relative" };
39161
- const _hoisted_9$c = ["value", "placeholder"];
39162
- const _hoisted_10$b = { class: "max-h-40 overflow-y-auto custom-scrollbar" };
39163
- const _hoisted_11$b = {
39159
+ const _hoisted_7$c = { class: "p-2 border-b border-gray-100 dark:border-gray-700 sticky top-0 bg-white dark:bg-gray-800" };
39160
+ const _hoisted_8$c = { class: "relative" };
39161
+ const _hoisted_9$b = ["value", "placeholder"];
39162
+ const _hoisted_10$a = { class: "max-h-40 overflow-y-auto custom-scrollbar" };
39163
+ const _hoisted_11$a = {
39164
39164
  key: 0,
39165
39165
  class: "px-3 py-4 text-xs text-gray-400 dark:text-gray-500 text-center"
39166
39166
  };
39167
- const _hoisted_12$a = ["onMousedown"];
39168
- const _hoisted_13$a = { class: "truncate text-gray-700 dark:text-gray-200" };
39169
- const _hoisted_14$8 = {
39167
+ const _hoisted_12$9 = ["onMousedown"];
39168
+ const _hoisted_13$9 = { class: "truncate text-gray-700 dark:text-gray-200" };
39169
+ const _hoisted_14$7 = {
39170
39170
  key: 0,
39171
39171
  class: "truncate text-gray-400 dark:text-gray-500 text-xs ml-auto"
39172
39172
  };
@@ -39361,7 +39361,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
39361
39361
  onClick: toggleDropdown,
39362
39362
  class: "w-full flex items-center justify-between px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left min-h-[30px]"
39363
39363
  }, [
39364
- normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$f, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$f, toDisplayString$1(__props.placeholder || unref(t)("properties.label.selectField")), 1)),
39364
+ normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$f, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$e, toDisplayString$1(__props.placeholder || unref(t)("properties.label.selectField")), 1)),
39365
39365
  normalizedValue.value ? (openBlock(), createElementBlock("span", {
39366
39366
  key: 2,
39367
39367
  onClick: withModifiers(handleClear, ["stop"]),
@@ -39381,9 +39381,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
39381
39381
  })
39382
39382
  ], -1))
39383
39383
  ], 8, _hoisted_3$f),
39384
- showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_6$d, [
39385
- createBaseVNode("div", _hoisted_7$d, [
39386
- createBaseVNode("div", _hoisted_8$d, [
39384
+ showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_6$c, [
39385
+ createBaseVNode("div", _hoisted_7$c, [
39386
+ createBaseVNode("div", _hoisted_8$c, [
39387
39387
  _cache[1] || (_cache[1] = createBaseVNode("svg", {
39388
39388
  class: "absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400",
39389
39389
  fill: "none",
@@ -39405,11 +39405,11 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
39405
39405
  onInput: handleSearchInput,
39406
39406
  placeholder: unref(t)("properties.label.searchField"),
39407
39407
  class: "w-full pl-8 pr-3 py-1.5 text-xs border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 placeholder-gray-400 dark:placeholder-gray-500"
39408
- }, null, 40, _hoisted_9$c)
39408
+ }, null, 40, _hoisted_9$b)
39409
39409
  ])
39410
39410
  ]),
39411
- createBaseVNode("div", _hoisted_10$b, [
39412
- filteredFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_11$b, toDisplayString$1(searchQuery.value ? unref(t)("common.noData") : unref(t)("common.noData")), 1)) : createCommentVNode("", true),
39411
+ createBaseVNode("div", _hoisted_10$a, [
39412
+ filteredFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_11$a, toDisplayString$1(searchQuery.value ? unref(t)("common.noData") : unref(t)("common.noData")), 1)) : createCommentVNode("", true),
39413
39413
  (openBlock(true), createElementBlock(Fragment, null, renderList(filteredFields.value, (field) => {
39414
39414
  return openBlock(), createElementBlock("div", {
39415
39415
  key: field.key,
@@ -39423,9 +39423,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
39423
39423
  createBaseVNode("span", {
39424
39424
  class: normalizeClass(["flex-shrink-0 text-[10px] px-1 py-0.5 rounded", field.isArray ? "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20" : "text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700"])
39425
39425
  }, toDisplayString$1(field.isArray ? "[]" : "T"), 3),
39426
- createBaseVNode("span", _hoisted_13$a, toDisplayString$1(field.label), 1),
39427
- field.sampleValue ? (openBlock(), createElementBlock("span", _hoisted_14$8, " [" + toDisplayString$1(field.sampleValue) + "] ", 1)) : createCommentVNode("", true)
39428
- ], 42, _hoisted_12$a);
39426
+ createBaseVNode("span", _hoisted_13$9, toDisplayString$1(field.label), 1),
39427
+ field.sampleValue ? (openBlock(), createElementBlock("span", _hoisted_14$7, " [" + toDisplayString$1(field.sampleValue) + "] ", 1)) : createCommentVNode("", true)
39428
+ ], 42, _hoisted_12$9);
39429
39429
  }), 128))
39430
39430
  ])
39431
39431
  ])) : createCommentVNode("", true)
@@ -39445,7 +39445,7 @@ const _hoisted_3$e = {
39445
39445
  class: "max-h-40 overflow-y-auto space-y-0.5 custom-scrollbar border border-gray-200 dark:border-gray-700 rounded p-1.5 bg-white dark:bg-gray-800"
39446
39446
  };
39447
39447
  const _hoisted_4$e = ["checked", "disabled", "onChange"];
39448
- const _hoisted_5$e = { class: "text-gray-700 dark:text-gray-200 truncate" };
39448
+ const _hoisted_5$d = { class: "text-gray-700 dark:text-gray-200 truncate" };
39449
39449
  const _sfc_main$f = /* @__PURE__ */ defineComponent({
39450
39450
  __name: "PropertyColumnPicker",
39451
39451
  props: {
@@ -39485,7 +39485,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
39485
39485
  onChange: ($event) => toggleField(field),
39486
39486
  class: "w-3.5 h-3.5 rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500 cursor-pointer"
39487
39487
  }, null, 40, _hoisted_4$e),
39488
- createBaseVNode("span", _hoisted_5$e, toDisplayString$1(field), 1)
39488
+ createBaseVNode("span", _hoisted_5$d, toDisplayString$1(field), 1)
39489
39489
  ], 2);
39490
39490
  }), 128))
39491
39491
  ]))
@@ -39501,20 +39501,20 @@ const _hoisted_4$d = {
39501
39501
  key: 0,
39502
39502
  class: "truncate flex-1"
39503
39503
  };
39504
- const _hoisted_5$d = {
39504
+ const _hoisted_5$c = {
39505
39505
  key: 1,
39506
39506
  class: "text-gray-400 dark:text-gray-500 truncate flex-1"
39507
39507
  };
39508
- const _hoisted_6$c = {
39508
+ const _hoisted_6$b = {
39509
39509
  key: 0,
39510
39510
  class: "absolute top-full left-0 right-0 mt-1 max-h-48 overflow-y-auto bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000] custom-scrollbar"
39511
39511
  };
39512
- const _hoisted_7$c = {
39512
+ const _hoisted_7$b = {
39513
39513
  key: 0,
39514
39514
  class: "px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"
39515
39515
  };
39516
- const _hoisted_8$c = ["onMousedown"];
39517
- const _hoisted_9$b = { class: "truncate text-gray-700 dark:text-gray-200" };
39516
+ const _hoisted_8$b = ["onMousedown"];
39517
+ const _hoisted_9$a = { class: "truncate text-gray-700 dark:text-gray-200" };
39518
39518
  const _sfc_main$e = /* @__PURE__ */ defineComponent({
39519
39519
  __name: "PropertyChartDataSelect",
39520
39520
  props: {
@@ -39599,7 +39599,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
39599
39599
  onClick: toggleDropdown,
39600
39600
  class: "w-full flex items-center justify-between px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left min-h-[30px]"
39601
39601
  }, [
39602
- normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$d, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$d, toDisplayString$1(__props.placeholder || unref(t)("properties.label.selectDataSource")), 1)),
39602
+ normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$d, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$c, toDisplayString$1(__props.placeholder || unref(t)("properties.label.selectDataSource")), 1)),
39603
39603
  normalizedValue.value ? (openBlock(), createElementBlock("span", {
39604
39604
  key: 2,
39605
39605
  onClick: withModifiers(handleClear, ["stop"]),
@@ -39619,8 +39619,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
39619
39619
  })
39620
39620
  ], -1))
39621
39621
  ], 8, _hoisted_3$d),
39622
- showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_6$c, [
39623
- arrayFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$c, toDisplayString$1(unref(t)("common.noData")), 1)) : createCommentVNode("", true),
39622
+ showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_6$b, [
39623
+ arrayFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$b, toDisplayString$1(unref(t)("common.noData")), 1)) : createCommentVNode("", true),
39624
39624
  (openBlock(true), createElementBlock(Fragment, null, renderList(arrayFields.value, (field) => {
39625
39625
  var _a2;
39626
39626
  return openBlock(), createElementBlock("div", {
@@ -39635,8 +39635,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
39635
39635
  createBaseVNode("span", {
39636
39636
  class: normalizeClass(["flex-shrink-0 text-[10px] px-1 py-0.5 rounded", field.type === "array" ? "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20" : "text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700"])
39637
39637
  }, toDisplayString$1(field.type === "array" ? "[]" : ((_a2 = field.type) == null ? void 0 : _a2.slice(0, 3)) || "val"), 3),
39638
- createBaseVNode("span", _hoisted_9$b, toDisplayString$1(field.label), 1)
39639
- ], 42, _hoisted_8$c);
39638
+ createBaseVNode("span", _hoisted_9$a, toDisplayString$1(field.label), 1)
39639
+ ], 42, _hoisted_8$b);
39640
39640
  }), 128))
39641
39641
  ])) : createCommentVNode("", true)
39642
39642
  ])
@@ -39652,31 +39652,31 @@ const _hoisted_4$c = {
39652
39652
  key: 0,
39653
39653
  class: "truncate flex-1"
39654
39654
  };
39655
- const _hoisted_5$c = {
39655
+ const _hoisted_5$b = {
39656
39656
  key: 1,
39657
39657
  class: "text-gray-400 dark:text-gray-500 truncate flex-1"
39658
39658
  };
39659
- const _hoisted_6$b = {
39659
+ const _hoisted_6$a = {
39660
39660
  key: 3,
39661
39661
  class: "w-3.5 h-3.5 text-gray-400 ml-1 flex-shrink-0",
39662
39662
  fill: "none",
39663
39663
  stroke: "currentColor",
39664
39664
  viewBox: "0 0 24 24"
39665
39665
  };
39666
- const _hoisted_7$b = {
39666
+ const _hoisted_7$a = {
39667
39667
  key: 0,
39668
39668
  class: "absolute top-full left-0 right-0 mt-1 max-h-48 overflow-y-auto bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000] custom-scrollbar"
39669
39669
  };
39670
- const _hoisted_8$b = {
39670
+ const _hoisted_8$a = {
39671
39671
  key: 0,
39672
39672
  class: "px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"
39673
39673
  };
39674
- const _hoisted_9$a = {
39674
+ const _hoisted_9$9 = {
39675
39675
  key: 1,
39676
39676
  class: "px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"
39677
39677
  };
39678
- const _hoisted_10$a = ["onMousedown"];
39679
- const _hoisted_11$a = { class: "truncate text-gray-700 dark:text-gray-200" };
39678
+ const _hoisted_10$9 = ["onMousedown"];
39679
+ const _hoisted_11$9 = { class: "truncate text-gray-700 dark:text-gray-200" };
39680
39680
  const _sfc_main$d = /* @__PURE__ */ defineComponent({
39681
39681
  __name: "PropertyChartFieldSelect",
39682
39682
  props: {
@@ -39797,13 +39797,13 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
39797
39797
  onClick: toggleDropdown,
39798
39798
  class: normalizeClass(["w-full flex items-center justify-between px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left min-h-[30px]", { "border-yellow-400 dark:border-yellow-500": __props.dataVariable && !normalizedValue.value }])
39799
39799
  }, [
39800
- normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$c, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$c, toDisplayString$1(__props.dataVariable ? __props.placeholder || unref(t)("properties.label.selectField") : unref(t)("properties.label.selectDataSourceFirst")), 1)),
39800
+ normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$c, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$b, toDisplayString$1(__props.dataVariable ? __props.placeholder || unref(t)("properties.label.selectField") : unref(t)("properties.label.selectDataSourceFirst")), 1)),
39801
39801
  normalizedValue.value && !__props.disabled ? (openBlock(), createElementBlock("span", {
39802
39802
  key: 2,
39803
39803
  onClick: withModifiers(handleClear, ["stop"]),
39804
39804
  class: "text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 ml-1 flex-shrink-0 cursor-pointer"
39805
39805
  }, "×")) : createCommentVNode("", true),
39806
- __props.dataVariable ? (openBlock(), createElementBlock("svg", _hoisted_6$b, [..._cache[0] || (_cache[0] = [
39806
+ __props.dataVariable ? (openBlock(), createElementBlock("svg", _hoisted_6$a, [..._cache[0] || (_cache[0] = [
39807
39807
  createBaseVNode("path", {
39808
39808
  "stroke-linecap": "round",
39809
39809
  "stroke-linejoin": "round",
@@ -39813,8 +39813,8 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
39813
39813
  ])])) : createCommentVNode("", true)
39814
39814
  ], 10, _hoisted_3$c)
39815
39815
  ]),
39816
- showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_7$b, [
39817
- !__props.dataVariable ? (openBlock(), createElementBlock("div", _hoisted_8$b, toDisplayString$1(unref(t)("properties.label.selectDataSourceFirst")), 1)) : availableFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_9$a, toDisplayString$1(unref(t)("common.noData")), 1)) : (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(availableFields.value, (field) => {
39816
+ showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_7$a, [
39817
+ !__props.dataVariable ? (openBlock(), createElementBlock("div", _hoisted_8$a, toDisplayString$1(unref(t)("properties.label.selectDataSourceFirst")), 1)) : availableFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_9$9, toDisplayString$1(unref(t)("common.noData")), 1)) : (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(availableFields.value, (field) => {
39818
39818
  return openBlock(), createElementBlock("div", {
39819
39819
  key: field.key,
39820
39820
  onMousedown: withModifiers(($event) => handleSelect(field.path), ["prevent"]),
@@ -39831,8 +39831,8 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
39831
39831
  "text-orange-600 dark:text-orange-400 bg-orange-50 dark:bg-orange-900/20": field.type === "boolean"
39832
39832
  }])
39833
39833
  }, toDisplayString$1(field.type === "string" ? "T" : field.type === "number" ? "#" : "?"), 3),
39834
- createBaseVNode("span", _hoisted_11$a, toDisplayString$1(field.label), 1)
39835
- ], 42, _hoisted_10$a);
39834
+ createBaseVNode("span", _hoisted_11$9, toDisplayString$1(field.label), 1)
39835
+ ], 42, _hoisted_10$9);
39836
39836
  }), 128))
39837
39837
  ])) : createCommentVNode("", true)
39838
39838
  ], 32);
@@ -39844,22 +39844,22 @@ const _hoisted_1$j = { class: "space-y-2" };
39844
39844
  const _hoisted_2$b = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1 font-medium" };
39845
39845
  const _hoisted_3$b = { class: "flex items-center gap-1 p-2 border border-gray-300 dark:border-gray-600 rounded-t bg-gray-50 dark:bg-gray-800" };
39846
39846
  const _hoisted_4$b = ["disabled"];
39847
- const _hoisted_5$b = ["disabled"];
39848
- const _hoisted_6$a = ["disabled"];
39849
- const _hoisted_7$a = ["disabled"];
39850
- const _hoisted_8$a = ["disabled"];
39851
- const _hoisted_9$9 = ["disabled"];
39852
- const _hoisted_10$9 = ["disabled"];
39853
- const _hoisted_11$9 = {
39847
+ const _hoisted_5$a = ["disabled"];
39848
+ const _hoisted_6$9 = ["disabled"];
39849
+ const _hoisted_7$9 = ["disabled"];
39850
+ const _hoisted_8$9 = ["disabled"];
39851
+ const _hoisted_9$8 = ["disabled"];
39852
+ const _hoisted_10$8 = ["disabled"];
39853
+ const _hoisted_11$8 = {
39854
39854
  key: 0,
39855
39855
  class: "min-h-[120px] max-h-[200px] overflow-auto p-3 border border-gray-300 dark:border-gray-600 rounded-b bg-white dark:bg-gray-800"
39856
39856
  };
39857
- const _hoisted_12$9 = ["innerHTML"];
39858
- const _hoisted_13$9 = {
39857
+ const _hoisted_12$8 = ["innerHTML"];
39858
+ const _hoisted_13$8 = {
39859
39859
  key: 1,
39860
39860
  class: "text-gray-400 text-sm"
39861
39861
  };
39862
- const _hoisted_14$7 = ["placeholder", "disabled"];
39862
+ const _hoisted_14$6 = ["placeholder", "disabled"];
39863
39863
  const _sfc_main$c = /* @__PURE__ */ defineComponent({
39864
39864
  __name: "PropertyRichText",
39865
39865
  props: {
@@ -39939,45 +39939,45 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
39939
39939
  disabled: __props.disabled,
39940
39940
  class: "px-2 py-1 text-sm italic hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-50",
39941
39941
  title: "斜体"
39942
- }, " I ", 8, _hoisted_5$b),
39942
+ }, " I ", 8, _hoisted_5$a),
39943
39943
  createBaseVNode("button", {
39944
39944
  onClick: insertUnderline,
39945
39945
  disabled: __props.disabled,
39946
39946
  class: "px-2 py-1 text-sm underline hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-50",
39947
39947
  title: "下划线"
39948
- }, " U ", 8, _hoisted_6$a),
39948
+ }, " U ", 8, _hoisted_6$9),
39949
39949
  _cache[3] || (_cache[3] = createBaseVNode("div", { class: "w-px h-5 bg-gray-300 dark:bg-gray-600 mx-1" }, null, -1)),
39950
39950
  createBaseVNode("button", {
39951
39951
  onClick: insertList,
39952
39952
  disabled: __props.disabled,
39953
39953
  class: "px-2 py-1 text-sm hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-50",
39954
39954
  title: "无序列表"
39955
- }, " • ", 8, _hoisted_7$a),
39955
+ }, " • ", 8, _hoisted_7$9),
39956
39956
  createBaseVNode("button", {
39957
39957
  onClick: insertOrderedList,
39958
39958
  disabled: __props.disabled,
39959
39959
  class: "px-2 py-1 text-sm hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-50",
39960
39960
  title: "有序列表"
39961
- }, " 1. ", 8, _hoisted_8$a),
39961
+ }, " 1. ", 8, _hoisted_8$9),
39962
39962
  createBaseVNode("button", {
39963
39963
  onClick: insertParagraph,
39964
39964
  disabled: __props.disabled,
39965
39965
  class: "px-2 py-1 text-sm hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-50",
39966
39966
  title: "段落"
39967
- }, " P ", 8, _hoisted_9$9),
39967
+ }, " P ", 8, _hoisted_9$8),
39968
39968
  _cache[4] || (_cache[4] = createBaseVNode("div", { class: "flex-1" }, null, -1)),
39969
39969
  createBaseVNode("button", {
39970
39970
  onClick: _cache[0] || (_cache[0] = ($event) => isPreviewMode.value = !isPreviewMode.value),
39971
39971
  disabled: __props.disabled,
39972
39972
  class: normalizeClass(["px-2 py-1 text-xs hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-50", isPreviewMode.value ? "bg-blue-100 dark:bg-blue-900 text-blue-600" : ""])
39973
- }, toDisplayString$1(isPreviewMode.value ? "编辑" : "预览"), 11, _hoisted_10$9)
39973
+ }, toDisplayString$1(isPreviewMode.value ? "编辑" : "预览"), 11, _hoisted_10$8)
39974
39974
  ]),
39975
- isPreviewMode.value ? (openBlock(), createElementBlock("div", _hoisted_11$9, [
39975
+ isPreviewMode.value ? (openBlock(), createElementBlock("div", _hoisted_11$8, [
39976
39976
  previewHtml.value ? (openBlock(), createElementBlock("div", {
39977
39977
  key: 0,
39978
39978
  class: "prose prose-sm dark:prose-invert max-w-none",
39979
39979
  innerHTML: previewHtml.value
39980
- }, null, 8, _hoisted_12$9)) : (openBlock(), createElementBlock("div", _hoisted_13$9, toDisplayString$1(unref(t)("properties.label.richTextPlaceholder")), 1))
39980
+ }, null, 8, _hoisted_12$8)) : (openBlock(), createElementBlock("div", _hoisted_13$8, toDisplayString$1(unref(t)("properties.label.richTextPlaceholder")), 1))
39981
39981
  ])) : withDirectives((openBlock(), createElementBlock("textarea", {
39982
39982
  key: 1,
39983
39983
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => localValue.value = $event),
@@ -39985,7 +39985,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
39985
39985
  placeholder: __props.placeholder,
39986
39986
  disabled: __props.disabled,
39987
39987
  class: "w-full px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-b focus:border-blue-500 outline-none h-32 resize-y font-mono disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"
39988
- }, null, 40, _hoisted_14$7)), [
39988
+ }, null, 40, _hoisted_14$6)), [
39989
39989
  [vModelText, localValue.value]
39990
39990
  ])
39991
39991
  ]);
@@ -39997,19 +39997,19 @@ const _hoisted_1$i = { class: "space-y-3" };
39997
39997
  const _hoisted_2$a = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1 font-medium" };
39998
39998
  const _hoisted_3$a = { class: "space-y-2" };
39999
39999
  const _hoisted_4$a = { class: "flex-1 min-w-0" };
40000
- const _hoisted_5$a = { class: "block text-[10px] text-gray-400 mb-1" };
40001
- const _hoisted_6$9 = ["value", "onInput", "disabled"];
40002
- const _hoisted_7$9 = { class: "flex-1 min-w-0" };
40003
- const _hoisted_8$9 = { class: "block text-[10px] text-gray-400 mb-1" };
40004
- const _hoisted_9$8 = ["value", "onInput", "disabled"];
40005
- const _hoisted_10$8 = { class: "w-16" };
40006
- const _hoisted_11$8 = { class: "block text-[10px] text-gray-400 mb-1" };
40007
- const _hoisted_12$8 = ["value", "onInput", "disabled"];
40008
- const _hoisted_13$8 = { class: "flex flex-col gap-1" };
40009
- const _hoisted_14$6 = ["onClick", "disabled"];
40010
- const _hoisted_15$6 = ["onClick", "disabled"];
40011
- const _hoisted_16$6 = ["onClick", "disabled"];
40012
- const _hoisted_17$6 = ["disabled"];
40000
+ const _hoisted_5$9 = { class: "block text-[10px] text-gray-400 mb-1" };
40001
+ const _hoisted_6$8 = ["value", "onInput", "disabled"];
40002
+ const _hoisted_7$8 = { class: "flex-1 min-w-0" };
40003
+ const _hoisted_8$8 = { class: "block text-[10px] text-gray-400 mb-1" };
40004
+ const _hoisted_9$7 = ["value", "onInput", "disabled"];
40005
+ const _hoisted_10$7 = { class: "w-16" };
40006
+ const _hoisted_11$7 = { class: "block text-[10px] text-gray-400 mb-1" };
40007
+ const _hoisted_12$7 = ["value", "onInput", "disabled"];
40008
+ const _hoisted_13$7 = { class: "flex flex-col gap-1" };
40009
+ const _hoisted_14$5 = ["onClick", "disabled"];
40010
+ const _hoisted_15$5 = ["onClick", "disabled"];
40011
+ const _hoisted_16$5 = ["onClick", "disabled"];
40012
+ const _hoisted_17$5 = ["disabled"];
40013
40013
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
40014
40014
  __name: "PropertyNestedColumns",
40015
40015
  props: {
@@ -40066,7 +40066,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40066
40066
  class: "flex items-center gap-2 p-2 bg-gray-50 dark:bg-gray-800 rounded-lg"
40067
40067
  }, [
40068
40068
  createBaseVNode("div", _hoisted_4$a, [
40069
- createBaseVNode("label", _hoisted_5$a, toDisplayString$1(unref(t)("properties.label.fieldKey")), 1),
40069
+ createBaseVNode("label", _hoisted_5$9, toDisplayString$1(unref(t)("properties.label.fieldKey")), 1),
40070
40070
  createBaseVNode("input", {
40071
40071
  type: "text",
40072
40072
  value: col.field,
@@ -40074,10 +40074,10 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40074
40074
  disabled: __props.disabled,
40075
40075
  class: "w-full px-2 py-1 text-xs border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 disabled:opacity-50",
40076
40076
  placeholder: "field"
40077
- }, null, 40, _hoisted_6$9)
40077
+ }, null, 40, _hoisted_6$8)
40078
40078
  ]),
40079
- createBaseVNode("div", _hoisted_7$9, [
40080
- createBaseVNode("label", _hoisted_8$9, toDisplayString$1(unref(t)("properties.label.headerText")), 1),
40079
+ createBaseVNode("div", _hoisted_7$8, [
40080
+ createBaseVNode("label", _hoisted_8$8, toDisplayString$1(unref(t)("properties.label.headerText")), 1),
40081
40081
  createBaseVNode("input", {
40082
40082
  type: "text",
40083
40083
  value: col.header,
@@ -40085,10 +40085,10 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40085
40085
  disabled: __props.disabled,
40086
40086
  class: "w-full px-2 py-1 text-xs border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 disabled:opacity-50",
40087
40087
  placeholder: "表头"
40088
- }, null, 40, _hoisted_9$8)
40088
+ }, null, 40, _hoisted_9$7)
40089
40089
  ]),
40090
- createBaseVNode("div", _hoisted_10$8, [
40091
- createBaseVNode("label", _hoisted_11$8, toDisplayString$1(unref(t)("properties.label.width")), 1),
40090
+ createBaseVNode("div", _hoisted_10$7, [
40091
+ createBaseVNode("label", _hoisted_11$7, toDisplayString$1(unref(t)("properties.label.width")), 1),
40092
40092
  createBaseVNode("input", {
40093
40093
  type: "number",
40094
40094
  value: col.width,
@@ -40098,9 +40098,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40098
40098
  max: "300",
40099
40099
  class: "w-full px-2 py-1 text-xs border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 disabled:opacity-50 [appearance:textfield] [-moz-appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
40100
40100
  placeholder: "100"
40101
- }, null, 40, _hoisted_12$8)
40101
+ }, null, 40, _hoisted_12$7)
40102
40102
  ]),
40103
- createBaseVNode("div", _hoisted_13$8, [
40103
+ createBaseVNode("div", _hoisted_13$7, [
40104
40104
  createBaseVNode("button", {
40105
40105
  onClick: ($event) => moveColumn(index2, "up"),
40106
40106
  disabled: __props.disabled || index2 === 0,
@@ -40120,7 +40120,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40120
40120
  d: "M5 15l7-7 7 7"
40121
40121
  })
40122
40122
  ], -1)
40123
- ])], 8, _hoisted_14$6),
40123
+ ])], 8, _hoisted_14$5),
40124
40124
  createBaseVNode("button", {
40125
40125
  onClick: ($event) => moveColumn(index2, "down"),
40126
40126
  disabled: __props.disabled || index2 === localColumns.value.length - 1,
@@ -40140,7 +40140,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40140
40140
  d: "M19 9l-7 7-7-7"
40141
40141
  })
40142
40142
  ], -1)
40143
- ])], 8, _hoisted_15$6),
40143
+ ])], 8, _hoisted_15$5),
40144
40144
  createBaseVNode("button", {
40145
40145
  onClick: ($event) => removeColumn(index2),
40146
40146
  disabled: __props.disabled || localColumns.value.length <= 1,
@@ -40160,7 +40160,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40160
40160
  d: "M6 18L18 6M6 6l12 12"
40161
40161
  })
40162
40162
  ], -1)
40163
- ])], 8, _hoisted_16$6)
40163
+ ])], 8, _hoisted_16$5)
40164
40164
  ])
40165
40165
  ]);
40166
40166
  }), 128))
@@ -40169,7 +40169,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
40169
40169
  onClick: addColumn,
40170
40170
  disabled: __props.disabled,
40171
40171
  class: "w-full px-3 py-2 text-xs border border-dashed border-gray-300 dark:border-gray-600 rounded-lg text-gray-500 dark:text-gray-400 hover:border-blue-500 hover:text-blue-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
40172
- }, " + " + toDisplayString$1(unref(t)("properties.action.addColumn")), 9, _hoisted_17$6)
40172
+ }, " + " + toDisplayString$1(unref(t)("properties.action.addColumn")), 9, _hoisted_17$5)
40173
40173
  ]);
40174
40174
  };
40175
40175
  }
@@ -40178,36 +40178,36 @@ const _hoisted_1$h = { class: "space-y-2" };
40178
40178
  const _hoisted_2$9 = { class: "block text-xs text-gray-500 dark:text-gray-400 mb-1 font-medium" };
40179
40179
  const _hoisted_3$9 = { class: "relative" };
40180
40180
  const _hoisted_4$9 = ["disabled"];
40181
- const _hoisted_5$9 = { class: "flex flex-col items-start min-w-0 flex-1" };
40182
- const _hoisted_6$8 = {
40181
+ const _hoisted_5$8 = { class: "flex flex-col items-start min-w-0 flex-1" };
40182
+ const _hoisted_6$7 = {
40183
40183
  key: 0,
40184
40184
  class: "truncate text-sm font-medium"
40185
40185
  };
40186
- const _hoisted_7$8 = {
40186
+ const _hoisted_7$7 = {
40187
40187
  key: 1,
40188
40188
  class: "text-gray-400 dark:text-gray-500 truncate text-sm"
40189
40189
  };
40190
- const _hoisted_8$8 = {
40190
+ const _hoisted_8$7 = {
40191
40191
  key: 0,
40192
40192
  class: "absolute top-full left-0 right-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000]"
40193
40193
  };
40194
- const _hoisted_9$7 = { class: "flex border-b border-gray-100 dark:border-gray-700" };
40195
- const _hoisted_10$7 = ["disabled"];
40196
- const _hoisted_11$7 = ["disabled"];
40197
- const _hoisted_12$7 = { class: "max-h-60 overflow-y-auto p-2" };
40198
- const _hoisted_13$7 = {
40194
+ const _hoisted_9$6 = { class: "flex border-b border-gray-100 dark:border-gray-700" };
40195
+ const _hoisted_10$6 = ["disabled"];
40196
+ const _hoisted_11$6 = ["disabled"];
40197
+ const _hoisted_12$6 = { class: "max-h-60 overflow-y-auto p-2" };
40198
+ const _hoisted_13$6 = {
40199
40199
  key: 0,
40200
40200
  class: "px-3 py-4 text-xs text-gray-400 text-center"
40201
40201
  };
40202
- const _hoisted_14$5 = ["onMousedown"];
40203
- const _hoisted_15$5 = { class: "truncate text-gray-700 dark:text-gray-200 flex-1" };
40204
- const _hoisted_16$5 = { class: "text-[10px] text-gray-400 truncate" };
40205
- const _hoisted_17$5 = { class: "flex items-center justify-between px-2 py-1 text-xs text-gray-500 mb-1" };
40206
- const _hoisted_18$5 = {
40202
+ const _hoisted_14$4 = ["onMousedown"];
40203
+ const _hoisted_15$4 = { class: "truncate text-gray-700 dark:text-gray-200 flex-1" };
40204
+ const _hoisted_16$4 = { class: "text-[10px] text-gray-400 truncate" };
40205
+ const _hoisted_17$4 = { class: "flex items-center justify-between px-2 py-1 text-xs text-gray-500 mb-1" };
40206
+ const _hoisted_18$4 = {
40207
40207
  key: 0,
40208
40208
  class: "px-3 py-4 text-xs text-gray-400 text-center"
40209
40209
  };
40210
- const _hoisted_19$5 = ["onMousedown"];
40210
+ const _hoisted_19$4 = ["onMousedown"];
40211
40211
  const _hoisted_20$3 = { class: "truncate text-gray-700 dark:text-gray-200" };
40212
40212
  const _hoisted_21$1 = { class: "flex items-center justify-between px-2 py-1 text-xs text-gray-500 mb-1" };
40213
40213
  const _hoisted_22$1 = {
@@ -40367,8 +40367,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
40367
40367
  onBlur: closeDropdown,
40368
40368
  class: "w-full flex items-center justify-between px-2 py-1.5 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left"
40369
40369
  }, [
40370
- createBaseVNode("div", _hoisted_5$9, [
40371
- normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_6$8, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_7$8, toDisplayString$1(__props.placeholder || "选择数据源"), 1))
40370
+ createBaseVNode("div", _hoisted_5$8, [
40371
+ normalizedValue.value ? (openBlock(), createElementBlock("span", _hoisted_6$7, toDisplayString$1(normalizedValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_7$7, toDisplayString$1(__props.placeholder || "选择数据源"), 1))
40372
40372
  ]),
40373
40373
  _cache[3] || (_cache[3] = createBaseVNode("svg", {
40374
40374
  class: "w-4 h-4 text-gray-400 ml-2 flex-shrink-0",
@@ -40384,8 +40384,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
40384
40384
  })
40385
40385
  ], -1))
40386
40386
  ], 40, _hoisted_4$9),
40387
- showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_8$8, [
40388
- createBaseVNode("div", _hoisted_9$7, [
40387
+ showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_8$7, [
40388
+ createBaseVNode("div", _hoisted_9$6, [
40389
40389
  createBaseVNode("button", {
40390
40390
  onMousedown: _cache[0] || (_cache[0] = withModifiers(($event) => currentStep.value = "data", ["prevent"])),
40391
40391
  class: normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors", currentStep.value === "data" ? "text-blue-600 dark:text-blue-400 border-b-2 border-blue-600" : "text-gray-500 dark:text-gray-400 hover:text-gray-700"])
@@ -40394,16 +40394,16 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
40394
40394
  onMousedown: _cache[1] || (_cache[1] = withModifiers(($event) => normalizedValue.value && (currentStep.value = "parent"), ["prevent"])),
40395
40395
  class: normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors", currentStep.value === "parent" ? "text-blue-600 dark:text-blue-400 border-b-2 border-blue-600" : normalizedValue.value ? "text-gray-500 dark:text-gray-400 hover:text-gray-700" : "text-gray-300 dark:text-gray-600 cursor-not-allowed"]),
40396
40396
  disabled: !normalizedValue.value
40397
- }, " 父级字段 ", 42, _hoisted_10$7),
40397
+ }, " 父级字段 ", 42, _hoisted_10$6),
40398
40398
  createBaseVNode("button", {
40399
40399
  onMousedown: _cache[2] || (_cache[2] = withModifiers(($event) => normalizedValue.value && groupFields.value.length > 0 && (currentStep.value = "child"), ["prevent"])),
40400
40400
  class: normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors", currentStep.value === "child" ? "text-blue-600 dark:text-blue-400 border-b-2 border-blue-600" : normalizedValue.value && groupFields.value.length > 0 ? "text-gray-500 dark:text-gray-400 hover:text-gray-700" : "text-gray-300 dark:text-gray-600 cursor-not-allowed"]),
40401
40401
  disabled: !normalizedValue.value || groupFields.value.length === 0
40402
- }, " 子级字段 ", 42, _hoisted_11$7)
40402
+ }, " 子级字段 ", 42, _hoisted_11$6)
40403
40403
  ]),
40404
- createBaseVNode("div", _hoisted_12$7, [
40404
+ createBaseVNode("div", _hoisted_12$6, [
40405
40405
  currentStep.value === "data" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
40406
- arrayFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_13$7, " 暂无数据 ")) : createCommentVNode("", true),
40406
+ arrayFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_13$6, " 暂无数据 ")) : createCommentVNode("", true),
40407
40407
  (openBlock(true), createElementBlock(Fragment, null, renderList(arrayFields.value, (field) => {
40408
40408
  return openBlock(), createElementBlock("div", {
40409
40409
  key: field.path,
@@ -40413,19 +40413,19 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
40413
40413
  createBaseVNode("span", {
40414
40414
  class: normalizeClass(["text-[10px] px-1.5 py-0.5 rounded font-mono", getTypeClass(field.type)])
40415
40415
  }, toDisplayString$1(getTypeLabel(field.type)), 3),
40416
- createBaseVNode("span", _hoisted_15$5, toDisplayString$1(field.label), 1),
40417
- createBaseVNode("span", _hoisted_16$5, toDisplayString$1(field.path), 1)
40418
- ], 42, _hoisted_14$5);
40416
+ createBaseVNode("span", _hoisted_15$4, toDisplayString$1(field.label), 1),
40417
+ createBaseVNode("span", _hoisted_16$4, toDisplayString$1(field.path), 1)
40418
+ ], 42, _hoisted_14$4);
40419
40419
  }), 128))
40420
40420
  ], 64)) : currentStep.value === "parent" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
40421
- createBaseVNode("div", _hoisted_17$5, [
40421
+ createBaseVNode("div", _hoisted_17$4, [
40422
40422
  _cache[4] || (_cache[4] = createBaseVNode("span", null, "选择父级标签字段", -1)),
40423
40423
  createBaseVNode("button", {
40424
40424
  onMousedown: withModifiers(goBack, ["prevent"]),
40425
40425
  class: "text-blue-500 hover:text-blue-600"
40426
40426
  }, "← 返回", 32)
40427
40427
  ]),
40428
- groupFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18$5, " 无可用字段 ")) : createCommentVNode("", true),
40428
+ groupFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18$4, " 无可用字段 ")) : createCommentVNode("", true),
40429
40429
  (openBlock(true), createElementBlock(Fragment, null, renderList(groupFields.value, (field) => {
40430
40430
  return openBlock(), createElementBlock("div", {
40431
40431
  key: field.path,
@@ -40436,7 +40436,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
40436
40436
  class: normalizeClass(["text-[10px] px-1.5 py-0.5 rounded font-mono", getTypeClass(field.type)])
40437
40437
  }, toDisplayString$1(getTypeLabel(field.type)), 3),
40438
40438
  createBaseVNode("span", _hoisted_20$3, toDisplayString$1(field.label), 1)
40439
- ], 40, _hoisted_19$5);
40439
+ ], 40, _hoisted_19$4);
40440
40440
  }), 128))
40441
40441
  ], 64)) : currentStep.value === "child" ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
40442
40442
  createBaseVNode("div", _hoisted_21$1, [
@@ -40477,7 +40477,7 @@ const _hoisted_3$8 = {
40477
40477
  class: "max-h-48 overflow-y-auto space-y-1 custom-scrollbar border border-gray-200 dark:border-gray-700 rounded p-2 bg-white dark:bg-gray-800"
40478
40478
  };
40479
40479
  const _hoisted_4$8 = ["title"];
40480
- const _hoisted_5$8 = ["value", "disabled", "onInput", "placeholder"];
40480
+ const _hoisted_5$7 = ["value", "disabled", "onInput", "placeholder"];
40481
40481
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
40482
40482
  __name: "ColumnAliasEditor",
40483
40483
  props: {
@@ -40576,7 +40576,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
40576
40576
  onInput: (e) => updateColumnHeader(col.field, e.target.value),
40577
40577
  class: "flex-1 text-xs px-2 py-1 border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 focus:outline-none focus:ring-1 focus:ring-blue-500 disabled:opacity-50",
40578
40578
  placeholder: _ctx.$t("properties.label.headerAliasPlaceholder")
40579
- }, null, 40, _hoisted_5$8)
40579
+ }, null, 40, _hoisted_5$7)
40580
40580
  ], 2);
40581
40581
  }), 128))
40582
40582
  ]))
@@ -40589,27 +40589,27 @@ const _hoisted_1$f = { class: "space-y-2" };
40589
40589
  const _hoisted_2$7 = { class: "block text-xs text-gray-500 dark:text-gray-400 font-medium" };
40590
40590
  const _hoisted_3$7 = { class: "relative" };
40591
40591
  const _hoisted_4$7 = ["value", "placeholder", "disabled", "readonly"];
40592
- const _hoisted_5$7 = { class: "absolute bottom-1 right-1 text-[10px] text-gray-400 dark:text-gray-500 bg-white/80 dark:bg-gray-800/80 px-1 rounded" };
40593
- const _hoisted_6$7 = { class: "flex gap-2" };
40594
- const _hoisted_7$7 = { class: "relative flex-1" };
40595
- const _hoisted_8$7 = ["disabled"];
40596
- const _hoisted_9$6 = { class: "p-2 border-b border-gray-100 dark:border-gray-700 sticky top-0 bg-white dark:bg-gray-800 z-10" };
40597
- const _hoisted_10$6 = { class: "relative" };
40598
- const _hoisted_11$6 = ["value", "placeholder"];
40599
- const _hoisted_12$6 = {
40592
+ const _hoisted_5$6 = { class: "absolute bottom-1 right-1 text-[10px] text-gray-400 dark:text-gray-500 bg-white/80 dark:bg-gray-800/80 px-1 rounded" };
40593
+ const _hoisted_6$6 = { class: "flex gap-2" };
40594
+ const _hoisted_7$6 = { class: "relative flex-1" };
40595
+ const _hoisted_8$6 = ["disabled"];
40596
+ const _hoisted_9$5 = { class: "p-2 border-b border-gray-100 dark:border-gray-700 sticky top-0 bg-white dark:bg-gray-800 z-10" };
40597
+ const _hoisted_10$5 = { class: "relative" };
40598
+ const _hoisted_11$5 = ["value", "placeholder"];
40599
+ const _hoisted_12$5 = {
40600
40600
  key: 0,
40601
40601
  class: "px-3 py-4 text-xs text-gray-400 dark:text-gray-500 text-center"
40602
40602
  };
40603
- const _hoisted_13$6 = ["onMousedown"];
40604
- const _hoisted_14$4 = { class: "relative" };
40605
- const _hoisted_15$4 = ["disabled"];
40606
- const _hoisted_16$4 = { class: "text-[10px] text-gray-400" };
40607
- const _hoisted_17$4 = ["value"];
40608
- const _hoisted_18$4 = {
40603
+ const _hoisted_13$5 = ["onMousedown"];
40604
+ const _hoisted_14$3 = { class: "relative" };
40605
+ const _hoisted_15$3 = ["disabled"];
40606
+ const _hoisted_16$3 = { class: "text-[10px] text-gray-400" };
40607
+ const _hoisted_17$3 = ["value"];
40608
+ const _hoisted_18$3 = {
40609
40609
  key: 0,
40610
40610
  class: "border-t border-gray-100 dark:border-gray-700 pt-2"
40611
40611
  };
40612
- const _hoisted_19$4 = { class: "text-[10px] text-gray-400 dark:text-gray-500 uppercase tracking-wider mb-1" };
40612
+ const _hoisted_19$3 = { class: "text-[10px] text-gray-400 dark:text-gray-500 uppercase tracking-wider mb-1" };
40613
40613
  const _hoisted_20$2 = { class: "text-xs text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800/50 rounded p-2 max-h-32 overflow-y-auto whitespace-pre-wrap border border-gray-100 dark:border-gray-700" };
40614
40614
  const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40615
40615
  __name: "PropertyLongText",
@@ -40771,10 +40771,10 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40771
40771
  onInput: handleInput,
40772
40772
  class: "w-full px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none h-48 resize-y disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"
40773
40773
  }, null, 40, _hoisted_4$7),
40774
- createBaseVNode("div", _hoisted_5$7, toDisplayString$1((__props.value || "").length), 1)
40774
+ createBaseVNode("div", _hoisted_5$6, toDisplayString$1((__props.value || "").length), 1)
40775
40775
  ]),
40776
- createBaseVNode("div", _hoisted_6$7, [
40777
- createBaseVNode("div", _hoisted_7$7, [
40776
+ createBaseVNode("div", _hoisted_6$6, [
40777
+ createBaseVNode("div", _hoisted_7$6, [
40778
40778
  createBaseVNode("button", {
40779
40779
  type: "button",
40780
40780
  disabled: __props.disabled,
@@ -40795,15 +40795,15 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40795
40795
  })
40796
40796
  ], -1)),
40797
40797
  createTextVNode(" " + toDisplayString$1(unref(t)("properties.label.insertField")), 1)
40798
- ], 40, _hoisted_8$7),
40798
+ ], 40, _hoisted_8$6),
40799
40799
  showFieldDropdown.value ? (openBlock(), createElementBlock("div", {
40800
40800
  key: 0,
40801
40801
  ref_key: "fieldDropdownRef",
40802
40802
  ref: fieldDropdownRef,
40803
40803
  class: "absolute left-0 right-0 top-full mt-1 z-50 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg"
40804
40804
  }, [
40805
- createBaseVNode("div", _hoisted_9$6, [
40806
- createBaseVNode("div", _hoisted_10$6, [
40805
+ createBaseVNode("div", _hoisted_9$5, [
40806
+ createBaseVNode("div", _hoisted_10$5, [
40807
40807
  _cache[5] || (_cache[5] = createBaseVNode("svg", {
40808
40808
  class: "absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-gray-400",
40809
40809
  fill: "none",
@@ -40827,25 +40827,25 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40827
40827
  }, ["stop"])),
40828
40828
  placeholder: unref(t)("properties.label.searchField"),
40829
40829
  class: "w-full pl-8 pr-3 py-1.5 text-xs border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 placeholder-gray-400 dark:placeholder-gray-500"
40830
- }, null, 40, _hoisted_11$6)
40830
+ }, null, 40, _hoisted_11$5)
40831
40831
  ])
40832
40832
  ]),
40833
40833
  createBaseVNode("div", {
40834
40834
  class: "field-list-container max-h-48 overflow-auto",
40835
40835
  onMousedown: handleFieldDropdownMouseDown
40836
40836
  }, [
40837
- filteredFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12$6, toDisplayString$1(unref(t)("common.noData")), 1)) : createCommentVNode("", true),
40837
+ filteredFields.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12$5, toDisplayString$1(unref(t)("common.noData")), 1)) : createCommentVNode("", true),
40838
40838
  (openBlock(true), createElementBlock(Fragment, null, renderList(filteredFields.value, (field) => {
40839
40839
  return openBlock(), createElementBlock("button", {
40840
40840
  key: field,
40841
40841
  onMousedown: withModifiers(($event) => insertField(field), ["prevent"]),
40842
40842
  class: "w-full text-left px-3 py-1.5 text-xs text-gray-700 dark:text-gray-300 hover:bg-blue-50 dark:hover:bg-blue-900/30 hover:text-blue-700 dark:hover:text-blue-400 transition-colors whitespace-nowrap overflow-hidden text-overflow-ellipsis"
40843
- }, toDisplayString$1(field), 41, _hoisted_13$6);
40843
+ }, toDisplayString$1(field), 41, _hoisted_13$5);
40844
40844
  }), 128))
40845
40845
  ], 32)
40846
40846
  ], 512)) : createCommentVNode("", true)
40847
40847
  ]),
40848
- createBaseVNode("div", _hoisted_14$4, [
40848
+ createBaseVNode("div", _hoisted_14$3, [
40849
40849
  createBaseVNode("button", {
40850
40850
  type: "button",
40851
40851
  disabled: __props.disabled,
@@ -40866,7 +40866,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40866
40866
  })
40867
40867
  ], -1)),
40868
40868
  createTextVNode(" " + toDisplayString$1(unref(t)("properties.label.textColor")), 1)
40869
- ], 40, _hoisted_15$4),
40869
+ ], 40, _hoisted_15$3),
40870
40870
  showColorPicker.value ? (openBlock(), createElementBlock("div", {
40871
40871
  key: 0,
40872
40872
  ref_key: "colorPickerRef",
@@ -40874,13 +40874,13 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40874
40874
  class: "absolute right-0 top-full mt-1 z-50 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-2 flex flex-col gap-2",
40875
40875
  onMousedown: _cache[3] || (_cache[3] = ($event) => isInteractingWithDropdown.value = true)
40876
40876
  }, [
40877
- createBaseVNode("span", _hoisted_16$4, toDisplayString$1(unref(t)("properties.label.textColor")), 1),
40877
+ createBaseVNode("span", _hoisted_16$3, toDisplayString$1(unref(t)("properties.label.textColor")), 1),
40878
40878
  createBaseVNode("input", {
40879
40879
  type: "color",
40880
40880
  value: currentColor.value,
40881
40881
  onInput: _cache[1] || (_cache[1] = (e) => currentColor.value = e.target.value),
40882
40882
  class: "w-20 h-8 cursor-pointer border-0 p-0 rounded"
40883
- }, null, 40, _hoisted_17$4),
40883
+ }, null, 40, _hoisted_17$3),
40884
40884
  createBaseVNode("button", {
40885
40885
  onMousedown: _cache[2] || (_cache[2] = withModifiers(($event) => applyColor(currentColor.value), ["prevent"])),
40886
40886
  class: "w-full text-xs bg-pink-500 text-white px-3 py-1 rounded hover:bg-pink-600 transition-colors"
@@ -40888,8 +40888,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
40888
40888
  ], 544)) : createCommentVNode("", true)
40889
40889
  ])
40890
40890
  ]),
40891
- previewText.value && previewText.value !== __props.value ? (openBlock(), createElementBlock("div", _hoisted_18$4, [
40892
- createBaseVNode("div", _hoisted_19$4, toDisplayString$1(unref(t)("editor.preview")), 1),
40891
+ previewText.value && previewText.value !== __props.value ? (openBlock(), createElementBlock("div", _hoisted_18$3, [
40892
+ createBaseVNode("div", _hoisted_19$3, toDisplayString$1(unref(t)("editor.preview")), 1),
40893
40893
  createBaseVNode("div", _hoisted_20$2, toDisplayString$1(previewText.value), 1)
40894
40894
  ])) : createCommentVNode("", true)
40895
40895
  ]);
@@ -40903,36 +40903,36 @@ const _hoisted_4$6 = {
40903
40903
  key: 0,
40904
40904
  class: "flex items-center text-red-500 dark:text-red-400 gap-1 text-xs font-medium bg-red-50 dark:bg-red-900/30 px-2 py-1 rounded border border-red-100 dark:border-red-800"
40905
40905
  };
40906
- const _hoisted_5$6 = {
40906
+ const _hoisted_5$5 = {
40907
40907
  key: 0,
40908
40908
  class: "p-6 text-center"
40909
40909
  };
40910
- const _hoisted_6$6 = { class: "mb-4" };
40911
- const _hoisted_7$6 = { class: "text-lg font-semibold text-gray-900 dark:text-gray-100" };
40912
- const _hoisted_8$6 = { class: "text-sm text-gray-500 dark:text-gray-400 mt-2" };
40913
- const _hoisted_9$5 = { class: "font-medium text-gray-700 dark:text-gray-200" };
40914
- const _hoisted_10$5 = ["disabled"];
40915
- const _hoisted_11$5 = {
40910
+ const _hoisted_6$5 = { class: "mb-4" };
40911
+ const _hoisted_7$5 = { class: "text-lg font-semibold text-gray-900 dark:text-gray-100" };
40912
+ const _hoisted_8$5 = { class: "text-sm text-gray-500 dark:text-gray-400 mt-2" };
40913
+ const _hoisted_9$4 = { class: "font-medium text-gray-700 dark:text-gray-200" };
40914
+ const _hoisted_10$4 = ["disabled"];
40915
+ const _hoisted_11$4 = {
40916
40916
  key: 1,
40917
40917
  class: "flex flex-col h-full overflow-hidden"
40918
40918
  };
40919
- const _hoisted_12$5 = { class: "flex border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900" };
40920
- const _hoisted_13$5 = ["onClick"];
40921
- const _hoisted_14$3 = {
40919
+ const _hoisted_12$4 = { class: "flex border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900" };
40920
+ const _hoisted_13$4 = ["onClick"];
40921
+ const _hoisted_14$2 = {
40922
40922
  key: 0,
40923
40923
  class: "absolute bottom-0 left-0 w-full h-0.5 bg-blue-600 dark:bg-blue-400"
40924
40924
  };
40925
- const _hoisted_15$3 = { class: "p-4 space-y-6 overflow-y-auto flex-1 custom-scrollbar dark:bg-gray-900" };
40926
- const _hoisted_16$3 = {
40925
+ const _hoisted_15$2 = { class: "p-4 space-y-6 overflow-y-auto flex-1 custom-scrollbar dark:bg-gray-900" };
40926
+ const _hoisted_16$2 = {
40927
40927
  key: 0,
40928
40928
  class: "space-y-3 pb-2 border-b border-gray-200 dark:border-gray-700 -mx-4 px-4 mb-2"
40929
40929
  };
40930
- const _hoisted_17$3 = {
40930
+ const _hoisted_17$2 = {
40931
40931
  key: 1,
40932
40932
  class: "space-y-3"
40933
40933
  };
40934
- const _hoisted_18$3 = { class: "text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider" };
40935
- const _hoisted_19$3 = { class: "grid grid-cols-2 gap-3" };
40934
+ const _hoisted_18$2 = { class: "text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider" };
40935
+ const _hoisted_19$2 = { class: "grid grid-cols-2 gap-3" };
40936
40936
  const _hoisted_20$1 = {
40937
40937
  key: 2,
40938
40938
  class: "space-y-3 pt-2 border-t border-gray-100 dark:border-gray-800"
@@ -41518,11 +41518,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
41518
41518
  createBaseVNode("span", null, toDisplayString$1(unref(t)("properties.locked")), 1)
41519
41519
  ])) : createCommentVNode("", true)
41520
41520
  ]),
41521
- isMultiSelected.value ? (openBlock(), createElementBlock("div", _hoisted_5$6, [
41522
- createBaseVNode("div", _hoisted_6$6, [
41523
- createBaseVNode("h3", _hoisted_7$6, toDisplayString$1(unref(t)("properties.multiSelectMode")), 1),
41524
- createBaseVNode("p", _hoisted_8$6, [
41525
- createBaseVNode("span", _hoisted_9$5, toDisplayString$1(unref(store).selectedElementIds.length), 1),
41521
+ isMultiSelected.value ? (openBlock(), createElementBlock("div", _hoisted_5$5, [
41522
+ createBaseVNode("div", _hoisted_6$5, [
41523
+ createBaseVNode("h3", _hoisted_7$5, toDisplayString$1(unref(t)("properties.multiSelectMode")), 1),
41524
+ createBaseVNode("p", _hoisted_8$5, [
41525
+ createBaseVNode("span", _hoisted_9$4, toDisplayString$1(unref(store).selectedElementIds.length), 1),
41526
41526
  createTextVNode(" " + toDisplayString$1(unref(t)("properties.selectedElements", { n: "" }).replace("{n}", "")), 1)
41527
41527
  ])
41528
41528
  ]),
@@ -41530,9 +41530,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
41530
41530
  onClick: handleDeleteSelected,
41531
41531
  disabled: !unref(store).isTemplateEditable,
41532
41532
  class: "w-full py-2 bg-red-50 dark:bg-red-900/30 text-red-600 dark:text-red-400 rounded border border-red-200 dark:border-red-800 hover:bg-red-100 dark:hover:bg-red-900/50 transition-colors text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed"
41533
- }, toDisplayString$1(unref(t)("properties.deleteSelected")), 9, _hoisted_10$5)
41534
- ])) : element.value ? (openBlock(), createElementBlock("div", _hoisted_11$5, [
41535
- createBaseVNode("div", _hoisted_12$5, [
41533
+ }, toDisplayString$1(unref(t)("properties.deleteSelected")), 9, _hoisted_10$4)
41534
+ ])) : element.value ? (openBlock(), createElementBlock("div", _hoisted_11$4, [
41535
+ createBaseVNode("div", _hoisted_12$4, [
41536
41536
  (openBlock(), createElementBlock(Fragment, null, renderList(["properties", "style"], (tab) => {
41537
41537
  return createBaseVNode("button", {
41538
41538
  key: tab,
@@ -41540,12 +41540,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
41540
41540
  class: normalizeClass(["flex-1 py-3 text-sm font-medium transition-colors relative", activeTab.value === tab ? "text-blue-600 dark:text-blue-400" : "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-800"])
41541
41541
  }, [
41542
41542
  createTextVNode(toDisplayString$1(unref(t)(`properties.tab.${tab}`)) + " ", 1),
41543
- activeTab.value === tab ? (openBlock(), createElementBlock("div", _hoisted_14$3)) : createCommentVNode("", true)
41544
- ], 10, _hoisted_13$5);
41543
+ activeTab.value === tab ? (openBlock(), createElementBlock("div", _hoisted_14$2)) : createCommentVNode("", true)
41544
+ ], 10, _hoisted_13$4);
41545
41545
  }), 64))
41546
41546
  ]),
41547
- createBaseVNode("div", _hoisted_15$3, [
41548
- activeTab.value === "properties" && (fieldSelectionSections.value.length > 0 || elementSupportsVariable.value) ? (openBlock(), createElementBlock("div", _hoisted_16$3, [
41547
+ createBaseVNode("div", _hoisted_15$2, [
41548
+ activeTab.value === "properties" && (fieldSelectionSections.value.length > 0 || elementSupportsVariable.value) ? (openBlock(), createElementBlock("div", _hoisted_16$2, [
41549
41549
  (openBlock(true), createElementBlock(Fragment, null, renderList(fieldSelectionSections.value, (section, si) => {
41550
41550
  return openBlock(), createElementBlock(Fragment, { key: si }, [
41551
41551
  (openBlock(true), createElementBlock(Fragment, null, renderList(section.fields, (field, fi) => {
@@ -41613,9 +41613,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
41613
41613
  "onUpdate:value": _cache[2] || (_cache[2] = (v) => handleChange(variableFieldKey.value, v))
41614
41614
  }, null, 8, ["label", "disabled", "filter", "placeholder", "value"])) : createCommentVNode("", true)
41615
41615
  ])) : createCommentVNode("", true),
41616
- activeTab.value === "properties" ? (openBlock(), createElementBlock("div", _hoisted_17$3, [
41617
- createBaseVNode("h3", _hoisted_18$3, toDisplayString$1(unref(t)("properties.section.positionSize")), 1),
41618
- createBaseVNode("div", _hoisted_19$3, [
41616
+ activeTab.value === "properties" ? (openBlock(), createElementBlock("div", _hoisted_17$2, [
41617
+ createBaseVNode("h3", _hoisted_18$2, toDisplayString$1(unref(t)("properties.section.positionSize")), 1),
41618
+ createBaseVNode("div", _hoisted_19$2, [
41619
41619
  createVNode(_sfc_main$l, {
41620
41620
  label: `${unref(t)("properties.label.x")} (${unitLabel.value})`,
41621
41621
  type: "number",
@@ -42046,21 +42046,21 @@ const _hoisted_1$c = { class: "bg-white border border-gray-200 shadow-xl rounded
42046
42046
  const _hoisted_2$5 = ["disabled"];
42047
42047
  const _hoisted_3$5 = { class: "flex-1" };
42048
42048
  const _hoisted_4$5 = { class: "text-xs text-gray-400" };
42049
- const _hoisted_5$5 = ["disabled"];
42050
- const _hoisted_6$5 = { class: "flex-1" };
42051
- const _hoisted_7$5 = { class: "text-xs text-gray-400" };
42052
- const _hoisted_8$5 = ["disabled"];
42053
- const _hoisted_9$4 = { class: "flex-1" };
42054
- const _hoisted_10$4 = { class: "text-xs text-gray-400" };
42055
- const _hoisted_11$4 = ["disabled"];
42056
- const _hoisted_12$4 = { class: "flex-1" };
42057
- const _hoisted_13$4 = { class: "text-xs text-gray-400" };
42058
- const _hoisted_14$2 = ["disabled"];
42059
- const _hoisted_15$2 = { class: "flex-1" };
42060
- const _hoisted_16$2 = { class: "text-xs text-gray-400" };
42061
- const _hoisted_17$2 = { class: "flex-1" };
42062
- const _hoisted_18$2 = { class: "text-xs text-gray-400" };
42063
- const _hoisted_19$2 = { class: "flex-1" };
42049
+ const _hoisted_5$4 = ["disabled"];
42050
+ const _hoisted_6$4 = { class: "flex-1" };
42051
+ const _hoisted_7$4 = { class: "text-xs text-gray-400" };
42052
+ const _hoisted_8$4 = ["disabled"];
42053
+ const _hoisted_9$3 = { class: "flex-1" };
42054
+ const _hoisted_10$3 = { class: "text-xs text-gray-400" };
42055
+ const _hoisted_11$3 = ["disabled"];
42056
+ const _hoisted_12$3 = { class: "flex-1" };
42057
+ const _hoisted_13$3 = { class: "text-xs text-gray-400" };
42058
+ const _hoisted_14$1 = ["disabled"];
42059
+ const _hoisted_15$1 = { class: "flex-1" };
42060
+ const _hoisted_16$1 = { class: "text-xs text-gray-400" };
42061
+ const _hoisted_17$1 = { class: "flex-1" };
42062
+ const _hoisted_18$1 = { class: "text-xs text-gray-400" };
42063
+ const _hoisted_19$1 = { class: "flex-1" };
42064
42064
  const _hoisted_20 = { class: "text-xs text-gray-400" };
42065
42065
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42066
42066
  __name: "Shortcuts",
@@ -42374,9 +42374,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42374
42374
  })
42375
42375
  }, [
42376
42376
  createVNode(unref(CutIcon), { class: "w-4 h-4" }),
42377
- createBaseVNode("span", _hoisted_6$5, toDisplayString$1(unref(t)("common.cut")), 1),
42378
- createBaseVNode("span", _hoisted_7$5, toDisplayString$1(unref(formatShortcut)(["Ctrl", "X"])), 1)
42379
- ], 8, _hoisted_5$5),
42377
+ createBaseVNode("span", _hoisted_6$4, toDisplayString$1(unref(t)("common.cut")), 1),
42378
+ createBaseVNode("span", _hoisted_7$4, toDisplayString$1(unref(formatShortcut)(["Ctrl", "X"])), 1)
42379
+ ], 8, _hoisted_5$4),
42380
42380
  createBaseVNode("button", {
42381
42381
  class: "w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",
42382
42382
  disabled: !unref(store).selectedElementId || ((_c = unref(store).selectedElement) == null ? void 0 : _c.locked),
@@ -42386,9 +42386,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42386
42386
  })
42387
42387
  }, [
42388
42388
  createVNode(unref(CopyIcon), { class: "w-4 h-4" }),
42389
- createBaseVNode("span", _hoisted_9$4, toDisplayString$1(unref(t)("common.copy")), 1),
42390
- createBaseVNode("span", _hoisted_10$4, toDisplayString$1(unref(formatShortcut)(["Ctrl", "C"])), 1)
42391
- ], 8, _hoisted_8$5),
42389
+ createBaseVNode("span", _hoisted_9$3, toDisplayString$1(unref(t)("common.copy")), 1),
42390
+ createBaseVNode("span", _hoisted_10$3, toDisplayString$1(unref(formatShortcut)(["Ctrl", "C"])), 1)
42391
+ ], 8, _hoisted_8$4),
42392
42392
  createBaseVNode("button", {
42393
42393
  class: "w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",
42394
42394
  disabled: unref(store).clipboard.length === 0,
@@ -42398,9 +42398,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42398
42398
  })
42399
42399
  }, [
42400
42400
  createVNode(unref(PasteIcon), { class: "w-4 h-4" }),
42401
- createBaseVNode("span", _hoisted_12$4, toDisplayString$1(unref(t)("common.paste")), 1),
42402
- createBaseVNode("span", _hoisted_13$4, toDisplayString$1(unref(formatShortcut)(["Ctrl", "V"])), 1)
42403
- ], 8, _hoisted_11$4),
42401
+ createBaseVNode("span", _hoisted_12$3, toDisplayString$1(unref(t)("common.paste")), 1),
42402
+ createBaseVNode("span", _hoisted_13$3, toDisplayString$1(unref(formatShortcut)(["Ctrl", "V"])), 1)
42403
+ ], 8, _hoisted_11$3),
42404
42404
  createBaseVNode("button", {
42405
42405
  class: "w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",
42406
42406
  disabled: unref(store).selectedElementIds.length === 0,
@@ -42410,9 +42410,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42410
42410
  })
42411
42411
  }, [
42412
42412
  (openBlock(), createBlock(resolveDynamicComponent(((_d = unref(store).selectedElement) == null ? void 0 : _d.locked) ? unref(UnlockIcon) : unref(LockIcon)), { class: "w-4 h-4" })),
42413
- createBaseVNode("span", _hoisted_15$2, toDisplayString$1(((_e = unref(store).selectedElement) == null ? void 0 : _e.locked) ? unref(t)("common.unlock") : unref(t)("common.lock")), 1),
42414
- createBaseVNode("span", _hoisted_16$2, toDisplayString$1(unref(formatShortcut)(["Ctrl", "L"])), 1)
42415
- ], 8, _hoisted_14$2),
42413
+ createBaseVNode("span", _hoisted_15$1, toDisplayString$1(((_e = unref(store).selectedElement) == null ? void 0 : _e.locked) ? unref(t)("common.unlock") : unref(t)("common.lock")), 1),
42414
+ createBaseVNode("span", _hoisted_16$1, toDisplayString$1(unref(formatShortcut)(["Ctrl", "L"])), 1)
42415
+ ], 8, _hoisted_14$1),
42416
42416
  _cache[7] || (_cache[7] = createBaseVNode("div", { class: "border-t border-gray-200 my-1" }, null, -1)),
42417
42417
  createBaseVNode("button", {
42418
42418
  class: "w-full text-left px-3 py-2 text-sm hover:bg-gray-100 flex items-center gap-2",
@@ -42422,8 +42422,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42422
42422
  })
42423
42423
  }, [
42424
42424
  createVNode(unref(UndoIcon), { class: "w-4 h-4" }),
42425
- createBaseVNode("span", _hoisted_17$2, toDisplayString$1(unref(t)("common.undo")), 1),
42426
- createBaseVNode("span", _hoisted_18$2, toDisplayString$1(unref(formatShortcut)(["Ctrl", "Z"])), 1)
42425
+ createBaseVNode("span", _hoisted_17$1, toDisplayString$1(unref(t)("common.undo")), 1),
42426
+ createBaseVNode("span", _hoisted_18$1, toDisplayString$1(unref(formatShortcut)(["Ctrl", "Z"])), 1)
42427
42427
  ]),
42428
42428
  createBaseVNode("button", {
42429
42429
  class: "w-full text-left px-3 py-2 text-sm hover:bg-gray-100 flex items-center gap-2",
@@ -42433,7 +42433,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
42433
42433
  })
42434
42434
  }, [
42435
42435
  createVNode(unref(RedoIcon), { class: "w-4 h-4" }),
42436
- createBaseVNode("span", _hoisted_19$2, toDisplayString$1(unref(t)("common.redo")), 1),
42436
+ createBaseVNode("span", _hoisted_19$1, toDisplayString$1(unref(t)("common.redo")), 1),
42437
42437
  createBaseVNode("span", _hoisted_20, toDisplayString$1(unref(formatShortcut)(["Ctrl", "Y"])), 1)
42438
42438
  ])
42439
42439
  ])
@@ -42455,27 +42455,27 @@ const _hoisted_4$4 = {
42455
42455
  key: 3,
42456
42456
  class: "w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"
42457
42457
  };
42458
- const _hoisted_5$4 = ["src"];
42459
- const _hoisted_6$4 = {
42458
+ const _hoisted_5$3 = ["src"];
42459
+ const _hoisted_6$3 = {
42460
42460
  key: 4,
42461
42461
  class: "w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"
42462
42462
  };
42463
- const _hoisted_7$4 = ["src"];
42464
- const _hoisted_8$4 = {
42463
+ const _hoisted_7$3 = ["src"];
42464
+ const _hoisted_8$3 = {
42465
42465
  key: 2,
42466
42466
  class: "w-full h-full bg-gray-200 flex items-center justify-center overflow-hidden"
42467
42467
  };
42468
- const _hoisted_9$3 = ["src"];
42469
- const _hoisted_10$3 = {
42468
+ const _hoisted_9$2 = ["src"];
42469
+ const _hoisted_10$2 = {
42470
42470
  key: 3,
42471
42471
  class: "w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"
42472
42472
  };
42473
- const _hoisted_11$3 = ["src"];
42474
- const _hoisted_12$3 = {
42473
+ const _hoisted_11$2 = ["src"];
42474
+ const _hoisted_12$2 = {
42475
42475
  key: 4,
42476
42476
  class: "w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"
42477
42477
  };
42478
- const _hoisted_13$3 = ["src"];
42478
+ const _hoisted_13$2 = ["src"];
42479
42479
  const WIDTH = 180;
42480
42480
  const MIN_WIDTH = 120;
42481
42481
  const MAX_HEIGHT = 300;
@@ -42683,7 +42683,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
42683
42683
  };
42684
42684
  const renderBarcodeDataUrl = async (element) => {
42685
42685
  try {
42686
- const jsBarcodeModule = await import("./JsBarcode-Dow1PECK.js").then((n) => n.JsBarcode);
42686
+ const jsBarcodeModule = await import("./JsBarcode-uqOyCfHn.js").then((n) => n.JsBarcode);
42687
42687
  const JsBarcode = (jsBarcodeModule == null ? void 0 : jsBarcodeModule.default) || jsBarcodeModule;
42688
42688
  const canvas = document.createElement("canvas");
42689
42689
  const style = element.style || {};
@@ -42710,7 +42710,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
42710
42710
  const renderQrDataUrl = async (element) => {
42711
42711
  var _a2, _b;
42712
42712
  try {
42713
- const qrcodeModule = await import("./browser-D8az-2WH.js").then((n) => n.browser);
42713
+ const qrcodeModule = await import("./browser-3LUs52W8.js").then((n) => n.browser);
42714
42714
  const QRCode = (qrcodeModule == null ? void 0 : qrcodeModule.default) || qrcodeModule;
42715
42715
  return await QRCode.toDataURL(getResolvedContent(element), {
42716
42716
  margin: 0,
@@ -42873,13 +42873,13 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
42873
42873
  key: 0,
42874
42874
  src: getBarcodeSrc(element),
42875
42875
  class: "w-full h-full object-contain"
42876
- }, null, 8, _hoisted_5$4)) : createCommentVNode("", true)
42877
- ])) : element.type === "QRCODE" ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
42876
+ }, null, 8, _hoisted_5$3)) : createCommentVNode("", true)
42877
+ ])) : element.type === "QRCODE" ? (openBlock(), createElementBlock("div", _hoisted_6$3, [
42878
42878
  getQrSrc(element) ? (openBlock(), createElementBlock("img", {
42879
42879
  key: 0,
42880
42880
  src: getQrSrc(element),
42881
42881
  class: "w-full h-full object-contain"
42882
- }, null, 8, _hoisted_7$4)) : createCommentVNode("", true)
42882
+ }, null, 8, _hoisted_7$3)) : createCommentVNode("", true)
42883
42883
  ])) : element.type === "TABLE" ? (openBlock(), createElementBlock("div", {
42884
42884
  key: 5,
42885
42885
  class: "w-full h-full border border-gray-300 bg-white grid",
@@ -42938,24 +42938,24 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
42938
42938
  textAlign: element.style.textAlign,
42939
42939
  lineHeight: 1
42940
42940
  })
42941
- }, toDisplayString$1(getPageNumberText(element, index2)), 5)) : element.type === "IMAGE" ? (openBlock(), createElementBlock("div", _hoisted_8$4, [
42941
+ }, toDisplayString$1(getPageNumberText(element, index2)), 5)) : element.type === "IMAGE" ? (openBlock(), createElementBlock("div", _hoisted_8$3, [
42942
42942
  element.content ? (openBlock(), createElementBlock("img", {
42943
42943
  key: 0,
42944
42944
  src: element.content,
42945
42945
  class: "w-full h-full object-cover"
42946
- }, null, 8, _hoisted_9$3)) : createCommentVNode("", true)
42947
- ])) : element.type === "BARCODE" ? (openBlock(), createElementBlock("div", _hoisted_10$3, [
42946
+ }, null, 8, _hoisted_9$2)) : createCommentVNode("", true)
42947
+ ])) : element.type === "BARCODE" ? (openBlock(), createElementBlock("div", _hoisted_10$2, [
42948
42948
  getBarcodeSrc(element) ? (openBlock(), createElementBlock("img", {
42949
42949
  key: 0,
42950
42950
  src: getBarcodeSrc(element),
42951
42951
  class: "w-full h-full object-contain"
42952
- }, null, 8, _hoisted_11$3)) : createCommentVNode("", true)
42953
- ])) : element.type === "QRCODE" ? (openBlock(), createElementBlock("div", _hoisted_12$3, [
42952
+ }, null, 8, _hoisted_11$2)) : createCommentVNode("", true)
42953
+ ])) : element.type === "QRCODE" ? (openBlock(), createElementBlock("div", _hoisted_12$2, [
42954
42954
  getQrSrc(element) ? (openBlock(), createElementBlock("img", {
42955
42955
  key: 0,
42956
42956
  src: getQrSrc(element),
42957
42957
  class: "w-full h-full object-contain"
42958
- }, null, 8, _hoisted_13$3)) : createCommentVNode("", true)
42958
+ }, null, 8, _hoisted_13$2)) : createCommentVNode("", true)
42959
42959
  ])) : element.type === "TABLE" ? (openBlock(), createElementBlock("div", {
42960
42960
  key: 5,
42961
42961
  class: "w-full h-full border border-gray-300 bg-white grid",
@@ -43035,21 +43035,21 @@ const _hoisted_4$3 = {
43035
43035
  key: 1,
43036
43036
  class: "space-y-1"
43037
43037
  };
43038
- const _hoisted_5$3 = ["onDragstart"];
43039
- const _hoisted_6$3 = ["onClick"];
43040
- const _hoisted_7$3 = {
43038
+ const _hoisted_5$2 = ["onDragstart"];
43039
+ const _hoisted_6$2 = ["onClick"];
43040
+ const _hoisted_7$2 = {
43041
43041
  key: 1,
43042
43042
  class: "w-4 h-4 mr-1"
43043
43043
  };
43044
- const _hoisted_8$3 = ["title"];
43045
- const _hoisted_9$2 = ["title"];
43046
- const _hoisted_10$2 = {
43044
+ const _hoisted_8$2 = ["title"];
43045
+ const _hoisted_9$1 = ["title"];
43046
+ const _hoisted_10$1 = {
43047
43047
  key: 0,
43048
43048
  class: "ml-6 border-l border-gray-200 dark:border-gray-600 pl-1 mt-1 space-y-1"
43049
43049
  };
43050
- const _hoisted_11$2 = ["onDragstart"];
43051
- const _hoisted_12$2 = ["title"];
43052
- const _hoisted_13$2 = ["title"];
43050
+ const _hoisted_11$1 = ["onDragstart"];
43051
+ const _hoisted_12$1 = ["title"];
43052
+ const _hoisted_13$1 = ["title"];
43053
43053
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
43054
43054
  __name: "VariablesPanel",
43055
43055
  setup(__props) {
@@ -43269,17 +43269,17 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
43269
43269
  key: 1,
43270
43270
  class: "w-4 h-4"
43271
43271
  }))
43272
- ], 8, _hoisted_6$3)) : (openBlock(), createElementBlock("div", _hoisted_7$3)),
43272
+ ], 8, _hoisted_6$2)) : (openBlock(), createElementBlock("div", _hoisted_7$2)),
43273
43273
  createBaseVNode("span", {
43274
43274
  class: "text-sm text-gray-700 dark:text-gray-200 truncate flex-1",
43275
43275
  title: item.label
43276
- }, toDisplayString$1(item.label), 9, _hoisted_8$3),
43276
+ }, toDisplayString$1(item.label), 9, _hoisted_8$2),
43277
43277
  createBaseVNode("span", {
43278
43278
  class: "text-xs text-gray-400 bg-gray-100 dark:bg-gray-700 px-1 rounded truncate max-w-[100px]",
43279
43279
  title: `@${item.id}`
43280
- }, "@" + toDisplayString$1(item.id), 9, _hoisted_9$2)
43281
- ], 40, _hoisted_5$3),
43282
- item.children && item.children.length > 0 && expandedNodes.value.has(item.id) ? (openBlock(), createElementBlock("div", _hoisted_10$2, [
43280
+ }, "@" + toDisplayString$1(item.id), 9, _hoisted_9$1)
43281
+ ], 40, _hoisted_5$2),
43282
+ item.children && item.children.length > 0 && expandedNodes.value.has(item.id) ? (openBlock(), createElementBlock("div", _hoisted_10$1, [
43283
43283
  (openBlock(true), createElementBlock(Fragment, null, renderList(item.children, (child) => {
43284
43284
  return openBlock(), createElementBlock("div", {
43285
43285
  key: child.id,
@@ -43290,12 +43290,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
43290
43290
  createBaseVNode("span", {
43291
43291
  class: "text-sm text-gray-700 dark:text-gray-200 truncate flex-1",
43292
43292
  title: child.label
43293
- }, toDisplayString$1(child.label), 9, _hoisted_12$2),
43293
+ }, toDisplayString$1(child.label), 9, _hoisted_12$1),
43294
43294
  createBaseVNode("span", {
43295
43295
  class: "text-xs text-gray-400 bg-gray-100 dark:bg-gray-700 px-1 rounded truncate max-w-[100px]",
43296
43296
  title: `@${child.id}`
43297
- }, "@" + toDisplayString$1(child.id), 9, _hoisted_13$2)
43298
- ], 40, _hoisted_11$2);
43297
+ }, "@" + toDisplayString$1(child.id), 9, _hoisted_13$1)
43298
+ ], 40, _hoisted_11$1);
43299
43299
  }), 128))
43300
43300
  ])) : createCommentVNode("", true)
43301
43301
  ]);
@@ -43376,19 +43376,19 @@ const _hoisted_4$2 = {
43376
43376
  key: 1,
43377
43377
  class: "w-4 flex-shrink-0"
43378
43378
  };
43379
- const _hoisted_5$2 = {
43379
+ const _hoisted_5$1 = {
43380
43380
  key: 2,
43381
43381
  class: "text-gray-400 flex-shrink-0"
43382
43382
  };
43383
- const _hoisted_6$2 = {
43383
+ const _hoisted_6$1 = {
43384
43384
  key: 3,
43385
43385
  class: "text-gray-400 flex-shrink-0"
43386
43386
  };
43387
- const _hoisted_7$2 = {
43387
+ const _hoisted_7$1 = {
43388
43388
  key: 0,
43389
43389
  class: "text-xs text-gray-400 truncate max-w-[300px]"
43390
43390
  };
43391
- const _hoisted_8$2 = {
43391
+ const _hoisted_8$1 = {
43392
43392
  key: 0,
43393
43393
  class: "border-l-2 border-gray-200 dark:border-gray-700 ml-4"
43394
43394
  };
@@ -43510,7 +43510,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
43510
43510
  createBaseVNode("span", {
43511
43511
  class: normalizeClass(["text-sm select-all flex-shrink-0", isRootLevel.value ? "text-black dark:text-white" : "text-black dark:text-black"])
43512
43512
  }, toDisplayString$1(isArray2.value ? `[${__props.nodeKey}]` : __props.nodeKey), 3),
43513
- hasChildren.value ? (openBlock(), createElementBlock("span", _hoisted_5$2, ":")) : (openBlock(), createElementBlock("span", _hoisted_6$2, "=")),
43513
+ hasChildren.value ? (openBlock(), createElementBlock("span", _hoisted_5$1, ":")) : (openBlock(), createElementBlock("span", _hoisted_6$1, "=")),
43514
43514
  !hasChildren.value ? (openBlock(), createElementBlock("span", {
43515
43515
  key: 4,
43516
43516
  class: normalizeClass(["px-2 py-0.5 rounded text-xs font-medium flex-shrink-0", {
@@ -43526,10 +43526,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
43526
43526
  "bg-violet-100 dark:bg-violet-900/30 text-violet-600 dark:text-violet-400": getTypeInfo(__props.nodeValue).type === "object"
43527
43527
  }])
43528
43528
  }, toDisplayString$1(getTypeInfo(__props.nodeValue).type === "array" ? "Array" : "Object") + " (" + toDisplayString$1(getChildrenCount(__props.nodeValue)) + ") ", 3),
43529
- !isExpanded.value && getPreview.value ? (openBlock(), createElementBlock("span", _hoisted_7$2, toDisplayString$1(getPreview.value), 1)) : createCommentVNode("", true)
43529
+ !isExpanded.value && getPreview.value ? (openBlock(), createElementBlock("span", _hoisted_7$1, toDisplayString$1(getPreview.value), 1)) : createCommentVNode("", true)
43530
43530
  ], 64))
43531
43531
  ], 6),
43532
- hasChildren.value && isExpanded.value ? (openBlock(), createElementBlock("div", _hoisted_8$2, [
43532
+ hasChildren.value && isExpanded.value ? (openBlock(), createElementBlock("div", _hoisted_8$1, [
43533
43533
  (openBlock(true), createElementBlock(Fragment, null, renderList(childrenEntries.value, (child) => {
43534
43534
  return openBlock(), createBlock(_component_DataTreeNode, {
43535
43535
  key: child.key,
@@ -43547,37 +43547,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
43547
43547
  }
43548
43548
  });
43549
43549
  const DataTreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ab4421ba"]]);
43550
- const _hoisted_1$2 = { class: "tdp-modal" };
43551
- const _hoisted_2$1 = { class: "tdp-header" };
43552
- const _hoisted_3$1 = { class: "tdp-header-left" };
43553
- const _hoisted_4$1 = { class: "tdp-icon-wrap" };
43554
- const _hoisted_5$1 = { class: "tdp-title-group" };
43555
- const _hoisted_6$1 = { class: "tdp-title" };
43556
- const _hoisted_7$1 = { class: "tdp-header-right" };
43557
- const _hoisted_8$1 = ["title"];
43558
- const _hoisted_9$1 = ["title"];
43559
- const _hoisted_10$1 = ["title"];
43560
- const _hoisted_11$1 = ["title"];
43561
- const _hoisted_12$1 = { class: "tdp-body" };
43562
- const _hoisted_13$1 = {
43563
- key: 1,
43564
- class: "tdp-tree-container"
43565
- };
43566
- const _hoisted_14$1 = {
43567
- key: 0,
43568
- class: "tdp-empty"
43569
- };
43570
- const _hoisted_15$1 = { class: "tdp-empty-icon" };
43571
- const _hoisted_16$1 = {
43572
- key: 1,
43573
- class: "tdp-tree"
43574
- };
43575
- const _hoisted_17$1 = { class: "tdp-footer" };
43576
- const _hoisted_18$1 = { class: "tdp-footer-left" };
43577
- const _hoisted_19$1 = {
43578
- key: 0,
43579
- class: "tdp-hint"
43580
- };
43550
+ const _hoisted_1$2 = ["title"];
43551
+ const _hoisted_2$1 = ["title"];
43552
+ const _hoisted_3$1 = ["title"];
43553
+ const _hoisted_4$1 = ["title"];
43581
43554
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
43582
43555
  __name: "TestDataPanel",
43583
43556
  setup(__props) {
@@ -43689,87 +43662,166 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
43689
43662
  if (!store.testData || typeof store.testData !== "object") return [];
43690
43663
  return Object.entries(store.testData);
43691
43664
  });
43665
+ const getOverlayStyle = () => "position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,0.5);backdrop-filter:blur(4px);pointer-events:auto;";
43666
+ const getModalStyle = () => "width:900px;height:85vh;display:flex;flex-direction:column;overflow:hidden;border-radius:16px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.25);background-color:#ffffff;border:1px solid #e5e7eb;color-scheme:light;";
43667
+ const getHeaderStyle = () => "display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:linear-gradient(to right,#f9fafb,#ffffff);";
43668
+ const getHeaderLeftStyle = () => "display:flex;align-items:center;gap:12px;";
43669
+ const getIconWrapStyle = () => "width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;background-color:#dbeafe;";
43670
+ const getIconStyle = () => "width:20px;height:20px;color:#2563eb;";
43671
+ const getTitleGroupStyle = () => "display:flex;flex-direction:column;";
43672
+ const getTitleStyle = () => "font-size:18px;font-weight:700;color:#111827;margin:0;";
43673
+ const getSubtitleStyle = () => "font-size:12px;color:#6b7280;margin:0;";
43674
+ const getHeaderRightStyle = () => "display:flex;align-items:center;gap:4px;";
43675
+ const getBtnIconStyle = () => "width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;border:none;background-color:transparent;color:#6b7280;cursor:pointer;";
43676
+ const getResetBtnStyle = () => "width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;border:none;background-color:transparent;color:#ef4444;cursor:pointer;";
43677
+ const getBtnIconInnerStyle = () => "width:20px;height:20px;";
43678
+ const getDividerStyle = () => "width:1px;height:24px;background-color:#d1d5db;margin:0 8px;";
43679
+ const getBtnTextStyle = () => "padding:6px 12px;font-size:14px;font-weight:500;border-radius:8px;border:none;background-color:transparent;color:#4b5563;cursor:pointer;";
43680
+ const getBodyStyle = () => "flex:1;overflow:hidden;display:flex;flex-direction:column;";
43681
+ const getTextareaStyle = () => "width:100%;height:500px;padding:16px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;border:none;background-color:#f9fafb;color:#374151;resize:none;outline:none;";
43682
+ const getTreeContainerStyle = () => "height:70vh;overflow:auto;padding:16px;";
43683
+ const getEmptyStyle = () => "height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;";
43684
+ const getEmptyIconStyle = () => "width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:#f3f4f6;margin-bottom:16px;";
43685
+ const getEmptyIconInnerStyle = () => "width:40px;height:40px;opacity:0.5;";
43686
+ const getEmptyTextStyle = () => "font-size:18px;font-weight:500;color:#6b7280;margin:0 0 8px 0;";
43687
+ const getEmptyHintStyle = () => "font-size:14px;color:#9ca3af;margin:0;";
43688
+ const getTreeStyle = () => "display:flex;flex-direction:column;gap:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;";
43689
+ const getFooterStyle = () => "display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid #e5e7eb;background-color:#f9fafb;";
43690
+ const getFooterLeftStyle = () => "display:flex;align-items:center;gap:16px;";
43691
+ const getPrimaryBtnStyle = () => "padding:8px 16px;font-size:14px;font-weight:500;border-radius:8px;border:none;background-color:#2563eb;color:#ffffff;cursor:pointer;";
43692
+ const getSaveBtnStyle = () => "padding:8px 16px;font-size:14px;font-weight:500;border-radius:8px;border:none;background-color:#16a34a;color:#ffffff;cursor:pointer;";
43693
+ const getHintStyle = () => "font-size:12px;color:#6b7280;";
43694
+ const getLegendStyle = () => "display:flex;align-items:center;gap:16px;font-size:12px;color:#9ca3af;";
43695
+ const getLegendItemStyle = () => "display:flex;align-items:center;gap:4px;";
43692
43696
  return (_ctx, _cache) => {
43693
43697
  return openBlock(), createBlock(Teleport, { to: "body" }, [
43694
43698
  panelVisible.value ? (openBlock(), createElementBlock("div", {
43695
43699
  key: 0,
43696
- id: "test-data-panel",
43697
- class: "tdp-overlay",
43700
+ style: normalizeStyle(getOverlayStyle()),
43698
43701
  onClick: withModifiers(handleClose, ["self"])
43699
43702
  }, [
43700
- createBaseVNode("div", _hoisted_1$2, [
43701
- createBaseVNode("div", _hoisted_2$1, [
43702
- createBaseVNode("div", _hoisted_3$1, [
43703
- createBaseVNode("div", _hoisted_4$1, [
43704
- createVNode(unref(Code), { class: "tdp-icon" })
43705
- ]),
43706
- createBaseVNode("div", _hoisted_5$1, [
43707
- createBaseVNode("h2", _hoisted_6$1, toDisplayString$1(unref(t)("testData.title")), 1),
43708
- _cache[1] || (_cache[1] = createBaseVNode("p", { class: "tdp-subtitle" }, "数据预览 · 变量绑定测试", -1))
43709
- ])
43710
- ]),
43711
- createBaseVNode("div", _hoisted_7$1, [
43703
+ createBaseVNode("div", {
43704
+ style: normalizeStyle(getModalStyle())
43705
+ }, [
43706
+ createBaseVNode("div", {
43707
+ style: normalizeStyle(getHeaderStyle())
43708
+ }, [
43709
+ createBaseVNode("div", {
43710
+ style: normalizeStyle(getHeaderLeftStyle())
43711
+ }, [
43712
+ createBaseVNode("div", {
43713
+ style: normalizeStyle(getIconWrapStyle())
43714
+ }, [
43715
+ createVNode(unref(Code), {
43716
+ style: normalizeStyle(getIconStyle())
43717
+ }, null, 8, ["style"])
43718
+ ], 4),
43719
+ createBaseVNode("div", {
43720
+ style: normalizeStyle(getTitleGroupStyle())
43721
+ }, [
43722
+ createBaseVNode("h2", {
43723
+ style: normalizeStyle(getTitleStyle())
43724
+ }, toDisplayString$1(unref(t)("testData.title")), 5),
43725
+ createBaseVNode("p", {
43726
+ style: normalizeStyle(getSubtitleStyle())
43727
+ }, "数据预览 · 变量绑定测试", 4)
43728
+ ], 4)
43729
+ ], 4),
43730
+ createBaseVNode("div", {
43731
+ style: normalizeStyle(getHeaderRightStyle())
43732
+ }, [
43712
43733
  createBaseVNode("button", {
43734
+ style: normalizeStyle(getBtnIconStyle()),
43713
43735
  onClick: handleCopy,
43714
- class: "tdp-btn-icon",
43715
43736
  title: unref(t)("testData.copy")
43716
43737
  }, [
43717
- createVNode(unref(CopyIcon), { class: "tdp-btn-icon-inner" })
43718
- ], 8, _hoisted_8$1),
43738
+ createVNode(unref(CopyIcon), {
43739
+ style: normalizeStyle(getBtnIconInnerStyle())
43740
+ }, null, 8, ["style"])
43741
+ ], 12, _hoisted_1$2),
43719
43742
  createBaseVNode("button", {
43743
+ style: normalizeStyle(getBtnIconStyle()),
43720
43744
  onClick: handleExport,
43721
- class: "tdp-btn-icon",
43722
43745
  title: unref(t)("testData.export")
43723
43746
  }, [
43724
- createVNode(unref(Download), { class: "tdp-btn-icon-inner" })
43725
- ], 8, _hoisted_9$1),
43747
+ createVNode(unref(Download), {
43748
+ style: normalizeStyle(getBtnIconInnerStyle())
43749
+ }, null, 8, ["style"])
43750
+ ], 12, _hoisted_2$1),
43726
43751
  createBaseVNode("button", {
43752
+ style: normalizeStyle(getBtnIconStyle()),
43727
43753
  onClick: handleImport,
43728
- class: "tdp-btn-icon",
43729
43754
  title: unref(t)("testData.import")
43730
43755
  }, [
43731
- createVNode(unref(Upload), { class: "tdp-btn-icon-inner" })
43732
- ], 8, _hoisted_10$1),
43733
- _cache[2] || (_cache[2] = createBaseVNode("div", { class: "tdp-divider" }, null, -1)),
43756
+ createVNode(unref(Upload), {
43757
+ style: normalizeStyle(getBtnIconInnerStyle())
43758
+ }, null, 8, ["style"])
43759
+ ], 12, _hoisted_3$1),
43760
+ createBaseVNode("div", {
43761
+ style: normalizeStyle(getDividerStyle())
43762
+ }, null, 4),
43734
43763
  createBaseVNode("button", {
43735
- onClick: expandAll,
43736
- class: "tdp-btn-text"
43737
- }, "展开全部"),
43764
+ style: normalizeStyle(getBtnTextStyle()),
43765
+ onClick: expandAll
43766
+ }, "展开全部", 4),
43738
43767
  createBaseVNode("button", {
43739
- onClick: collapseAll,
43740
- class: "tdp-btn-text"
43741
- }, "收起全部"),
43768
+ style: normalizeStyle(getBtnTextStyle()),
43769
+ onClick: collapseAll
43770
+ }, "收起全部", 4),
43742
43771
  createBaseVNode("button", {
43772
+ style: normalizeStyle(getResetBtnStyle()),
43743
43773
  onClick: handleReset,
43744
- class: "tdp-btn-icon tdp-btn-reset",
43745
43774
  title: unref(t)("testData.reset")
43746
43775
  }, [
43747
- createVNode(unref(Refresh), { class: "tdp-btn-icon-inner" })
43748
- ], 8, _hoisted_11$1),
43776
+ createVNode(unref(Refresh), {
43777
+ style: normalizeStyle(getBtnIconInnerStyle())
43778
+ }, null, 8, ["style"])
43779
+ ], 12, _hoisted_4$1),
43749
43780
  createBaseVNode("button", {
43750
- onClick: handleClose,
43751
- class: "tdp-btn-icon"
43781
+ style: normalizeStyle(getBtnIconStyle()),
43782
+ onClick: handleClose
43752
43783
  }, [
43753
- createVNode(unref(Close), { class: "tdp-btn-icon-inner" })
43754
- ])
43755
- ])
43756
- ]),
43757
- createBaseVNode("div", _hoisted_12$1, [
43784
+ createVNode(unref(Close), {
43785
+ style: normalizeStyle(getBtnIconInnerStyle())
43786
+ }, null, 8, ["style"])
43787
+ ], 4)
43788
+ ], 4)
43789
+ ], 4),
43790
+ createBaseVNode("div", {
43791
+ style: normalizeStyle(getBodyStyle())
43792
+ }, [
43758
43793
  editMode.value ? withDirectives((openBlock(), createElementBlock("textarea", {
43759
43794
  key: 0,
43760
43795
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => editJson.value = $event),
43761
- class: "tdp-textarea",
43796
+ style: normalizeStyle(getTextareaStyle()),
43762
43797
  placeholder: "输入 JSON 数据..."
43763
- }, null, 512)), [
43798
+ }, null, 4)), [
43764
43799
  [vModelText, editJson.value]
43765
- ]) : (openBlock(), createElementBlock("div", _hoisted_13$1, [
43766
- dataEntries.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_14$1, [
43767
- createBaseVNode("div", _hoisted_15$1, [
43768
- createVNode(unref(Code), { class: "tdp-empty-icon-inner" })
43769
- ]),
43770
- _cache[3] || (_cache[3] = createBaseVNode("p", { class: "tdp-empty-text" }, "暂无测试数据", -1)),
43771
- _cache[4] || (_cache[4] = createBaseVNode("p", { class: "tdp-empty-hint" }, "点击右上角「编辑 JSON」添加数据,或导入 JSON 文件", -1))
43772
- ])) : (openBlock(), createElementBlock("div", _hoisted_16$1, [
43800
+ ]) : (openBlock(), createElementBlock("div", {
43801
+ key: 1,
43802
+ style: normalizeStyle(getTreeContainerStyle())
43803
+ }, [
43804
+ dataEntries.value.length === 0 ? (openBlock(), createElementBlock("div", {
43805
+ key: 0,
43806
+ style: normalizeStyle(getEmptyStyle())
43807
+ }, [
43808
+ createBaseVNode("div", {
43809
+ style: normalizeStyle(getEmptyIconStyle())
43810
+ }, [
43811
+ createVNode(unref(Code), {
43812
+ style: normalizeStyle(getEmptyIconInnerStyle())
43813
+ }, null, 8, ["style"])
43814
+ ], 4),
43815
+ createBaseVNode("p", {
43816
+ style: normalizeStyle(getEmptyTextStyle())
43817
+ }, "暂无测试数据", 4),
43818
+ createBaseVNode("p", {
43819
+ style: normalizeStyle(getEmptyHintStyle())
43820
+ }, "点击右上角「编辑 JSON」添加数据,或导入 JSON 文件", 4)
43821
+ ], 4)) : (openBlock(), createElementBlock("div", {
43822
+ key: 1,
43823
+ style: normalizeStyle(getTreeStyle())
43824
+ }, [
43773
43825
  (openBlock(true), createElementBlock(Fragment, null, renderList(dataEntries.value, ([key, value]) => {
43774
43826
  return openBlock(), createBlock(DataTreeNode, {
43775
43827
  key,
@@ -43781,47 +43833,65 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
43781
43833
  onToggle: toggleExpand
43782
43834
  }, null, 8, ["node-key", "node-value", "path", "expanded-keys"]);
43783
43835
  }), 128))
43784
- ]))
43785
- ]))
43786
- ]),
43787
- createBaseVNode("div", _hoisted_17$1, [
43788
- createBaseVNode("div", _hoisted_18$1, [
43836
+ ], 4))
43837
+ ], 4))
43838
+ ], 4),
43839
+ createBaseVNode("div", {
43840
+ style: normalizeStyle(getFooterStyle())
43841
+ }, [
43842
+ createBaseVNode("div", {
43843
+ style: normalizeStyle(getFooterLeftStyle())
43844
+ }, [
43789
43845
  createBaseVNode("button", {
43790
- onClick: toggleEditMode,
43791
- class: normalizeClass(["tdp-btn-primary", { "tdp-btn-save": editMode.value }])
43792
- }, toDisplayString$1(editMode.value ? "✓ 保存 JSON" : "📝 编辑 JSON"), 3),
43793
- editMode.value ? (openBlock(), createElementBlock("span", _hoisted_19$1, "按 Ctrl+S 保存 · Esc 取消编辑")) : createCommentVNode("", true)
43794
- ]),
43795
- _cache[5] || (_cache[5] = createBaseVNode("div", { class: "tdp-legend" }, [
43796
- createBaseVNode("span", { class: "tdp-legend-item" }, [
43797
- createBaseVNode("span", { class: "tdp-dot tdp-dot-orange" }),
43798
- createTextVNode(" 字符串")
43799
- ]),
43800
- createBaseVNode("span", { class: "tdp-legend-item" }, [
43801
- createBaseVNode("span", { class: "tdp-dot tdp-dot-blue" }),
43802
- createTextVNode(" 数字")
43803
- ]),
43804
- createBaseVNode("span", { class: "tdp-legend-item" }, [
43805
- createBaseVNode("span", { class: "tdp-dot tdp-dot-purple" }),
43806
- createTextVNode(" 布尔值")
43807
- ]),
43808
- createBaseVNode("span", { class: "tdp-legend-item" }, [
43809
- createBaseVNode("span", { class: "tdp-dot tdp-dot-indigo" }),
43810
- createTextVNode(" 数组")
43811
- ]),
43812
- createBaseVNode("span", { class: "tdp-legend-item" }, [
43813
- createBaseVNode("span", { class: "tdp-dot tdp-dot-violet" }),
43814
- createTextVNode(" 对象")
43815
- ])
43816
- ], -1))
43817
- ])
43818
- ])
43819
- ])) : createCommentVNode("", true)
43846
+ style: normalizeStyle(editMode.value ? getSaveBtnStyle() : getPrimaryBtnStyle()),
43847
+ onClick: toggleEditMode
43848
+ }, toDisplayString$1(editMode.value ? "✓ 保存 JSON" : "📝 编辑 JSON"), 5),
43849
+ editMode.value ? (openBlock(), createElementBlock("span", {
43850
+ key: 0,
43851
+ style: normalizeStyle(getHintStyle())
43852
+ }, "按 Ctrl+S 保存 · Esc 取消编辑", 4)) : createCommentVNode("", true)
43853
+ ], 4),
43854
+ createBaseVNode("div", {
43855
+ style: normalizeStyle(getLegendStyle())
43856
+ }, [
43857
+ createBaseVNode("span", {
43858
+ style: normalizeStyle(getLegendItemStyle())
43859
+ }, [..._cache[1] || (_cache[1] = [
43860
+ createBaseVNode("span", { style: "width:8px;height:8px;border-radius:50%;background-color:#f97316;" }, null, -1),
43861
+ createTextVNode(" 字符串", -1)
43862
+ ])], 4),
43863
+ createBaseVNode("span", {
43864
+ style: normalizeStyle(getLegendItemStyle())
43865
+ }, [..._cache[2] || (_cache[2] = [
43866
+ createBaseVNode("span", { style: "width:8px;height:8px;border-radius:50%;background-color:#3b82f6;" }, null, -1),
43867
+ createTextVNode(" 数字", -1)
43868
+ ])], 4),
43869
+ createBaseVNode("span", {
43870
+ style: normalizeStyle(getLegendItemStyle())
43871
+ }, [..._cache[3] || (_cache[3] = [
43872
+ createBaseVNode("span", { style: "width:8px;height:8px;border-radius:50%;background-color:#a855f7;" }, null, -1),
43873
+ createTextVNode(" 布尔值", -1)
43874
+ ])], 4),
43875
+ createBaseVNode("span", {
43876
+ style: normalizeStyle(getLegendItemStyle())
43877
+ }, [..._cache[4] || (_cache[4] = [
43878
+ createBaseVNode("span", { style: "width:8px;height:8px;border-radius:50%;background-color:#6366f1;" }, null, -1),
43879
+ createTextVNode(" 数组", -1)
43880
+ ])], 4),
43881
+ createBaseVNode("span", {
43882
+ style: normalizeStyle(getLegendItemStyle())
43883
+ }, [..._cache[5] || (_cache[5] = [
43884
+ createBaseVNode("span", { style: "width:8px;height:8px;border-radius:50%;background-color:#8b5cf6;" }, null, -1),
43885
+ createTextVNode(" 对象", -1)
43886
+ ])], 4)
43887
+ ], 4)
43888
+ ], 4)
43889
+ ], 4)
43890
+ ], 4)) : createCommentVNode("", true)
43820
43891
  ]);
43821
43892
  };
43822
43893
  }
43823
43894
  });
43824
- const TestDataPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-b6c10664"]]);
43825
43895
  const _hoisted_1$1 = {
43826
43896
  viewBox: "0 0 24 24",
43827
43897
  width: "1.2em",
@@ -44652,7 +44722,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
44652
44722
  class: "print-designer-modals fixed inset-0 pointer-events-none z-[9999]"
44653
44723
  }, null, 512),
44654
44724
  createVNode(VariablesPanel),
44655
- createVNode(TestDataPanel)
44725
+ createVNode(_sfc_main$1)
44656
44726
  ], 512));
44657
44727
  };
44658
44728
  }