From 8e958ea0ed731f1f54738160a4e63e8a7984637b Mon Sep 17 00:00:00 2001 From: Power BI Dev Date: Mon, 17 Aug 2026 18:37:03 +0700 Subject: [PATCH] fix: store and populate memberKey for share invite link --- client/dist/assets/index-C1k3Ryr0.css | 1 + client/dist/assets/index-COtT48NQ.css | 1 - .../{index-D2ZOrmDk.js => index-h2AVDMMH.js} | 50 +++++++++---------- client/dist/index.html | 4 +- client/src/components/BoardView.tsx | 8 +-- client/src/components/Navbar.tsx | 32 ++++++++---- client/src/types/index.ts | 2 + server/prisma/schema.prisma | 1 + server/prisma/schema.sqlite.prisma | 1 + server/src/services/boardService.ts | 44 ++++++++++------ server/src/types/index.ts | 2 + 11 files changed, 91 insertions(+), 55 deletions(-) create mode 100644 client/dist/assets/index-C1k3Ryr0.css delete mode 100644 client/dist/assets/index-COtT48NQ.css rename client/dist/assets/{index-D2ZOrmDk.js => index-h2AVDMMH.js} (81%) diff --git a/client/dist/assets/index-C1k3Ryr0.css b/client/dist/assets/index-C1k3Ryr0.css new file mode 100644 index 0000000..ac1883b --- /dev/null +++ b/client/dist/assets/index-C1k3Ryr0.css @@ -0,0 +1 @@ +*,: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(59 130 246 / .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(59 130 246 / .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:Inter,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;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}html:not(.retro-mode) body,html:not(.retro-mode) button,html:not(.retro-mode) input,html:not(.retro-mode) textarea,html:not(.retro-mode) select{font-family:Inter,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;letter-spacing:-.01em}html.retro-mode body,html.retro-mode button,html.retro-mode input,html.retro-mode textarea,html.retro-mode select,html.retro-mode *{font-family:Silkscreen,"Press Start 2P",monospace!important;image-rendering:pixelated}body{background-color:#f8fafc;color:#0f172a;transition:background-color .2s ease,color .2s ease}html.dark body{background-color:#080c18;color:#f1f5f9}html.retro-mode.dark body{background-color:#12101b!important;color:#f1f5f9!important}html.retro-mode:not(.dark) body{background-color:#f4f3ea!important;color:#0f172a!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#6366f1}html.dark ::-webkit-scrollbar-thumb{background:#334155}html.dark ::-webkit-scrollbar-thumb:hover{background:#6366f1}html.retro-mode ::-webkit-scrollbar{width:10px;height:10px}html.retro-mode.dark ::-webkit-scrollbar-track{background:#111118;border-left:2px solid #000}html.retro-mode:not(.dark) ::-webkit-scrollbar-track{background:#eae8dc;border-left:2px solid #000}html.retro-mode ::-webkit-scrollbar-thumb{background:#374151;border:2px solid #000;border-radius:0}html.retro-mode ::-webkit-scrollbar-thumb:hover{background:#f59e0b}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-full{bottom:100%}.left-1\/2{left:50%}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-12{margin-top:3rem;margin-bottom:3rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1\.5{margin-left:.375rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-4{height:1rem}.h-48{height:12rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-44{max-height:11rem}.max-h-\[92vh\]{max-height:92vh}.max-h-\[calc\(100vh-170px\)\]{max-height:calc(100vh - 170px)}.min-h-\[100px\]{min-height:100px}.min-h-\[70vh\]{min-height:70vh}.min-h-\[calc\(100vh-60px\)\]{min-height:calc(100vh - 60px)}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-4{width:1rem}.w-48{width:12rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[82vw\]{width:82vw}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[140px\]{max-width:140px}.max-w-\[200px\]{max-width:200px}.max-w-\[320px\]{max-width:320px}.max-w-\[50px\]{max-width:50px}.max-w-\[70px\]{max-width:70px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-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))}.rotate-1{--tw-rotate: 1deg;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-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.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}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-center{scroll-snap-align:center}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.25rem * var(--tw-space-x-reverse));margin-left:calc(-.25rem * calc(1 - var(--tw-space-x-reverse)))}.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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * 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-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.875rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.875rem * 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))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/40{border-color:#f59e0b66}.border-amber-500\/60{border-color:#f59e0b99}.border-amber-500\/80{border-color:#f59e0bcc}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-cyan-500\/40{border-color:#06b6d466}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-500\/50{border-color:#6366f180}.border-indigo-500\/60{border-color:#6366f199}.border-purple-300{--tw-border-opacity: 1;border-color:rgb(216 180 254 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-rose-400{--tw-border-opacity: 1;border-color:rgb(251 113 133 / var(--tw-border-opacity, 1))}.border-rose-500{--tw-border-opacity: 1;border-color:rgb(244 63 94 / var(--tw-border-opacity, 1))}.border-rose-500\/50{border-color:#f43f5e80}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/70{background-color:#fffbebb3}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-cyan-50\/70{background-color:#ecfeffb3}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/70{background-color:#ecfdf5b3}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-50\/70{background-color:#fff1f2b3}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200\/80{background-color:#e2e8f0cc}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(7 12 24 / var(--tw-bg-opacity, 1))}.bg-slate-950\/70{background-color:#070c18b3}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/95{background-color:#fffffff2}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-purple-600{--tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #9333ea var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.stroke-\[2\.5\]{stroke-width:2.5}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-3\.5{padding-bottom:.875rem}.pb-6{padding-bottom:1.5rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Inter,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-900{--tw-text-opacity: 1;color:rgb(88 28 135 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-rose-800{--tw-text-opacity: 1;color:rgb(159 18 57 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(7 12 24 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px 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-indigo-500\/20{--tw-shadow-color: rgb(99 102 241 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-600\/25{--tw-shadow-color: rgb(79 70 229 / .25);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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-amber-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.ring-amber-500\/30{--tw-ring-color: rgb(245 158 11 / .3)}.blur-3xl{--tw-blur: blur(64px);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-md{--tw-backdrop-blur: blur(12px);-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-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.card-kanban{border-radius:1rem;border-width:1px;border-color:#e2e8f0e6;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--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);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.card-kanban:is(.dark *){border-color:#1e293bcc;background-color:#0f172ae6;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(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)}.column-kanban{border-radius:1rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));background-color:#f1f5f9e6;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.column-kanban:is(.dark *){border-color:#1e293bcc;background-color:#0c1222cc}.ticket-kanban{border-radius:.75rem;border-width:1px;border-color:#e2e8f0e6;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1));--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);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ticket-kanban:hover{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1));--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)}.ticket-kanban:is(.dark *){border-color:#1e293be6;--tw-bg-opacity: 1;background-color:rgb(17 25 46 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1));--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(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)}.ticket-kanban:hover:is(.dark *){border-color:#6366f166;--tw-shadow: 0 4px 20px -2px rgba(0, 0, 0, .25);--tw-shadow-colored: 0 4px 20px -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)}.btn-modern{position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern:disabled{cursor:not-allowed;opacity:.5}.btn-modern-primary{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--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);--tw-shadow-color: rgb(79 70 229 / .25);--tw-shadow: var(--tw-shadow-colored);position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-primary:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-primary:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-primary{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-primary:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-primary:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1));--tw-shadow-color: rgb(79 70 229 / .4);--tw-shadow: var(--tw-shadow-colored)}.btn-modern-secondary{border-width:1px;--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-secondary:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-secondary:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-secondary{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-secondary:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.btn-modern-secondary:is(.dark *){border-color:#334155b3;background-color:#1e293be6;--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.btn-modern-secondary:hover:is(.dark *){background-color:#334155e6}.btn-modern-danger{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--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);--tw-shadow-color: rgb(225 29 72 / .2);--tw-shadow: var(--tw-shadow-colored);position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-danger:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-danger:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-danger{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-danger:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-danger:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.btn-modern-gold{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(7 12 24 / var(--tw-text-opacity, 1));--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);--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored);position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-gold:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-gold:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-gold{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-gold:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-gold:hover{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}html.retro-mode.dark .card-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:6px 6px #000!important;background-color:#1a1626!important;color:#f1f5f9!important}html.retro-mode.dark .column-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:4px 4px #000!important;background-color:#151122!important}html.retro-mode.dark .ticket-kanban{border-radius:0!important;border:2px solid #000000!important;box-shadow:2px 2px #000!important;background-color:#221d33!important;color:#fff!important}html.retro-mode.dark input,html.retro-mode.dark textarea,html.retro-mode.dark select{border-radius:0!important;border:2px solid #000000!important;box-shadow:inset 2px 2px #0000004d!important;background-color:#161224!important;color:#fff!important}html.retro-mode.dark .btn-modern-secondary{background-color:#3b354d!important;color:#fff!important}html.retro-mode:not(.dark) .card-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:6px 6px #000!important;background-color:#fff!important;color:#0f172a!important}html.retro-mode:not(.dark) .column-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:4px 4px #000!important;background-color:#eae8dc!important;color:#0f172a!important}html.retro-mode:not(.dark) .ticket-kanban{border-radius:0!important;border:2px solid #000000!important;box-shadow:2px 2px #000!important;background-color:#fff!important;color:#0f172a!important}html.retro-mode:not(.dark) input,html.retro-mode:not(.dark) textarea,html.retro-mode:not(.dark) select{border-radius:0!important;border:2px solid #000000!important;box-shadow:inset 2px 2px #0000001a!important;background-color:#fff!important;color:#0f172a!important}html.retro-mode:not(.dark) .btn-modern-secondary{background-color:#e2e0d2!important;color:#0f172a!important;border:2px solid #000000!important}html.retro-mode .btn-modern{border-radius:0!important;border:2px solid #000000!important;box-shadow:3px 3px #000!important;text-transform:uppercase!important}html.retro-mode .btn-modern:active{transform:translate(2px,2px)!important;box-shadow:0 0 #000!important}html.retro-mode .btn-modern-primary{background-color:#10b981!important;color:#000!important;box-shadow:3px 3px #000!important}html.retro-mode .btn-modern-danger{background-color:#e11d48!important;color:#fff!important}html.retro-mode .btn-modern-gold{background-color:#f59e0b!important;color:#000!important}html.retro-mode .ticket-kanban:hover{transform:translateY(-2px)!important;box-shadow:4px 4px #000!important}.selection\:bg-indigo-500 *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:bg-indigo-500 *::selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:text-white *::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white *::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:bg-indigo-500::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:bg-indigo-500::selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:text-white::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:border-amber-400:hover{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.hover\:border-indigo-500:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.hover\:border-purple-400:hover{--tw-border-opacity: 1;border-color:rgb(192 132 252 / var(--tw-border-opacity, 1))}.hover\:bg-cyan-100:hover{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:text-indigo-600:hover{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.hover\:text-indigo-900:hover{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.hover\:text-purple-600:hover{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.active\:cursor-grabbing:active{cursor:grabbing}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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))}.group:hover .group-hover\:text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-amber-500\/20:is(.dark *){border-color:#f59e0b33}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-500\/40:is(.dark *){border-color:#f59e0b66}.dark\:border-blue-500\/20:is(.dark *){border-color:#3b82f633}.dark\:border-cyan-500\/30:is(.dark *){border-color:#06b6d44d}.dark\:border-cyan-500\/40:is(.dark *){border-color:#06b6d466}.dark\:border-emerald-500\/20:is(.dark *){border-color:#10b98133}.dark\:border-emerald-500\/30:is(.dark *){border-color:#10b9814d}.dark\:border-indigo-500\/20:is(.dark *){border-color:#6366f133}.dark\:border-indigo-500\/25:is(.dark *){border-color:#6366f140}.dark\:border-indigo-500\/30:is(.dark *){border-color:#6366f14d}.dark\:border-indigo-500\/40:is(.dark *){border-color:#6366f166}.dark\:border-purple-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(192 132 252 / var(--tw-border-opacity, 1))}.dark\:border-rose-500\/20:is(.dark *){border-color:#f43f5e33}.dark\:border-rose-500\/30:is(.dark *){border-color:#f43f5e4d}.dark\:border-rose-500\/50:is(.dark *){border-color:#f43f5e80}.dark\:border-rose-500\/60:is(.dark *){border-color:#f43f5e99}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:border-slate-700\/60:is(.dark *){border-color:#33415599}.dark\:border-slate-700\/80:is(.dark *){border-color:#334155cc}.dark\:border-slate-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:border-slate-800\/80:is(.dark *){border-color:#1e293bcc}.dark\:border-slate-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(15 23 42 / var(--tw-border-opacity, 1))}.dark\:bg-\[\#080c18\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 12 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#090d18\]\/90:is(.dark *){background-color:#090d18e6}.dark\:bg-\[\#090d18\]\/95:is(.dark *){background-color:#090d18f2}.dark\:bg-\[\#0b1020\]\/70:is(.dark *){background-color:#0b1020b3}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/15:is(.dark *){background-color:#f59e0b26}.dark\:bg-amber-500\/20:is(.dark *){background-color:#f59e0b33}.dark\:bg-amber-950\/60:is(.dark *){background-color:#451a0399}.dark\:bg-amber-950\/70:is(.dark *){background-color:#451a03b3}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-950\/60:is(.dark *){background-color:#17255499}.dark\:bg-cyan-500\/15:is(.dark *){background-color:#06b6d426}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-500\/15:is(.dark *){background-color:#10b98126}.dark\:bg-emerald-500\/20:is(.dark *){background-color:#10b98133}.dark\:bg-emerald-950\/60:is(.dark *){background-color:#022c2299}.dark\:bg-indigo-500\/10:is(.dark *){background-color:#6366f11a}.dark\:bg-indigo-500\/15:is(.dark *){background-color:#6366f126}.dark\:bg-indigo-900\/50:is(.dark *){background-color:#312e8180}.dark\:bg-purple-900\/70:is(.dark *){background-color:#581c87b3}.dark\:bg-rose-500\/10:is(.dark *){background-color:#f43f5e1a}.dark\:bg-rose-500\/15:is(.dark *){background-color:#f43f5e26}.dark\:bg-rose-500\/20:is(.dark *){background-color:#f43f5e33}.dark\:bg-rose-950\/20:is(.dark *){background-color:#4c051933}.dark\:bg-rose-950\/60:is(.dark *){background-color:#4c051999}.dark\:bg-rose-950\/70:is(.dark *){background-color:#4c0519b3}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800\/60:is(.dark *){background-color:#1e293b99}.dark\:bg-slate-800\/80:is(.dark *){background-color:#1e293bcc}.dark\:bg-slate-800\/90:is(.dark *){background-color:#1e293be6}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900\/30:is(.dark *){background-color:#0f172a4d}.dark\:bg-slate-900\/40:is(.dark *){background-color:#0f172a66}.dark\:bg-slate-900\/80:is(.dark *){background-color:#0f172acc}.dark\:bg-slate-900\/90:is(.dark *){background-color:#0f172ae6}.dark\:bg-slate-950\/60:is(.dark *){background-color:#070c1899}.dark\:bg-slate-950\/70:is(.dark *){background-color:#070c18b3}.dark\:bg-slate-950\/80:is(.dark *){background-color:#070c18cc}.dark\:from-indigo-400:is(.dark *){--tw-gradient-from: #818cf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(129 140 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-purple-300:is(.dark *){--tw-gradient-to: rgb(216 180 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #d8b4fe var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-cyan-400:is(.dark *){--tw-gradient-to: #22d3ee var(--tw-gradient-to-position)}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/80:is(.dark *){color:#fcd34dcc}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-cyan-300:is(.dark *){--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / 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-purple-200:is(.dark *){--tw-text-opacity: 1;color:rgb(233 213 255 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / 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-rose-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-rose-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / 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-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity: 1;color:rgb(100 116 139 / 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\:hover\:bg-\[\#121830\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 24 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-cyan-500\/25:hover:is(.dark *){background-color:#06b6d440}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-900\/80:hover:is(.dark *){background-color:#0f172acc}.dark\:hover\:text-indigo-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-indigo-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:hover\:text-purple-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-rose-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:right-5{right:1.25rem}.sm\:top-5{top:1.25rem}.sm\:my-20{margin-top:5rem;margin-bottom:5rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mt-6{margin-top:1.5rem}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-5{height:1.25rem}.sm\:h-9{height:2.25rem}.sm\:max-h-\[calc\(100vh-140px\)\]{max-height:calc(100vh - 140px)}.sm\:w-10{width:2.5rem}.sm\:w-12{width:3rem}.sm\:w-24{width:6rem}.sm\:w-36{width:9rem}.sm\:w-5{width:1.25rem}.sm\:w-72{width:18rem}.sm\:w-80{width:20rem}.sm\:w-9{width:2.25rem}.sm\:w-auto{width:auto}.sm\:max-w-\[120px\]{max-width:120px}.sm\:max-w-\[280px\]{max-width:280px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-5{gap:1.25rem}.sm\:p-2{padding:.5rem}.sm\:p-2\.5{padding:.625rem}.sm\:p-3{padding:.75rem}.sm\:p-3\.5{padding:.875rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:1.75rem}.sm\:p-8{padding:2rem}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-3\.5{padding-left:.875rem;padding-right:.875rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[11px\]{font-size:11px}.sm\:text-\[9px\]{font-size:9px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 768px){.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:inline{display:inline}.md\:max-w-md{max-width:28rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}} diff --git a/client/dist/assets/index-COtT48NQ.css b/client/dist/assets/index-COtT48NQ.css deleted file mode 100644 index 67f95a4..0000000 --- a/client/dist/assets/index-COtT48NQ.css +++ /dev/null @@ -1 +0,0 @@ -*,: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(59 130 246 / .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(59 130 246 / .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:Inter,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;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}html:not(.retro-mode) body,html:not(.retro-mode) button,html:not(.retro-mode) input,html:not(.retro-mode) textarea,html:not(.retro-mode) select{font-family:Inter,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;letter-spacing:-.01em}html.retro-mode body,html.retro-mode button,html.retro-mode input,html.retro-mode textarea,html.retro-mode select,html.retro-mode *{font-family:Silkscreen,"Press Start 2P",monospace!important;image-rendering:pixelated}body{background-color:#f8fafc;color:#0f172a;transition:background-color .2s ease,color .2s ease}html.dark body{background-color:#080c18;color:#f1f5f9}html.retro-mode.dark body{background-color:#12101b!important;color:#f1f5f9!important}html.retro-mode:not(.dark) body{background-color:#f4f3ea!important;color:#0f172a!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#6366f1}html.dark ::-webkit-scrollbar-thumb{background:#334155}html.dark ::-webkit-scrollbar-thumb:hover{background:#6366f1}html.retro-mode ::-webkit-scrollbar{width:10px;height:10px}html.retro-mode.dark ::-webkit-scrollbar-track{background:#111118;border-left:2px solid #000}html.retro-mode:not(.dark) ::-webkit-scrollbar-track{background:#eae8dc;border-left:2px solid #000}html.retro-mode ::-webkit-scrollbar-thumb{background:#374151;border:2px solid #000;border-radius:0}html.retro-mode ::-webkit-scrollbar-thumb:hover{background:#f59e0b}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-full{bottom:100%}.left-1\/2{left:50%}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-12{margin-top:3rem;margin-bottom:3rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1\.5{margin-left:.375rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-4{height:1rem}.h-48{height:12rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-44{max-height:11rem}.max-h-\[92vh\]{max-height:92vh}.max-h-\[calc\(100vh-170px\)\]{max-height:calc(100vh - 170px)}.min-h-\[100px\]{min-height:100px}.min-h-\[70vh\]{min-height:70vh}.min-h-\[calc\(100vh-60px\)\]{min-height:calc(100vh - 60px)}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-20{width:5rem}.w-4{width:1rem}.w-48{width:12rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[82vw\]{width:82vw}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[140px\]{max-width:140px}.max-w-\[200px\]{max-width:200px}.max-w-\[320px\]{max-width:320px}.max-w-\[50px\]{max-width:50px}.max-w-\[70px\]{max-width:70px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-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))}.rotate-1{--tw-rotate: 1deg;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-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.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}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-center{scroll-snap-align:center}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.25rem * var(--tw-space-x-reverse));margin-left:calc(-.25rem * calc(1 - var(--tw-space-x-reverse)))}.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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * 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-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.875rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.875rem * 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))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/40{border-color:#f59e0b66}.border-amber-500\/60{border-color:#f59e0b99}.border-amber-500\/80{border-color:#f59e0bcc}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-cyan-500\/40{border-color:#06b6d466}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-500\/50{border-color:#6366f180}.border-indigo-500\/60{border-color:#6366f199}.border-purple-300{--tw-border-opacity: 1;border-color:rgb(216 180 254 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-rose-400{--tw-border-opacity: 1;border-color:rgb(251 113 133 / var(--tw-border-opacity, 1))}.border-rose-500{--tw-border-opacity: 1;border-color:rgb(244 63 94 / var(--tw-border-opacity, 1))}.border-rose-500\/50{border-color:#f43f5e80}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/70{background-color:#fffbebb3}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-cyan-50\/70{background-color:#ecfeffb3}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/70{background-color:#ecfdf5b3}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-50\/70{background-color:#fff1f2b3}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200\/80{background-color:#e2e8f0cc}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(7 12 24 / var(--tw-bg-opacity, 1))}.bg-slate-950\/70{background-color:#070c18b3}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/95{background-color:#fffffff2}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-purple-600{--tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #9333ea var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.stroke-\[2\.5\]{stroke-width:2.5}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-3\.5{padding-bottom:.875rem}.pb-6{padding-bottom:1.5rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Inter,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-900{--tw-text-opacity: 1;color:rgb(88 28 135 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-rose-800{--tw-text-opacity: 1;color:rgb(159 18 57 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(7 12 24 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px 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-indigo-500\/20{--tw-shadow-color: rgb(99 102 241 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-600\/25{--tw-shadow-color: rgb(79 70 229 / .25);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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-amber-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.ring-amber-500\/30{--tw-ring-color: rgb(245 158 11 / .3)}.blur-3xl{--tw-blur: blur(64px);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-md{--tw-backdrop-blur: blur(12px);-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-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.card-kanban{border-radius:1rem;border-width:1px;border-color:#e2e8f0e6;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--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);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.card-kanban:is(.dark *){border-color:#1e293bcc;background-color:#0f172ae6;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(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)}.column-kanban{border-radius:1rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));background-color:#f1f5f9e6;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.column-kanban:is(.dark *){border-color:#1e293bcc;background-color:#0c1222cc}.ticket-kanban{border-radius:.75rem;border-width:1px;border-color:#e2e8f0e6;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1));--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);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ticket-kanban:hover{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1));--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)}.ticket-kanban:is(.dark *){border-color:#1e293be6;--tw-bg-opacity: 1;background-color:rgb(17 25 46 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1));--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(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)}.ticket-kanban:hover:is(.dark *){border-color:#6366f166;--tw-shadow: 0 4px 20px -2px rgba(0, 0, 0, .25);--tw-shadow-colored: 0 4px 20px -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)}.btn-modern{position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern:disabled{cursor:not-allowed;opacity:.5}.btn-modern-primary{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--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);--tw-shadow-color: rgb(79 70 229 / .25);--tw-shadow: var(--tw-shadow-colored);position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-primary:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-primary:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-primary{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-primary:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-primary:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1));--tw-shadow-color: rgb(79 70 229 / .4);--tw-shadow: var(--tw-shadow-colored)}.btn-modern-secondary{border-width:1px;--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-secondary:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-secondary:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-secondary{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-secondary:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.btn-modern-secondary:is(.dark *){border-color:#334155b3;background-color:#1e293be6;--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.btn-modern-secondary:hover:is(.dark *){background-color:#334155e6}.btn-modern-danger{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--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);--tw-shadow-color: rgb(225 29 72 / .2);--tw-shadow: var(--tw-shadow-colored);position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-danger:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-danger:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-danger{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-danger:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-danger:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.btn-modern-gold{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(7 12 24 / var(--tw-text-opacity, 1));--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);--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored);position:relative;display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-modern-gold:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.btn-modern-gold:disabled{cursor:not-allowed;opacity:.5}html.retro-mode .btn-modern-gold{border-radius:0;border:2px solid #000000;box-shadow:3px 3px #000;text-transform:uppercase}html.retro-mode .btn-modern-gold:active{transform:translate(2px,2px);box-shadow:0 0 #000}.btn-modern-gold:hover{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}html.retro-mode.dark .card-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:6px 6px #000!important;background-color:#1a1626!important;color:#f1f5f9!important}html.retro-mode.dark .column-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:4px 4px #000!important;background-color:#151122!important}html.retro-mode.dark .ticket-kanban{border-radius:0!important;border:2px solid #000000!important;box-shadow:2px 2px #000!important;background-color:#221d33!important;color:#fff!important}html.retro-mode.dark input,html.retro-mode.dark textarea,html.retro-mode.dark select{border-radius:0!important;border:2px solid #000000!important;box-shadow:inset 2px 2px #0000004d!important;background-color:#161224!important;color:#fff!important}html.retro-mode.dark .btn-modern-secondary{background-color:#3b354d!important;color:#fff!important}html.retro-mode:not(.dark) .card-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:6px 6px #000!important;background-color:#fff!important;color:#0f172a!important}html.retro-mode:not(.dark) .column-kanban{border-radius:0!important;border:4px solid #000000!important;box-shadow:4px 4px #000!important;background-color:#eae8dc!important;color:#0f172a!important}html.retro-mode:not(.dark) .ticket-kanban{border-radius:0!important;border:2px solid #000000!important;box-shadow:2px 2px #000!important;background-color:#fff!important;color:#0f172a!important}html.retro-mode:not(.dark) input,html.retro-mode:not(.dark) textarea,html.retro-mode:not(.dark) select{border-radius:0!important;border:2px solid #000000!important;box-shadow:inset 2px 2px #0000001a!important;background-color:#fff!important;color:#0f172a!important}html.retro-mode:not(.dark) .btn-modern-secondary{background-color:#e2e0d2!important;color:#0f172a!important;border:2px solid #000000!important}html.retro-mode .btn-modern{border-radius:0!important;border:2px solid #000000!important;box-shadow:3px 3px #000!important;text-transform:uppercase!important}html.retro-mode .btn-modern:active{transform:translate(2px,2px)!important;box-shadow:0 0 #000!important}html.retro-mode .btn-modern-primary{background-color:#10b981!important;color:#000!important;box-shadow:3px 3px #000!important}html.retro-mode .btn-modern-danger{background-color:#e11d48!important;color:#fff!important}html.retro-mode .btn-modern-gold{background-color:#f59e0b!important;color:#000!important}html.retro-mode .ticket-kanban:hover{transform:translateY(-2px)!important;box-shadow:4px 4px #000!important}.selection\:bg-indigo-500 *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:bg-indigo-500 *::selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:text-white *::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white *::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:bg-indigo-500::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:bg-indigo-500::selection{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.selection\:text-white::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:border-amber-400:hover{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.hover\:border-indigo-500:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.hover\:border-purple-400:hover{--tw-border-opacity: 1;border-color:rgb(192 132 252 / var(--tw-border-opacity, 1))}.hover\:bg-cyan-100:hover{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:text-indigo-600:hover{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.hover\:text-indigo-900:hover{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.hover\:text-purple-600:hover{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.active\:cursor-grabbing:active{cursor:grabbing}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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))}.group:hover .group-hover\:text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-amber-500\/20:is(.dark *){border-color:#f59e0b33}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-500\/40:is(.dark *){border-color:#f59e0b66}.dark\:border-blue-500\/20:is(.dark *){border-color:#3b82f633}.dark\:border-cyan-500\/30:is(.dark *){border-color:#06b6d44d}.dark\:border-cyan-500\/40:is(.dark *){border-color:#06b6d466}.dark\:border-emerald-500\/20:is(.dark *){border-color:#10b98133}.dark\:border-emerald-500\/30:is(.dark *){border-color:#10b9814d}.dark\:border-indigo-500\/20:is(.dark *){border-color:#6366f133}.dark\:border-indigo-500\/25:is(.dark *){border-color:#6366f140}.dark\:border-indigo-500\/30:is(.dark *){border-color:#6366f14d}.dark\:border-indigo-500\/40:is(.dark *){border-color:#6366f166}.dark\:border-purple-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(192 132 252 / var(--tw-border-opacity, 1))}.dark\:border-rose-500\/20:is(.dark *){border-color:#f43f5e33}.dark\:border-rose-500\/30:is(.dark *){border-color:#f43f5e4d}.dark\:border-rose-500\/50:is(.dark *){border-color:#f43f5e80}.dark\:border-rose-500\/60:is(.dark *){border-color:#f43f5e99}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:border-slate-700\/60:is(.dark *){border-color:#33415599}.dark\:border-slate-700\/80:is(.dark *){border-color:#334155cc}.dark\:border-slate-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:border-slate-800\/80:is(.dark *){border-color:#1e293bcc}.dark\:border-slate-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(15 23 42 / var(--tw-border-opacity, 1))}.dark\:bg-\[\#080c18\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 12 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#090d18\]\/90:is(.dark *){background-color:#090d18e6}.dark\:bg-\[\#090d18\]\/95:is(.dark *){background-color:#090d18f2}.dark\:bg-\[\#0b1020\]\/70:is(.dark *){background-color:#0b1020b3}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/15:is(.dark *){background-color:#f59e0b26}.dark\:bg-amber-500\/20:is(.dark *){background-color:#f59e0b33}.dark\:bg-amber-950\/60:is(.dark *){background-color:#451a0399}.dark\:bg-amber-950\/70:is(.dark *){background-color:#451a03b3}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-950\/60:is(.dark *){background-color:#17255499}.dark\:bg-cyan-500\/15:is(.dark *){background-color:#06b6d426}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-500\/15:is(.dark *){background-color:#10b98126}.dark\:bg-emerald-500\/20:is(.dark *){background-color:#10b98133}.dark\:bg-emerald-950\/60:is(.dark *){background-color:#022c2299}.dark\:bg-indigo-500\/10:is(.dark *){background-color:#6366f11a}.dark\:bg-indigo-500\/15:is(.dark *){background-color:#6366f126}.dark\:bg-indigo-900\/50:is(.dark *){background-color:#312e8180}.dark\:bg-purple-900\/70:is(.dark *){background-color:#581c87b3}.dark\:bg-rose-500\/10:is(.dark *){background-color:#f43f5e1a}.dark\:bg-rose-500\/15:is(.dark *){background-color:#f43f5e26}.dark\:bg-rose-500\/20:is(.dark *){background-color:#f43f5e33}.dark\:bg-rose-950\/20:is(.dark *){background-color:#4c051933}.dark\:bg-rose-950\/60:is(.dark *){background-color:#4c051999}.dark\:bg-rose-950\/70:is(.dark *){background-color:#4c0519b3}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800\/60:is(.dark *){background-color:#1e293b99}.dark\:bg-slate-800\/80:is(.dark *){background-color:#1e293bcc}.dark\:bg-slate-800\/90:is(.dark *){background-color:#1e293be6}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900\/30:is(.dark *){background-color:#0f172a4d}.dark\:bg-slate-900\/40:is(.dark *){background-color:#0f172a66}.dark\:bg-slate-900\/80:is(.dark *){background-color:#0f172acc}.dark\:bg-slate-900\/90:is(.dark *){background-color:#0f172ae6}.dark\:bg-slate-950\/60:is(.dark *){background-color:#070c1899}.dark\:bg-slate-950\/70:is(.dark *){background-color:#070c18b3}.dark\:bg-slate-950\/80:is(.dark *){background-color:#070c18cc}.dark\:from-indigo-400:is(.dark *){--tw-gradient-from: #818cf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(129 140 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-purple-300:is(.dark *){--tw-gradient-to: rgb(216 180 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #d8b4fe var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-cyan-400:is(.dark *){--tw-gradient-to: #22d3ee var(--tw-gradient-to-position)}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/80:is(.dark *){color:#fcd34dcc}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-cyan-300:is(.dark *){--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / 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-purple-200:is(.dark *){--tw-text-opacity: 1;color:rgb(233 213 255 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / 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-rose-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-rose-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / 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-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity: 1;color:rgb(100 116 139 / 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\:hover\:bg-\[\#121830\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 24 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-cyan-500\/25:hover:is(.dark *){background-color:#06b6d440}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-900\/80:hover:is(.dark *){background-color:#0f172acc}.dark\:hover\:text-indigo-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-indigo-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:hover\:text-purple-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-rose-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:right-5{right:1.25rem}.sm\:top-5{top:1.25rem}.sm\:my-20{margin-top:5rem;margin-bottom:5rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mt-6{margin-top:1.5rem}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-5{height:1.25rem}.sm\:h-9{height:2.25rem}.sm\:max-h-\[calc\(100vh-140px\)\]{max-height:calc(100vh - 140px)}.sm\:w-10{width:2.5rem}.sm\:w-12{width:3rem}.sm\:w-24{width:6rem}.sm\:w-32{width:8rem}.sm\:w-5{width:1.25rem}.sm\:w-72{width:18rem}.sm\:w-80{width:20rem}.sm\:w-9{width:2.25rem}.sm\:w-auto{width:auto}.sm\:max-w-\[120px\]{max-width:120px}.sm\:max-w-\[280px\]{max-width:280px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-5{gap:1.25rem}.sm\:p-2{padding:.5rem}.sm\:p-2\.5{padding:.625rem}.sm\:p-3{padding:.75rem}.sm\:p-3\.5{padding:.875rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:1.75rem}.sm\:p-8{padding:2rem}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-3\.5{padding-left:.875rem;padding-right:.875rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[11px\]{font-size:11px}.sm\:text-\[9px\]{font-size:9px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 768px){.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:inline{display:inline}.md\:max-w-md{max-width:28rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}} diff --git a/client/dist/assets/index-D2ZOrmDk.js b/client/dist/assets/index-h2AVDMMH.js similarity index 81% rename from client/dist/assets/index-D2ZOrmDk.js rename to client/dist/assets/index-h2AVDMMH.js index 4b404d3..157b3eb 100644 --- a/client/dist/assets/index-D2ZOrmDk.js +++ b/client/dist/assets/index-h2AVDMMH.js @@ -1,4 +1,4 @@ -var Fh=Object.defineProperty;var Uh=(e,t,n)=>t in e?Fh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $o=(e,t,n)=>Uh(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();function $h(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var kd={exports:{}},po={},bd={exports:{}},ie={};/** +var Fh=Object.defineProperty;var Uh=(e,t,n)=>t in e?Fh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Uo=(e,t,n)=>Uh(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();function $h(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var kd={exports:{}},fo={},bd={exports:{}},ie={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var Fh=Object.defineProperty;var Uh=(e,t,n)=>t in e?Fh(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Ms=Symbol.for("react.element"),Hh=Symbol.for("react.portal"),Vh=Symbol.for("react.fragment"),Wh=Symbol.for("react.strict_mode"),Kh=Symbol.for("react.profiler"),Gh=Symbol.for("react.provider"),Qh=Symbol.for("react.context"),qh=Symbol.for("react.forward_ref"),Yh=Symbol.for("react.suspense"),Xh=Symbol.for("react.memo"),Jh=Symbol.for("react.lazy"),Hu=Symbol.iterator;function Zh(e){return e===null||typeof e!="object"?null:(e=Hu&&e[Hu]||e["@@iterator"],typeof e=="function"?e:null)}var wd={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Sd=Object.assign,Nd={};function Er(e,t,n){this.props=e,this.context=t,this.refs=Nd,this.updater=n||wd}Er.prototype.isReactComponent={};Er.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Er.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Cd(){}Cd.prototype=Er.prototype;function Ll(e,t,n){this.props=e,this.context=t,this.refs=Nd,this.updater=n||wd}var Ml=Ll.prototype=new Cd;Ml.constructor=Ll;Sd(Ml,Er.prototype);Ml.isPureReactComponent=!0;var Vu=Array.isArray,Ed=Object.prototype.hasOwnProperty,Al={current:null},Td={key:!0,ref:!0,__self:!0,__source:!0};function jd(e,t,n){var r,s={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)Ed.call(t,r)&&!Td.hasOwnProperty(r)&&(s[r]=t[r]);var a=arguments.length-2;if(a===1)s.children=n;else if(1t in e?Fh(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var sm=y,im=Symbol.for("react.element"),om=Symbol.for("react.fragment"),am=Object.prototype.hasOwnProperty,lm=sm.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,um={key:!0,ref:!0,__self:!0,__source:!0};function _d(e,t,n){var r,s={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)am.call(t,r)&&!um.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:im,type:e,key:i,ref:o,props:s,_owner:lm.current}}po.Fragment=om;po.jsx=_d;po.jsxs=_d;kd.exports=po;var l=kd.exports,wa={},Ld={exports:{}},xt={},Md={exports:{}},Ad={};/** + */var sm=y,im=Symbol.for("react.element"),om=Symbol.for("react.fragment"),am=Object.prototype.hasOwnProperty,lm=sm.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,um={key:!0,ref:!0,__self:!0,__source:!0};function _d(e,t,n){var r,s={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)am.call(t,r)&&!um.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:im,type:e,key:i,ref:o,props:s,_owner:lm.current}}fo.Fragment=om;fo.jsx=_d;fo.jsxs=_d;kd.exports=fo;var l=kd.exports,ba={},Ld={exports:{}},xt={},Md={exports:{}},Ad={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var Fh=Object.defineProperty;var Uh=(e,t,n)=>t in e?Fh(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(e){function t(A,K){var v=A.length;A.push(K);e:for(;0>>1,_=A[x];if(0>>1;xs(q,v))F<_&&0>s($,q)?(A[x]=$,A[F]=v,x=F):(A[x]=q,A[W]=v,x=W);else if(F<_&&0>s($,v))A[x]=$,A[F]=v,x=F;else break e}}return K}function s(A,K){var v=A.sortIndex-K.sortIndex;return v!==0?v:A.id-K.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var u=[],c=[],h=1,d=null,f=3,k=!1,N=!1,w=!1,S=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,p=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function g(A){for(var K=n(c);K!==null;){if(K.callback===null)r(c);else if(K.startTime<=A)r(c),K.sortIndex=K.expirationTime,t(u,K);else break;K=n(c)}}function b(A){if(w=!1,g(A),!N)if(n(u)!==null)N=!0,Fe(j);else{var K=n(c);K!==null&&ge(b,K.startTime-A)}}function j(A,K){N=!1,w&&(w=!1,m(T),T=-1),k=!0;var v=f;try{for(g(K),d=n(u);d!==null&&(!(d.expirationTime>K)||A&&!X());){var x=d.callback;if(typeof x=="function"){d.callback=null,f=d.priorityLevel;var _=x(d.expirationTime<=K);K=e.unstable_now(),typeof _=="function"?d.callback=_:d===n(u)&&r(u),g(K)}else r(u);d=n(u)}if(d!==null)var B=!0;else{var W=n(c);W!==null&&ge(b,W.startTime-K),B=!1}return B}finally{d=null,f=v,k=!1}}var R=!1,E=null,T=-1,D=5,P=-1;function X(){return!(e.unstable_now()-PA||125x?(A.sortIndex=v,t(c,A),n(u)===null&&A===n(c)&&(w?(m(T),T=-1):w=!0,ge(b,v-x))):(A.sortIndex=_,t(u,A),N||k||(N=!0,Fe(j))),A},e.unstable_shouldYield=X,e.unstable_wrapCallback=function(A){var K=f;return function(){var v=f;f=K;try{return A.apply(this,arguments)}finally{f=v}}}})(Ad);Md.exports=Ad;var cm=Md.exports;/** + */(function(e){function t(A,W){var v=A.length;A.push(W);e:for(;0>>1,_=A[x];if(0>>1;xs(q,v))F<_&&0>s($,q)?(A[x]=$,A[F]=v,x=F):(A[x]=q,A[K]=v,x=K);else if(F<_&&0>s($,v))A[x]=$,A[F]=v,x=F;else break e}}return W}function s(A,W){var v=A.sortIndex-W.sortIndex;return v!==0?v:A.id-W.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var u=[],c=[],h=1,d=null,f=3,k=!1,N=!1,w=!1,S=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,p=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function g(A){for(var W=n(c);W!==null;){if(W.callback===null)r(c);else if(W.startTime<=A)r(c),W.sortIndex=W.expirationTime,t(u,W);else break;W=n(c)}}function b(A){if(w=!1,g(A),!N)if(n(u)!==null)N=!0,Fe(j);else{var W=n(c);W!==null&&ge(b,W.startTime-A)}}function j(A,W){N=!1,w&&(w=!1,m(T),T=-1),k=!0;var v=f;try{for(g(W),d=n(u);d!==null&&(!(d.expirationTime>W)||A&&!X());){var x=d.callback;if(typeof x=="function"){d.callback=null,f=d.priorityLevel;var _=x(d.expirationTime<=W);W=e.unstable_now(),typeof _=="function"?d.callback=_:d===n(u)&&r(u),g(W)}else r(u);d=n(u)}if(d!==null)var B=!0;else{var K=n(c);K!==null&&ge(b,K.startTime-W),B=!1}return B}finally{d=null,f=v,k=!1}}var R=!1,E=null,T=-1,D=5,I=-1;function X(){return!(e.unstable_now()-IA||125x?(A.sortIndex=v,t(c,A),n(u)===null&&A===n(c)&&(w?(m(T),T=-1):w=!0,ge(b,v-x))):(A.sortIndex=_,t(u,A),N||k||(N=!0,Fe(j))),A},e.unstable_shouldYield=X,e.unstable_wrapCallback=function(A){var W=f;return function(){var v=f;f=W;try{return A.apply(this,arguments)}finally{f=v}}}})(Ad);Md.exports=Ad;var cm=Md.exports;/** * @license React * react-dom.production.min.js * @@ -30,14 +30,14 @@ var Fh=Object.defineProperty;var Uh=(e,t,n)=>t in e?Fh(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var dm=y,yt=cm;function L(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Sa=Object.prototype.hasOwnProperty,fm=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ku={},Gu={};function pm(e){return Sa.call(Gu,e)?!0:Sa.call(Ku,e)?!1:fm.test(e)?Gu[e]=!0:(Ku[e]=!0,!1)}function hm(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function mm(e,t,n,r){if(t===null||typeof t>"u"||hm(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function st(e,t,n,r,s,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Qe[e]=new st(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Qe[t]=new st(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Qe[e]=new st(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Qe[e]=new st(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Qe[e]=new st(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Qe[e]=new st(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Qe[e]=new st(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Qe[e]=new st(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Qe[e]=new st(e,5,!1,e.toLowerCase(),null,!1,!1)});var Il=/[\-:]([a-z])/g;function Pl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Il,Pl);Qe[t]=new st(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Il,Pl);Qe[t]=new st(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Il,Pl);Qe[t]=new st(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Qe[e]=new st(e,1,!1,e.toLowerCase(),null,!1,!1)});Qe.xlinkHref=new st("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Qe[e]=new st(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ol(e,t,n,r){var s=Qe.hasOwnProperty(t)?Qe[t]:null;(s!==null?s.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wa=Object.prototype.hasOwnProperty,fm=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Wu={},Gu={};function pm(e){return wa.call(Gu,e)?!0:wa.call(Wu,e)?!1:fm.test(e)?Gu[e]=!0:(Wu[e]=!0,!1)}function hm(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function mm(e,t,n,r){if(t===null||typeof t>"u"||hm(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function st(e,t,n,r,s,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Qe[e]=new st(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Qe[t]=new st(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Qe[e]=new st(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Qe[e]=new st(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Qe[e]=new st(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Qe[e]=new st(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Qe[e]=new st(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Qe[e]=new st(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Qe[e]=new st(e,5,!1,e.toLowerCase(),null,!1,!1)});var Dl=/[\-:]([a-z])/g;function Il(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Dl,Il);Qe[t]=new st(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Dl,Il);Qe[t]=new st(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Dl,Il);Qe[t]=new st(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Qe[e]=new st(e,1,!1,e.toLowerCase(),null,!1,!1)});Qe.xlinkHref=new st("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Qe[e]=new st(e,1,!1,e.toLowerCase(),null,!0,!0)});function Pl(e,t,n,r){var s=Qe.hasOwnProperty(t)?Qe[t]:null;(s!==null?s.type!==0:r||!(2a||s[o]!==i[a]){var u=` -`+s[o].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=o&&0<=a);break}}}finally{Wo=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Gr(e):""}function gm(e){switch(e.tag){case 5:return Gr(e.type);case 16:return Gr("Lazy");case 13:return Gr("Suspense");case 19:return Gr("SuspenseList");case 0:case 2:case 15:return e=Ko(e.type,!1),e;case 11:return e=Ko(e.type.render,!1),e;case 1:return e=Ko(e.type,!0),e;default:return""}}function Ta(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Zn:return"Fragment";case Jn:return"Portal";case Na:return"Profiler";case Bl:return"StrictMode";case Ca:return"Suspense";case Ea:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Pd:return(e.displayName||"Context")+".Consumer";case Id:return(e._context.displayName||"Context")+".Provider";case zl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Fl:return t=e.displayName||null,t!==null?t:Ta(e.type)||"Memo";case pn:t=e._payload,e=e._init;try{return Ta(e(t))}catch{}}return null}function ym(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ta(t);case 8:return t===Bl?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function _n(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Bd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function xm(e){var t=Bd(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Vs(e){e._valueTracker||(e._valueTracker=xm(e))}function zd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Bd(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Li(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ja(e,t){var n=t.checked;return je({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function qu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=_n(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Fd(e,t){t=t.checked,t!=null&&Ol(e,"checked",t,!1)}function Ra(e,t){Fd(e,t);var n=_n(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?_a(e,t.type,n):t.hasOwnProperty("defaultValue")&&_a(e,t.type,_n(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Yu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function _a(e,t,n){(t!=="number"||Li(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Qr=Array.isArray;function dr(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ws.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ds(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Jr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},vm=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){vm.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function Vd(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Jr.hasOwnProperty(e)&&Jr[e]?(""+t).trim():t+"px"}function Wd(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Vd(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var km=je({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Aa(e,t){if(t){if(km[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(L(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(L(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(L(61))}if(t.style!=null&&typeof t.style!="object")throw Error(L(62))}}function Da(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ia=null;function Ul(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Pa=null,fr=null,pr=null;function Zu(e){if(e=Is(e)){if(typeof Pa!="function")throw Error(L(280));var t=e.stateNode;t&&(t=xo(t),Pa(e.stateNode,e.type,t))}}function Kd(e){fr?pr?pr.push(e):pr=[e]:fr=e}function Gd(){if(fr){var e=fr,t=pr;if(pr=fr=null,Zu(e),t)for(e=0;e>>=0,e===0?32:31-(Lm(e)/Mm|0)|0}var Ks=64,Gs=4194304;function qr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ii(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~s;a!==0?r=qr(a):(i&=o,i!==0&&(r=qr(i)))}else o=n&~s,o!==0?r=qr(o):i!==0&&(r=qr(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function As(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-It(t),e[t]=n}function Pm(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=es),lc=" ",uc=!1;function hf(e,t){switch(e){case"keyup":return c0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function mf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var er=!1;function f0(e,t){switch(e){case"compositionend":return mf(t);case"keypress":return t.which!==32?null:(uc=!0,lc);case"textInput":return e=t.data,e===lc&&uc?null:e;default:return null}}function p0(e,t){if(er)return e==="compositionend"||!ql&&hf(e,t)?(e=ff(),hi=Kl=xn=null,er=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pc(n)}}function vf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?vf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function kf(){for(var e=window,t=Li();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Li(e.document)}return t}function Yl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function w0(e){var t=kf(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&vf(n.ownerDocument.documentElement,n)){if(r!==null&&Yl(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=hc(n,i);var o=hc(n,r);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,tr=null,$a=null,ns=null,Ha=!1;function mc(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ha||tr==null||tr!==Li(r)||(r=tr,"selectionStart"in r&&Yl(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ns&&ys(ns,r)||(ns=r,r=Bi($a,"onSelect"),0sr||(e.current=qa[sr],qa[sr]=null,sr--)}function xe(e,t){sr++,qa[sr]=e.current,e.current=t}var Ln={},Ze=An(Ln),lt=An(!1),Hn=Ln;function kr(e,t){var n=e.type.contextTypes;if(!n)return Ln;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function ut(e){return e=e.childContextTypes,e!=null}function Fi(){be(lt),be(Ze)}function wc(e,t,n){if(Ze.current!==Ln)throw Error(L(168));xe(Ze,t),xe(lt,n)}function Rf(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(L(108,ym(e)||"Unknown",s));return je({},n,r)}function Ui(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ln,Hn=Ze.current,xe(Ze,e),xe(lt,lt.current),!0}function Sc(e,t,n){var r=e.stateNode;if(!r)throw Error(L(169));n?(e=Rf(e,t,Hn),r.__reactInternalMemoizedMergedChildContext=e,be(lt),be(Ze),xe(Ze,e)):be(lt),xe(lt,n)}var Xt=null,vo=!1,oa=!1;function _f(e){Xt===null?Xt=[e]:Xt.push(e)}function D0(e){vo=!0,_f(e)}function Dn(){if(!oa&&Xt!==null){oa=!0;var e=0,t=pe;try{var n=Xt;for(pe=1;e>=o,s-=o,Jt=1<<32-It(t)+s|n<T?(D=E,E=null):D=E.sibling;var P=f(m,E,g[T],b);if(P===null){E===null&&(E=D);break}e&&E&&P.alternate===null&&t(m,E),p=i(P,p,T),R===null?j=P:R.sibling=P,R=P,E=D}if(T===g.length)return n(m,E),Ce&&Pn(m,T),j;if(E===null){for(;TT?(D=E,E=null):D=E.sibling;var X=f(m,E,P.value,b);if(X===null){E===null&&(E=D);break}e&&E&&X.alternate===null&&t(m,E),p=i(X,p,T),R===null?j=X:R.sibling=X,R=X,E=D}if(P.done)return n(m,E),Ce&&Pn(m,T),j;if(E===null){for(;!P.done;T++,P=g.next())P=d(m,P.value,b),P!==null&&(p=i(P,p,T),R===null?j=P:R.sibling=P,R=P);return Ce&&Pn(m,T),j}for(E=r(m,E);!P.done;T++,P=g.next())P=k(E,m,T,P.value,b),P!==null&&(e&&P.alternate!==null&&E.delete(P.key===null?T:P.key),p=i(P,p,T),R===null?j=P:R.sibling=P,R=P);return e&&E.forEach(function(we){return t(m,we)}),Ce&&Pn(m,T),j}function S(m,p,g,b){if(typeof g=="object"&&g!==null&&g.type===Zn&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case Hs:e:{for(var j=g.key,R=p;R!==null;){if(R.key===j){if(j=g.type,j===Zn){if(R.tag===7){n(m,R.sibling),p=s(R,g.props.children),p.return=m,m=p;break e}}else if(R.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===pn&&Ec(j)===R.type){n(m,R.sibling),p=s(R,g.props),p.ref=Hr(m,R,g),p.return=m,m=p;break e}n(m,R);break}else t(m,R);R=R.sibling}g.type===Zn?(p=$n(g.props.children,m.mode,b,g.key),p.return=m,m=p):(b=wi(g.type,g.key,g.props,null,m.mode,b),b.ref=Hr(m,p,g),b.return=m,m=b)}return o(m);case Jn:e:{for(R=g.key;p!==null;){if(p.key===R)if(p.tag===4&&p.stateNode.containerInfo===g.containerInfo&&p.stateNode.implementation===g.implementation){n(m,p.sibling),p=s(p,g.children||[]),p.return=m,m=p;break e}else{n(m,p);break}else t(m,p);p=p.sibling}p=ha(g,m.mode,b),p.return=m,m=p}return o(m);case pn:return R=g._init,S(m,p,R(g._payload),b)}if(Qr(g))return N(m,p,g,b);if(Br(g))return w(m,p,g,b);ei(m,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,p!==null&&p.tag===6?(n(m,p.sibling),p=s(p,g),p.return=m,m=p):(n(m,p),p=pa(g,m.mode,b),p.return=m,m=p),o(m)):n(m,p)}return S}var wr=Df(!0),If=Df(!1),Vi=An(null),Wi=null,ar=null,eu=null;function tu(){eu=ar=Wi=null}function nu(e){var t=Vi.current;be(Vi),e._currentValue=t}function Ja(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function mr(e,t){Wi=e,eu=ar=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(at=!0),e.firstContext=null)}function Tt(e){var t=e._currentValue;if(eu!==e)if(e={context:e,memoizedValue:t,next:null},ar===null){if(Wi===null)throw Error(L(308));ar=e,Wi.dependencies={lanes:0,firstContext:e}}else ar=ar.next=e;return t}var zn=null;function ru(e){zn===null?zn=[e]:zn.push(e)}function Pf(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,ru(t)):(n.next=s.next,s.next=n),t.interleaved=n,rn(e,r)}function rn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hn=!1;function su(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Of(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function en(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Cn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,fe&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,rn(e,n)}return s=r.interleaved,s===null?(t.next=t,ru(r)):(t.next=s.next,s.next=t),r.interleaved=t,rn(e,n)}function gi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hl(e,n)}}function Tc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ki(e,t,n,r){var s=e.updateQueue;hn=!1;var i=s.firstBaseUpdate,o=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var u=a,c=u.next;u.next=null,o===null?i=c:o.next=c,o=u;var h=e.alternate;h!==null&&(h=h.updateQueue,a=h.lastBaseUpdate,a!==o&&(a===null?h.firstBaseUpdate=c:a.next=c,h.lastBaseUpdate=u))}if(i!==null){var d=s.baseState;o=0,h=c=u=null,a=i;do{var f=a.lane,k=a.eventTime;if((r&f)===f){h!==null&&(h=h.next={eventTime:k,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var N=e,w=a;switch(f=t,k=n,w.tag){case 1:if(N=w.payload,typeof N=="function"){d=N.call(k,d,f);break e}d=N;break e;case 3:N.flags=N.flags&-65537|128;case 0:if(N=w.payload,f=typeof N=="function"?N.call(k,d,f):N,f==null)break e;d=je({},d,f);break e;case 2:hn=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[a]:f.push(a))}else k={eventTime:k,lane:f,tag:a.tag,payload:a.payload,callback:a.callback,next:null},h===null?(c=h=k,u=d):h=h.next=k,o|=f;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;f=a,a=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(h===null&&(u=d),s.baseState=u,s.firstBaseUpdate=c,s.lastBaseUpdate=h,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Kn|=o,e.lanes=o,e.memoizedState=d}}function jc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=la.transition;la.transition={};try{e(!1),t()}finally{pe=n,la.transition=r}}function ep(){return jt().memoizedState}function B0(e,t,n){var r=Tn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},tp(e))np(t,n);else if(n=Pf(e,t,n,r),n!==null){var s=nt();Pt(n,e,r,s),rp(n,t,r)}}function z0(e,t,n){var r=Tn(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(tp(e))np(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,a=i(o,n);if(s.hasEagerState=!0,s.eagerState=a,Ot(a,o)){var u=t.interleaved;u===null?(s.next=s,ru(t)):(s.next=u.next,u.next=s),t.interleaved=s;return}}catch{}finally{}n=Pf(e,t,s,r),n!==null&&(s=nt(),Pt(n,e,r,s),rp(n,t,r))}}function tp(e){var t=e.alternate;return e===Te||t!==null&&t===Te}function np(e,t){rs=Qi=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function rp(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hl(e,n)}}var qi={readContext:Tt,useCallback:Ye,useContext:Ye,useEffect:Ye,useImperativeHandle:Ye,useInsertionEffect:Ye,useLayoutEffect:Ye,useMemo:Ye,useReducer:Ye,useRef:Ye,useState:Ye,useDebugValue:Ye,useDeferredValue:Ye,useTransition:Ye,useMutableSource:Ye,useSyncExternalStore:Ye,useId:Ye,unstable_isNewReconciler:!1},F0={readContext:Tt,useCallback:function(e,t){return Ht().memoizedState=[e,t===void 0?null:t],e},useContext:Tt,useEffect:_c,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,xi(4194308,4,qf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return xi(4194308,4,e,t)},useInsertionEffect:function(e,t){return xi(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ht();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=B0.bind(null,Te,e),[r.memoizedState,e]},useRef:function(e){var t=Ht();return e={current:e},t.memoizedState=e},useState:Rc,useDebugValue:fu,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=Rc(!1),t=e[0];return e=O0.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Te,s=Ht();if(Ce){if(n===void 0)throw Error(L(407));n=n()}else{if(n=t(),Ve===null)throw Error(L(349));Wn&30||Uf(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,_c(Hf.bind(null,r,i,e),[e]),r.flags|=2048,Cs(9,$f.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ht(),t=Ve.identifierPrefix;if(Ce){var n=Zt,r=Jt;n=(r&~(1<<32-It(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ss++,0")&&(u=u.replace("",e.displayName)),u}while(1<=o&&0<=a);break}}}finally{Vo=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Gr(e):""}function gm(e){switch(e.tag){case 5:return Gr(e.type);case 16:return Gr("Lazy");case 13:return Gr("Suspense");case 19:return Gr("SuspenseList");case 0:case 2:case 15:return e=Ko(e.type,!1),e;case 11:return e=Ko(e.type.render,!1),e;case 1:return e=Ko(e.type,!0),e;default:return""}}function Ea(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Zn:return"Fragment";case Jn:return"Portal";case Sa:return"Profiler";case Ol:return"StrictMode";case Na:return"Suspense";case Ca:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Pd:return(e.displayName||"Context")+".Consumer";case Id:return(e._context.displayName||"Context")+".Provider";case Bl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case zl:return t=e.displayName||null,t!==null?t:Ea(e.type)||"Memo";case pn:t=e._payload,e=e._init;try{return Ea(e(t))}catch{}}return null}function ym(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ea(t);case 8:return t===Ol?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function _n(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Bd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function xm(e){var t=Bd(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Vs(e){e._valueTracker||(e._valueTracker=xm(e))}function zd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Bd(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Li(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ta(e,t){var n=t.checked;return je({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function qu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=_n(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Fd(e,t){t=t.checked,t!=null&&Pl(e,"checked",t,!1)}function ja(e,t){Fd(e,t);var n=_n(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ra(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ra(e,t.type,_n(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Yu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ra(e,t,n){(t!=="number"||Li(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Qr=Array.isArray;function dr(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ks.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ds(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Jr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},vm=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){vm.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function Vd(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Jr.hasOwnProperty(e)&&Jr[e]?(""+t).trim():t+"px"}function Kd(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Vd(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var km=je({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ma(e,t){if(t){if(km[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(L(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(L(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(L(61))}if(t.style!=null&&typeof t.style!="object")throw Error(L(62))}}function Aa(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Da=null;function Fl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ia=null,fr=null,pr=null;function Zu(e){if(e=Is(e)){if(typeof Ia!="function")throw Error(L(280));var t=e.stateNode;t&&(t=yo(t),Ia(e.stateNode,e.type,t))}}function Wd(e){fr?pr?pr.push(e):pr=[e]:fr=e}function Gd(){if(fr){var e=fr,t=pr;if(pr=fr=null,Zu(e),t)for(e=0;e>>=0,e===0?32:31-(Lm(e)/Mm|0)|0}var Ws=64,Gs=4194304;function qr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ii(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~s;a!==0?r=qr(a):(i&=o,i!==0&&(r=qr(i)))}else o=n&~s,o!==0?r=qr(o):i!==0&&(r=qr(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function As(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-It(t),e[t]=n}function Pm(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=es),lc=" ",uc=!1;function hf(e,t){switch(e){case"keyup":return c0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function mf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var er=!1;function f0(e,t){switch(e){case"compositionend":return mf(t);case"keypress":return t.which!==32?null:(uc=!0,lc);case"textInput":return e=t.data,e===lc&&uc?null:e;default:return null}}function p0(e,t){if(er)return e==="compositionend"||!Ql&&hf(e,t)?(e=ff(),hi=Kl=xn=null,er=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pc(n)}}function vf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?vf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function kf(){for(var e=window,t=Li();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Li(e.document)}return t}function ql(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function w0(e){var t=kf(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&vf(n.ownerDocument.documentElement,n)){if(r!==null&&ql(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=hc(n,i);var o=hc(n,r);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,tr=null,Ua=null,ns=null,$a=!1;function mc(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$a||tr==null||tr!==Li(r)||(r=tr,"selectionStart"in r&&ql(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ns&&ys(ns,r)||(ns=r,r=Bi(Ua,"onSelect"),0sr||(e.current=Qa[sr],Qa[sr]=null,sr--)}function xe(e,t){sr++,Qa[sr]=e.current,e.current=t}var Ln={},Ze=An(Ln),lt=An(!1),Hn=Ln;function kr(e,t){var n=e.type.contextTypes;if(!n)return Ln;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function ut(e){return e=e.childContextTypes,e!=null}function Fi(){be(lt),be(Ze)}function wc(e,t,n){if(Ze.current!==Ln)throw Error(L(168));xe(Ze,t),xe(lt,n)}function Rf(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(L(108,ym(e)||"Unknown",s));return je({},n,r)}function Ui(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ln,Hn=Ze.current,xe(Ze,e),xe(lt,lt.current),!0}function Sc(e,t,n){var r=e.stateNode;if(!r)throw Error(L(169));n?(e=Rf(e,t,Hn),r.__reactInternalMemoizedMergedChildContext=e,be(lt),be(Ze),xe(Ze,e)):be(lt),xe(lt,n)}var Xt=null,xo=!1,ia=!1;function _f(e){Xt===null?Xt=[e]:Xt.push(e)}function D0(e){xo=!0,_f(e)}function Dn(){if(!ia&&Xt!==null){ia=!0;var e=0,t=pe;try{var n=Xt;for(pe=1;e>=o,s-=o,Jt=1<<32-It(t)+s|n<T?(D=E,E=null):D=E.sibling;var I=f(m,E,g[T],b);if(I===null){E===null&&(E=D);break}e&&E&&I.alternate===null&&t(m,E),p=i(I,p,T),R===null?j=I:R.sibling=I,R=I,E=D}if(T===g.length)return n(m,E),Ce&&Pn(m,T),j;if(E===null){for(;TT?(D=E,E=null):D=E.sibling;var X=f(m,E,I.value,b);if(X===null){E===null&&(E=D);break}e&&E&&X.alternate===null&&t(m,E),p=i(X,p,T),R===null?j=X:R.sibling=X,R=X,E=D}if(I.done)return n(m,E),Ce&&Pn(m,T),j;if(E===null){for(;!I.done;T++,I=g.next())I=d(m,I.value,b),I!==null&&(p=i(I,p,T),R===null?j=I:R.sibling=I,R=I);return Ce&&Pn(m,T),j}for(E=r(m,E);!I.done;T++,I=g.next())I=k(E,m,T,I.value,b),I!==null&&(e&&I.alternate!==null&&E.delete(I.key===null?T:I.key),p=i(I,p,T),R===null?j=I:R.sibling=I,R=I);return e&&E.forEach(function(we){return t(m,we)}),Ce&&Pn(m,T),j}function S(m,p,g,b){if(typeof g=="object"&&g!==null&&g.type===Zn&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case Hs:e:{for(var j=g.key,R=p;R!==null;){if(R.key===j){if(j=g.type,j===Zn){if(R.tag===7){n(m,R.sibling),p=s(R,g.props.children),p.return=m,m=p;break e}}else if(R.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===pn&&Ec(j)===R.type){n(m,R.sibling),p=s(R,g.props),p.ref=Hr(m,R,g),p.return=m,m=p;break e}n(m,R);break}else t(m,R);R=R.sibling}g.type===Zn?(p=$n(g.props.children,m.mode,b,g.key),p.return=m,m=p):(b=wi(g.type,g.key,g.props,null,m.mode,b),b.ref=Hr(m,p,g),b.return=m,m=b)}return o(m);case Jn:e:{for(R=g.key;p!==null;){if(p.key===R)if(p.tag===4&&p.stateNode.containerInfo===g.containerInfo&&p.stateNode.implementation===g.implementation){n(m,p.sibling),p=s(p,g.children||[]),p.return=m,m=p;break e}else{n(m,p);break}else t(m,p);p=p.sibling}p=pa(g,m.mode,b),p.return=m,m=p}return o(m);case pn:return R=g._init,S(m,p,R(g._payload),b)}if(Qr(g))return N(m,p,g,b);if(Br(g))return w(m,p,g,b);ei(m,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,p!==null&&p.tag===6?(n(m,p.sibling),p=s(p,g),p.return=m,m=p):(n(m,p),p=fa(g,m.mode,b),p.return=m,m=p),o(m)):n(m,p)}return S}var wr=Df(!0),If=Df(!1),Vi=An(null),Ki=null,ar=null,Zl=null;function eu(){Zl=ar=Ki=null}function tu(e){var t=Vi.current;be(Vi),e._currentValue=t}function Xa(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function mr(e,t){Ki=e,Zl=ar=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(at=!0),e.firstContext=null)}function Tt(e){var t=e._currentValue;if(Zl!==e)if(e={context:e,memoizedValue:t,next:null},ar===null){if(Ki===null)throw Error(L(308));ar=e,Ki.dependencies={lanes:0,firstContext:e}}else ar=ar.next=e;return t}var zn=null;function nu(e){zn===null?zn=[e]:zn.push(e)}function Pf(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,nu(t)):(n.next=s.next,s.next=n),t.interleaved=n,rn(e,r)}function rn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hn=!1;function ru(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Of(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function en(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Cn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,fe&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,rn(e,n)}return s=r.interleaved,s===null?(t.next=t,nu(r)):(t.next=s.next,s.next=t),r.interleaved=t,rn(e,n)}function gi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$l(e,n)}}function Tc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Wi(e,t,n,r){var s=e.updateQueue;hn=!1;var i=s.firstBaseUpdate,o=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var u=a,c=u.next;u.next=null,o===null?i=c:o.next=c,o=u;var h=e.alternate;h!==null&&(h=h.updateQueue,a=h.lastBaseUpdate,a!==o&&(a===null?h.firstBaseUpdate=c:a.next=c,h.lastBaseUpdate=u))}if(i!==null){var d=s.baseState;o=0,h=c=u=null,a=i;do{var f=a.lane,k=a.eventTime;if((r&f)===f){h!==null&&(h=h.next={eventTime:k,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var N=e,w=a;switch(f=t,k=n,w.tag){case 1:if(N=w.payload,typeof N=="function"){d=N.call(k,d,f);break e}d=N;break e;case 3:N.flags=N.flags&-65537|128;case 0:if(N=w.payload,f=typeof N=="function"?N.call(k,d,f):N,f==null)break e;d=je({},d,f);break e;case 2:hn=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[a]:f.push(a))}else k={eventTime:k,lane:f,tag:a.tag,payload:a.payload,callback:a.callback,next:null},h===null?(c=h=k,u=d):h=h.next=k,o|=f;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;f=a,a=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(h===null&&(u=d),s.baseState=u,s.firstBaseUpdate=c,s.lastBaseUpdate=h,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Wn|=o,e.lanes=o,e.memoizedState=d}}function jc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=aa.transition;aa.transition={};try{e(!1),t()}finally{pe=n,aa.transition=r}}function ep(){return jt().memoizedState}function B0(e,t,n){var r=Tn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},tp(e))np(t,n);else if(n=Pf(e,t,n,r),n!==null){var s=nt();Pt(n,e,r,s),rp(n,t,r)}}function z0(e,t,n){var r=Tn(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(tp(e))np(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,a=i(o,n);if(s.hasEagerState=!0,s.eagerState=a,Ot(a,o)){var u=t.interleaved;u===null?(s.next=s,nu(t)):(s.next=u.next,u.next=s),t.interleaved=s;return}}catch{}finally{}n=Pf(e,t,s,r),n!==null&&(s=nt(),Pt(n,e,r,s),rp(n,t,r))}}function tp(e){var t=e.alternate;return e===Te||t!==null&&t===Te}function np(e,t){rs=Qi=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function rp(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$l(e,n)}}var qi={readContext:Tt,useCallback:Ye,useContext:Ye,useEffect:Ye,useImperativeHandle:Ye,useInsertionEffect:Ye,useLayoutEffect:Ye,useMemo:Ye,useReducer:Ye,useRef:Ye,useState:Ye,useDebugValue:Ye,useDeferredValue:Ye,useTransition:Ye,useMutableSource:Ye,useSyncExternalStore:Ye,useId:Ye,unstable_isNewReconciler:!1},F0={readContext:Tt,useCallback:function(e,t){return Ht().memoizedState=[e,t===void 0?null:t],e},useContext:Tt,useEffect:_c,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,xi(4194308,4,qf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return xi(4194308,4,e,t)},useInsertionEffect:function(e,t){return xi(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ht();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=B0.bind(null,Te,e),[r.memoizedState,e]},useRef:function(e){var t=Ht();return e={current:e},t.memoizedState=e},useState:Rc,useDebugValue:du,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=Rc(!1),t=e[0];return e=O0.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Te,s=Ht();if(Ce){if(n===void 0)throw Error(L(407));n=n()}else{if(n=t(),Ve===null)throw Error(L(349));Kn&30||Uf(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,_c(Hf.bind(null,r,i,e),[e]),r.flags|=2048,Cs(9,$f.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ht(),t=Ve.identifierPrefix;if(Ce){var n=Zt,r=Jt;n=(r&~(1<<32-It(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ss++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Vt]=t,e[ks]=r,pp(e,t,!1,!1),t.stateNode=e;e:{switch(o=Da(n,r),n){case"dialog":ke("cancel",e),ke("close",e),s=r;break;case"iframe":case"object":case"embed":ke("load",e),s=r;break;case"video":case"audio":for(s=0;sCr&&(t.flags|=128,r=!0,Vr(i,!1),t.lanes=4194304)}else{if(!r)if(e=Gi(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Vr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Ce)return Xe(t),null}else 2*Me()-i.renderingStartTime>Cr&&n!==1073741824&&(t.flags|=128,r=!0,Vr(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Me(),t.sibling=null,n=Ee.current,xe(Ee,r?n&1|2:n&1),t):(Xe(t),null);case 22:case 23:return xu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ht&1073741824&&(Xe(t),t.subtreeFlags&6&&(t.flags|=8192)):Xe(t),null;case 24:return null;case 25:return null}throw Error(L(156,t.tag))}function Q0(e,t){switch(Jl(t),t.tag){case 1:return ut(t.type)&&Fi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Sr(),be(lt),be(Ze),au(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ou(t),null;case 13:if(be(Ee),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(L(340));br()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return be(Ee),null;case 4:return Sr(),null;case 10:return nu(t.type._context),null;case 22:case 23:return xu(),null;case 24:return null;default:return null}}var ni=!1,Je=!1,q0=typeof WeakSet=="function"?WeakSet:Set,O=null;function lr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Le(e,t,r)}else n.current=null}function al(e,t,n){try{n()}catch(r){Le(e,t,r)}}var Uc=!1;function Y0(e,t){if(Va=Pi,e=kf(),Yl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,a=-1,u=-1,c=0,h=0,d=e,f=null;t:for(;;){for(var k;d!==n||s!==0&&d.nodeType!==3||(a=o+s),d!==i||r!==0&&d.nodeType!==3||(u=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(k=d.firstChild)!==null;)f=d,d=k;for(;;){if(d===e)break t;if(f===n&&++c===s&&(a=o),f===i&&++h===r&&(u=o),(k=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=k}n=a===-1||u===-1?null:{start:a,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(Wa={focusedElem:e,selectionRange:n},Pi=!1,O=t;O!==null;)if(t=O,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,O=e;else for(;O!==null;){t=O;try{var N=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(N!==null){var w=N.memoizedProps,S=N.memoizedState,m=t.stateNode,p=m.getSnapshotBeforeUpdate(t.elementType===t.type?w:Lt(t.type,w),S);m.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var g=t.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(L(163))}}catch(b){Le(t,t.return,b)}if(e=t.sibling,e!==null){e.return=t.return,O=e;break}O=t.return}return N=Uc,Uc=!1,N}function ss(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&al(t,n,i)}s=s.next}while(s!==r)}}function wo(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ll(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function gp(e){var t=e.alternate;t!==null&&(e.alternate=null,gp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Vt],delete t[ks],delete t[Qa],delete t[M0],delete t[A0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yp(e){return e.tag===5||e.tag===3||e.tag===4}function $c(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yp(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ul(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=zi));else if(r!==4&&(e=e.child,e!==null))for(ul(e,t,n),e=e.sibling;e!==null;)ul(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(cl(e,t,n),e=e.sibling;e!==null;)cl(e,t,n),e=e.sibling}var Ke=null,Mt=!1;function fn(e,t,n){for(n=n.child;n!==null;)xp(e,t,n),n=n.sibling}function xp(e,t,n){if(Wt&&typeof Wt.onCommitFiberUnmount=="function")try{Wt.onCommitFiberUnmount(ho,n)}catch{}switch(n.tag){case 5:Je||lr(n,t);case 6:var r=Ke,s=Mt;Ke=null,fn(e,t,n),Ke=r,Mt=s,Ke!==null&&(Mt?(e=Ke,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ke.removeChild(n.stateNode));break;case 18:Ke!==null&&(Mt?(e=Ke,n=n.stateNode,e.nodeType===8?ia(e.parentNode,n):e.nodeType===1&&ia(e,n),ms(e)):ia(Ke,n.stateNode));break;case 4:r=Ke,s=Mt,Ke=n.stateNode.containerInfo,Mt=!0,fn(e,t,n),Ke=r,Mt=s;break;case 0:case 11:case 14:case 15:if(!Je&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&al(n,t,o),s=s.next}while(s!==r)}fn(e,t,n);break;case 1:if(!Je&&(lr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){Le(n,t,a)}fn(e,t,n);break;case 21:fn(e,t,n);break;case 22:n.mode&1?(Je=(r=Je)||n.memoizedState!==null,fn(e,t,n),Je=r):fn(e,t,n);break;default:fn(e,t,n)}}function Hc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new q0),t.forEach(function(r){var s=ig.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function _t(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=o),r&=~i}if(r=s,r=Me()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*J0(r/1960))-r,10e?16:e,vn===null)var r=!1;else{if(e=vn,vn=null,Ji=0,fe&6)throw Error(L(331));var s=fe;for(fe|=4,O=e.current;O!==null;){var i=O,o=i.child;if(O.flags&16){var a=i.deletions;if(a!==null){for(var u=0;uMe()-gu?Un(e,0):mu|=n),ct(e,t)}function Ep(e,t){t===0&&(e.mode&1?(t=Gs,Gs<<=1,!(Gs&130023424)&&(Gs=4194304)):t=1);var n=nt();e=rn(e,t),e!==null&&(As(e,t,n),ct(e,n))}function sg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ep(e,n)}function ig(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(L(314))}r!==null&&r.delete(t),Ep(e,n)}var Tp;Tp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||lt.current)at=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return at=!1,K0(e,t,n);at=!!(e.flags&131072)}else at=!1,Ce&&t.flags&1048576&&Lf(t,Hi,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;vi(e,t),e=t.pendingProps;var s=kr(t,Ze.current);mr(t,n),s=uu(null,t,r,e,s,n);var i=cu();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ut(r)?(i=!0,Ui(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,su(t),s.updater=bo,t.stateNode=s,s._reactInternals=t,el(t,r,e,n),t=rl(null,t,r,!0,i,n)):(t.tag=0,Ce&&i&&Xl(t),tt(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(vi(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=ag(r),e=Lt(r,e),s){case 0:t=nl(null,t,r,e,n);break e;case 1:t=Bc(null,t,r,e,n);break e;case 11:t=Pc(null,t,r,e,n);break e;case 14:t=Oc(null,t,r,Lt(r.type,e),n);break e}throw Error(L(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),nl(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),Bc(e,t,r,s,n);case 3:e:{if(cp(t),e===null)throw Error(L(387));r=t.pendingProps,i=t.memoizedState,s=i.element,Of(e,t),Ki(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=Nr(Error(L(423)),t),t=zc(e,t,r,n,s);break e}else if(r!==s){s=Nr(Error(L(424)),t),t=zc(e,t,r,n,s);break e}else for(mt=Nn(t.stateNode.containerInfo.firstChild),gt=t,Ce=!0,Dt=null,n=If(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(br(),r===s){t=sn(e,t,n);break e}tt(e,t,r,n)}t=t.child}return t;case 5:return Bf(t),e===null&&Xa(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,o=s.children,Ka(r,s)?o=null:i!==null&&Ka(r,i)&&(t.flags|=32),up(e,t),tt(e,t,o,n),t.child;case 6:return e===null&&Xa(t),null;case 13:return dp(e,t,n);case 4:return iu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=wr(t,null,r,n):tt(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),Pc(e,t,r,s,n);case 7:return tt(e,t,t.pendingProps,n),t.child;case 8:return tt(e,t,t.pendingProps.children,n),t.child;case 12:return tt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,o=s.value,xe(Vi,r._currentValue),r._currentValue=o,i!==null)if(Ot(i.value,o)){if(i.children===s.children&&!lt.current){t=sn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var a=i.dependencies;if(a!==null){o=i.child;for(var u=a.firstContext;u!==null;){if(u.context===r){if(i.tag===1){u=en(-1,n&-n),u.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var h=c.pending;h===null?u.next=u:(u.next=h.next,h.next=u),c.pending=u}}i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),Ja(i.return,n,t),a.lanes|=n;break}u=u.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(L(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Ja(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}tt(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,mr(t,n),s=Tt(s),r=r(s),t.flags|=1,tt(e,t,r,n),t.child;case 14:return r=t.type,s=Lt(r,t.pendingProps),s=Lt(r.type,s),Oc(e,t,r,s,n);case 15:return ap(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),vi(e,t),t.tag=1,ut(r)?(e=!0,Ui(t)):e=!1,mr(t,n),sp(t,r,s),el(t,r,s,n),rl(null,t,r,!0,e,n);case 19:return fp(e,t,n);case 22:return lp(e,t,n)}throw Error(L(156,t.tag))};function jp(e,t){return ef(e,t)}function og(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ct(e,t,n,r){return new og(e,t,n,r)}function ku(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ag(e){if(typeof e=="function")return ku(e)?1:0;if(e!=null){if(e=e.$$typeof,e===zl)return 11;if(e===Fl)return 14}return 2}function jn(e,t){var n=e.alternate;return n===null?(n=Ct(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function wi(e,t,n,r,s,i){var o=2;if(r=e,typeof e=="function")ku(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Zn:return $n(n.children,s,i,t);case Bl:o=8,s|=8;break;case Na:return e=Ct(12,n,t,s|2),e.elementType=Na,e.lanes=i,e;case Ca:return e=Ct(13,n,t,s),e.elementType=Ca,e.lanes=i,e;case Ea:return e=Ct(19,n,t,s),e.elementType=Ea,e.lanes=i,e;case Od:return No(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Id:o=10;break e;case Pd:o=9;break e;case zl:o=11;break e;case Fl:o=14;break e;case pn:o=16,r=null;break e}throw Error(L(130,e==null?e:typeof e,""))}return t=Ct(o,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function $n(e,t,n,r){return e=Ct(7,e,r,t),e.lanes=n,e}function No(e,t,n,r){return e=Ct(22,e,r,t),e.elementType=Od,e.lanes=n,e.stateNode={isHidden:!1},e}function pa(e,t,n){return e=Ct(6,e,null,t),e.lanes=n,e}function ha(e,t,n){return t=Ct(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function lg(e,t,n,r,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Qo(0),this.expirationTimes=Qo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qo(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function bu(e,t,n,r,s,i,o,a,u){return e=new lg(e,t,n,a,u),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ct(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},su(i),e}function ug(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Mp)}catch(e){console.error(e)}}Mp(),Ld.exports=xt;var cr=Ld.exports,Xc=cr;wa.createRoot=Xc.createRoot,wa.hydrateRoot=Xc.hydrateRoot;/** +`+i.stack}return{value:e,source:t,stack:s,digest:null}}function ca(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function el(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var H0=typeof WeakMap=="function"?WeakMap:Map;function ip(e,t,n){n=en(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xi||(Xi=!0,cl=r),el(e,t)},n}function op(e,t,n){n=en(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var s=t.value;n.payload=function(){return r(s)},n.callback=function(){el(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){el(e,t),typeof r!="function"&&(En===null?En=new Set([this]):En.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Ac(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new H0;var s=new Set;r.set(t,s)}else s=r.get(t),s===void 0&&(s=new Set,r.set(t,s));s.has(n)||(s.add(n),e=rg.bind(null,e,t,n),t.then(e,e))}function Dc(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Ic(e,t,n,r,s){return e.mode&1?(e.flags|=65536,e.lanes=s,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=en(-1,1),t.tag=2,Cn(n,t,1))),n.lanes|=1),e)}var V0=an.ReactCurrentOwner,at=!1;function tt(e,t,n,r){t.child=e===null?If(t,null,n,r):wr(t,e.child,n,r)}function Pc(e,t,n,r,s){n=n.render;var i=t.ref;return mr(t,s),r=lu(e,t,n,r,i,s),n=uu(),e!==null&&!at?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,sn(e,t,s)):(Ce&&n&&Yl(t),t.flags|=1,tt(e,t,r,s),t.child)}function Oc(e,t,n,r,s){if(e===null){var i=n.type;return typeof i=="function"&&!vu(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,ap(e,t,i,r,s)):(e=wi(n.type,null,r,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&s)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:ys,n(o,r)&&e.ref===t.ref)return sn(e,t,s)}return t.flags|=1,e=jn(i,r),e.ref=t.ref,e.return=t,t.child=e}function ap(e,t,n,r,s){if(e!==null){var i=e.memoizedProps;if(ys(i,r)&&e.ref===t.ref)if(at=!1,t.pendingProps=r=i,(e.lanes&s)!==0)e.flags&131072&&(at=!0);else return t.lanes=e.lanes,sn(e,t,s)}return tl(e,t,n,r,s)}function lp(e,t,n){var r=t.pendingProps,s=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},xe(ur,ht),ht|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,xe(ur,ht),ht|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,xe(ur,ht),ht|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,xe(ur,ht),ht|=r;return tt(e,t,s,n),t.child}function up(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function tl(e,t,n,r,s){var i=ut(n)?Hn:Ze.current;return i=kr(t,i),mr(t,s),n=lu(e,t,n,r,i,s),r=uu(),e!==null&&!at?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,sn(e,t,s)):(Ce&&r&&Yl(t),t.flags|=1,tt(e,t,n,s),t.child)}function Bc(e,t,n,r,s){if(ut(n)){var i=!0;Ui(t)}else i=!1;if(mr(t,s),t.stateNode===null)vi(e,t),sp(t,n,r),Za(t,n,r,s),r=!0;else if(e===null){var o=t.stateNode,a=t.memoizedProps;o.props=a;var u=o.context,c=n.contextType;typeof c=="object"&&c!==null?c=Tt(c):(c=ut(n)?Hn:Ze.current,c=kr(t,c));var h=n.getDerivedStateFromProps,d=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function";d||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==r||u!==c)&&Mc(t,o,r,c),hn=!1;var f=t.memoizedState;o.state=f,Wi(t,r,o,s),u=t.memoizedState,a!==r||f!==u||lt.current||hn?(typeof h=="function"&&(Ja(t,n,h,r),u=t.memoizedState),(a=hn||Lc(t,n,a,r,f,u,c))?(d||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=c,r=a):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,Of(e,t),a=t.memoizedProps,c=t.type===t.elementType?a:Lt(t.type,a),o.props=c,d=t.pendingProps,f=o.context,u=n.contextType,typeof u=="object"&&u!==null?u=Tt(u):(u=ut(n)?Hn:Ze.current,u=kr(t,u));var k=n.getDerivedStateFromProps;(h=typeof k=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==d||f!==u)&&Mc(t,o,r,u),hn=!1,f=t.memoizedState,o.state=f,Wi(t,r,o,s);var N=t.memoizedState;a!==d||f!==N||lt.current||hn?(typeof k=="function"&&(Ja(t,n,k,r),N=t.memoizedState),(c=hn||Lc(t,n,c,r,f,N,u)||!1)?(h||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,N,u),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,N,u)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=N),o.props=r,o.state=N,o.context=u,r=c):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return nl(e,t,n,r,i,s)}function nl(e,t,n,r,s,i){up(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return s&&Sc(t,n,!1),sn(e,t,i);r=t.stateNode,V0.current=t;var a=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=wr(t,e.child,null,i),t.child=wr(t,null,a,i)):tt(e,t,a,i),t.memoizedState=r.state,s&&Sc(t,n,!0),t.child}function cp(e){var t=e.stateNode;t.pendingContext?wc(e,t.pendingContext,t.pendingContext!==t.context):t.context&&wc(e,t.context,!1),su(e,t.containerInfo)}function zc(e,t,n,r,s){return br(),Jl(s),t.flags|=256,tt(e,t,n,r),t.child}var rl={dehydrated:null,treeContext:null,retryLane:0};function sl(e){return{baseLanes:e,cachePool:null,transitions:null}}function dp(e,t,n){var r=t.pendingProps,s=Ee.current,i=!1,o=(t.flags&128)!==0,a;if((a=o)||(a=e!==null&&e.memoizedState===null?!1:(s&2)!==0),a?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(s|=1),xe(Ee,s&1),e===null)return Ya(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,i?(r=t.mode,i=t.child,o={mode:"hidden",children:o},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=So(o,r,0,null),e=$n(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=sl(n),t.memoizedState=rl,e):fu(t,o));if(s=e.memoizedState,s!==null&&(a=s.dehydrated,a!==null))return K0(e,t,o,r,a,s,n);if(i){i=r.fallback,o=t.mode,s=e.child,a=s.sibling;var u={mode:"hidden",children:r.children};return!(o&1)&&t.child!==s?(r=t.child,r.childLanes=0,r.pendingProps=u,t.deletions=null):(r=jn(s,u),r.subtreeFlags=s.subtreeFlags&14680064),a!==null?i=jn(a,i):(i=$n(i,o,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,o=e.child.memoizedState,o=o===null?sl(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=rl,r}return i=e.child,e=i.sibling,r=jn(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function fu(e,t){return t=So({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ti(e,t,n,r){return r!==null&&Jl(r),wr(t,e.child,null,n),e=fu(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function K0(e,t,n,r,s,i,o){if(n)return t.flags&256?(t.flags&=-257,r=ca(Error(L(422))),ti(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,s=t.mode,r=So({mode:"visible",children:r.children},s,0,null),i=$n(i,s,o,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&wr(t,e.child,null,o),t.child.memoizedState=sl(o),t.memoizedState=rl,i);if(!(t.mode&1))return ti(e,t,o,null);if(s.data==="$!"){if(r=s.nextSibling&&s.nextSibling.dataset,r)var a=r.dgst;return r=a,i=Error(L(419)),r=ca(i,r,void 0),ti(e,t,o,r)}if(a=(o&e.childLanes)!==0,at||a){if(r=Ve,r!==null){switch(o&-o){case 4:s=2;break;case 16:s=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=s&(r.suspendedLanes|o)?0:s,s!==0&&s!==i.retryLane&&(i.retryLane=s,rn(e,s),Pt(r,e,s,-1))}return xu(),r=ca(Error(L(421))),ti(e,t,o,r)}return s.data==="$?"?(t.flags|=128,t.child=e.child,t=sg.bind(null,e),s._reactRetry=t,null):(e=i.treeContext,mt=Nn(s.nextSibling),gt=t,Ce=!0,Dt=null,e!==null&&(wt[St++]=Jt,wt[St++]=Zt,wt[St++]=Vn,Jt=e.id,Zt=e.overflow,Vn=t),t=fu(t,r.children),t.flags|=4096,t)}function Fc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Xa(e.return,t,n)}function da(e,t,n,r,s){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:s}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=s)}function fp(e,t,n){var r=t.pendingProps,s=r.revealOrder,i=r.tail;if(tt(e,t,r.children,n),r=Ee.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Fc(e,n,t);else if(e.tag===19)Fc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(xe(Ee,r),!(t.mode&1))t.memoizedState=null;else switch(s){case"forwards":for(n=t.child,s=null;n!==null;)e=n.alternate,e!==null&&Gi(e)===null&&(s=n),n=n.sibling;n=s,n===null?(s=t.child,t.child=null):(s=n.sibling,n.sibling=null),da(t,!1,s,n,i);break;case"backwards":for(n=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&Gi(e)===null){t.child=s;break}e=s.sibling,s.sibling=n,n=s,s=e}da(t,!0,n,null,i);break;case"together":da(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function vi(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function sn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Wn|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(L(153));if(t.child!==null){for(e=t.child,n=jn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=jn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function W0(e,t,n){switch(t.tag){case 3:cp(t),br();break;case 5:Bf(t);break;case 1:ut(t.type)&&Ui(t);break;case 4:su(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,s=t.memoizedProps.value;xe(Vi,r._currentValue),r._currentValue=s;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(xe(Ee,Ee.current&1),t.flags|=128,null):n&t.child.childLanes?dp(e,t,n):(xe(Ee,Ee.current&1),e=sn(e,t,n),e!==null?e.sibling:null);xe(Ee,Ee.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return fp(e,t,n);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),xe(Ee,Ee.current),r)break;return null;case 22:case 23:return t.lanes=0,lp(e,t,n)}return sn(e,t,n)}var pp,il,hp,mp;pp=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};il=function(){};hp=function(e,t,n,r){var s=e.memoizedProps;if(s!==r){e=t.stateNode,Fn(Wt.current);var i=null;switch(n){case"input":s=Ta(e,s),r=Ta(e,r),i=[];break;case"select":s=je({},s,{value:void 0}),r=je({},r,{value:void 0}),i=[];break;case"textarea":s=_a(e,s),r=_a(e,r),i=[];break;default:typeof s.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=zi)}Ma(n,r);var o;n=null;for(c in s)if(!r.hasOwnProperty(c)&&s.hasOwnProperty(c)&&s[c]!=null)if(c==="style"){var a=s[c];for(o in a)a.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(cs.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(a=s!=null?s[c]:void 0,r.hasOwnProperty(c)&&u!==a&&(u!=null||a!=null))if(c==="style")if(a){for(o in a)!a.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&a[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else c==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,a=a?a.__html:void 0,u!=null&&a!==u&&(i=i||[]).push(c,u)):c==="children"?typeof u!="string"&&typeof u!="number"||(i=i||[]).push(c,""+u):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(cs.hasOwnProperty(c)?(u!=null&&c==="onScroll"&&ke("scroll",e),i||a===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}};mp=function(e,t,n,r){n!==r&&(t.flags|=4)};function Vr(e,t){if(!Ce)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Xe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var s=e.child;s!==null;)n|=s.lanes|s.childLanes,r|=s.subtreeFlags&14680064,r|=s.flags&14680064,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)n|=s.lanes|s.childLanes,r|=s.subtreeFlags,r|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function G0(e,t,n){var r=t.pendingProps;switch(Xl(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Xe(t),null;case 1:return ut(t.type)&&Fi(),Xe(t),null;case 3:return r=t.stateNode,Sr(),be(lt),be(Ze),ou(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Zs(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Dt!==null&&(pl(Dt),Dt=null))),il(e,t),Xe(t),null;case 5:iu(t);var s=Fn(ws.current);if(n=t.type,e!==null&&t.stateNode!=null)hp(e,t,n,r,s),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(L(166));return Xe(t),null}if(e=Fn(Wt.current),Zs(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[Vt]=t,r[ks]=i,e=(t.mode&1)!==0,n){case"dialog":ke("cancel",r),ke("close",r);break;case"iframe":case"object":case"embed":ke("load",r);break;case"video":case"audio":for(s=0;s<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Vt]=t,e[ks]=r,pp(e,t,!1,!1),t.stateNode=e;e:{switch(o=Aa(n,r),n){case"dialog":ke("cancel",e),ke("close",e),s=r;break;case"iframe":case"object":case"embed":ke("load",e),s=r;break;case"video":case"audio":for(s=0;sCr&&(t.flags|=128,r=!0,Vr(i,!1),t.lanes=4194304)}else{if(!r)if(e=Gi(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Vr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Ce)return Xe(t),null}else 2*Me()-i.renderingStartTime>Cr&&n!==1073741824&&(t.flags|=128,r=!0,Vr(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Me(),t.sibling=null,n=Ee.current,xe(Ee,r?n&1|2:n&1),t):(Xe(t),null);case 22:case 23:return yu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ht&1073741824&&(Xe(t),t.subtreeFlags&6&&(t.flags|=8192)):Xe(t),null;case 24:return null;case 25:return null}throw Error(L(156,t.tag))}function Q0(e,t){switch(Xl(t),t.tag){case 1:return ut(t.type)&&Fi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Sr(),be(lt),be(Ze),ou(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return iu(t),null;case 13:if(be(Ee),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(L(340));br()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return be(Ee),null;case 4:return Sr(),null;case 10:return tu(t.type._context),null;case 22:case 23:return yu(),null;case 24:return null;default:return null}}var ni=!1,Je=!1,q0=typeof WeakSet=="function"?WeakSet:Set,O=null;function lr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Le(e,t,r)}else n.current=null}function ol(e,t,n){try{n()}catch(r){Le(e,t,r)}}var Uc=!1;function Y0(e,t){if(Ha=Pi,e=kf(),ql(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,a=-1,u=-1,c=0,h=0,d=e,f=null;t:for(;;){for(var k;d!==n||s!==0&&d.nodeType!==3||(a=o+s),d!==i||r!==0&&d.nodeType!==3||(u=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(k=d.firstChild)!==null;)f=d,d=k;for(;;){if(d===e)break t;if(f===n&&++c===s&&(a=o),f===i&&++h===r&&(u=o),(k=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=k}n=a===-1||u===-1?null:{start:a,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(Va={focusedElem:e,selectionRange:n},Pi=!1,O=t;O!==null;)if(t=O,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,O=e;else for(;O!==null;){t=O;try{var N=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(N!==null){var w=N.memoizedProps,S=N.memoizedState,m=t.stateNode,p=m.getSnapshotBeforeUpdate(t.elementType===t.type?w:Lt(t.type,w),S);m.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var g=t.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(L(163))}}catch(b){Le(t,t.return,b)}if(e=t.sibling,e!==null){e.return=t.return,O=e;break}O=t.return}return N=Uc,Uc=!1,N}function ss(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&ol(t,n,i)}s=s.next}while(s!==r)}}function bo(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function al(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function gp(e){var t=e.alternate;t!==null&&(e.alternate=null,gp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Vt],delete t[ks],delete t[Ga],delete t[M0],delete t[A0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yp(e){return e.tag===5||e.tag===3||e.tag===4}function $c(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yp(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ll(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=zi));else if(r!==4&&(e=e.child,e!==null))for(ll(e,t,n),e=e.sibling;e!==null;)ll(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(ul(e,t,n),e=e.sibling;e!==null;)ul(e,t,n),e=e.sibling}var We=null,Mt=!1;function fn(e,t,n){for(n=n.child;n!==null;)xp(e,t,n),n=n.sibling}function xp(e,t,n){if(Kt&&typeof Kt.onCommitFiberUnmount=="function")try{Kt.onCommitFiberUnmount(po,n)}catch{}switch(n.tag){case 5:Je||lr(n,t);case 6:var r=We,s=Mt;We=null,fn(e,t,n),We=r,Mt=s,We!==null&&(Mt?(e=We,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):We.removeChild(n.stateNode));break;case 18:We!==null&&(Mt?(e=We,n=n.stateNode,e.nodeType===8?sa(e.parentNode,n):e.nodeType===1&&sa(e,n),ms(e)):sa(We,n.stateNode));break;case 4:r=We,s=Mt,We=n.stateNode.containerInfo,Mt=!0,fn(e,t,n),We=r,Mt=s;break;case 0:case 11:case 14:case 15:if(!Je&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&ol(n,t,o),s=s.next}while(s!==r)}fn(e,t,n);break;case 1:if(!Je&&(lr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){Le(n,t,a)}fn(e,t,n);break;case 21:fn(e,t,n);break;case 22:n.mode&1?(Je=(r=Je)||n.memoizedState!==null,fn(e,t,n),Je=r):fn(e,t,n);break;default:fn(e,t,n)}}function Hc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new q0),t.forEach(function(r){var s=ig.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function _t(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=o),r&=~i}if(r=s,r=Me()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*J0(r/1960))-r,10e?16:e,vn===null)var r=!1;else{if(e=vn,vn=null,Ji=0,fe&6)throw Error(L(331));var s=fe;for(fe|=4,O=e.current;O!==null;){var i=O,o=i.child;if(O.flags&16){var a=i.deletions;if(a!==null){for(var u=0;uMe()-mu?Un(e,0):hu|=n),ct(e,t)}function Ep(e,t){t===0&&(e.mode&1?(t=Gs,Gs<<=1,!(Gs&130023424)&&(Gs=4194304)):t=1);var n=nt();e=rn(e,t),e!==null&&(As(e,t,n),ct(e,n))}function sg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ep(e,n)}function ig(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(L(314))}r!==null&&r.delete(t),Ep(e,n)}var Tp;Tp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||lt.current)at=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return at=!1,W0(e,t,n);at=!!(e.flags&131072)}else at=!1,Ce&&t.flags&1048576&&Lf(t,Hi,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;vi(e,t),e=t.pendingProps;var s=kr(t,Ze.current);mr(t,n),s=lu(null,t,r,e,s,n);var i=uu();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ut(r)?(i=!0,Ui(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,ru(t),s.updater=ko,t.stateNode=s,s._reactInternals=t,Za(t,r,e,n),t=nl(null,t,r,!0,i,n)):(t.tag=0,Ce&&i&&Yl(t),tt(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(vi(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=ag(r),e=Lt(r,e),s){case 0:t=tl(null,t,r,e,n);break e;case 1:t=Bc(null,t,r,e,n);break e;case 11:t=Pc(null,t,r,e,n);break e;case 14:t=Oc(null,t,r,Lt(r.type,e),n);break e}throw Error(L(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),tl(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),Bc(e,t,r,s,n);case 3:e:{if(cp(t),e===null)throw Error(L(387));r=t.pendingProps,i=t.memoizedState,s=i.element,Of(e,t),Wi(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=Nr(Error(L(423)),t),t=zc(e,t,r,n,s);break e}else if(r!==s){s=Nr(Error(L(424)),t),t=zc(e,t,r,n,s);break e}else for(mt=Nn(t.stateNode.containerInfo.firstChild),gt=t,Ce=!0,Dt=null,n=If(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(br(),r===s){t=sn(e,t,n);break e}tt(e,t,r,n)}t=t.child}return t;case 5:return Bf(t),e===null&&Ya(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,o=s.children,Ka(r,s)?o=null:i!==null&&Ka(r,i)&&(t.flags|=32),up(e,t),tt(e,t,o,n),t.child;case 6:return e===null&&Ya(t),null;case 13:return dp(e,t,n);case 4:return su(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=wr(t,null,r,n):tt(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),Pc(e,t,r,s,n);case 7:return tt(e,t,t.pendingProps,n),t.child;case 8:return tt(e,t,t.pendingProps.children,n),t.child;case 12:return tt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,o=s.value,xe(Vi,r._currentValue),r._currentValue=o,i!==null)if(Ot(i.value,o)){if(i.children===s.children&&!lt.current){t=sn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var a=i.dependencies;if(a!==null){o=i.child;for(var u=a.firstContext;u!==null;){if(u.context===r){if(i.tag===1){u=en(-1,n&-n),u.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var h=c.pending;h===null?u.next=u:(u.next=h.next,h.next=u),c.pending=u}}i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),Xa(i.return,n,t),a.lanes|=n;break}u=u.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(L(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Xa(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}tt(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,mr(t,n),s=Tt(s),r=r(s),t.flags|=1,tt(e,t,r,n),t.child;case 14:return r=t.type,s=Lt(r,t.pendingProps),s=Lt(r.type,s),Oc(e,t,r,s,n);case 15:return ap(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Lt(r,s),vi(e,t),t.tag=1,ut(r)?(e=!0,Ui(t)):e=!1,mr(t,n),sp(t,r,s),Za(t,r,s,n),nl(null,t,r,!0,e,n);case 19:return fp(e,t,n);case 22:return lp(e,t,n)}throw Error(L(156,t.tag))};function jp(e,t){return ef(e,t)}function og(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ct(e,t,n,r){return new og(e,t,n,r)}function vu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ag(e){if(typeof e=="function")return vu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Bl)return 11;if(e===zl)return 14}return 2}function jn(e,t){var n=e.alternate;return n===null?(n=Ct(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function wi(e,t,n,r,s,i){var o=2;if(r=e,typeof e=="function")vu(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Zn:return $n(n.children,s,i,t);case Ol:o=8,s|=8;break;case Sa:return e=Ct(12,n,t,s|2),e.elementType=Sa,e.lanes=i,e;case Na:return e=Ct(13,n,t,s),e.elementType=Na,e.lanes=i,e;case Ca:return e=Ct(19,n,t,s),e.elementType=Ca,e.lanes=i,e;case Od:return So(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Id:o=10;break e;case Pd:o=9;break e;case Bl:o=11;break e;case zl:o=14;break e;case pn:o=16,r=null;break e}throw Error(L(130,e==null?e:typeof e,""))}return t=Ct(o,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function $n(e,t,n,r){return e=Ct(7,e,r,t),e.lanes=n,e}function So(e,t,n,r){return e=Ct(22,e,r,t),e.elementType=Od,e.lanes=n,e.stateNode={isHidden:!1},e}function fa(e,t,n){return e=Ct(6,e,null,t),e.lanes=n,e}function pa(e,t,n){return t=Ct(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function lg(e,t,n,r,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Go(0),this.expirationTimes=Go(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Go(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function ku(e,t,n,r,s,i,o,a,u){return e=new lg(e,t,n,a,u),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ct(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ru(i),e}function ug(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Mp)}catch(e){console.error(e)}}Mp(),Ld.exports=xt;var cr=Ld.exports,Xc=cr;ba.createRoot=Xc.createRoot,ba.hydrateRoot=Xc.hydrateRoot;/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -67,7 +67,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ml=re("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + */const hl=re("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -77,7 +77,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const gl=re("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + */const ml=re("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -97,12 +97,12 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ro=re("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + */const jo=re("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const yl=re("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + */const gl=re("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -132,7 +132,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Cu=re("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** + */const Nu=re("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -147,7 +147,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const xl=re("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** + */const yl=re("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -157,7 +157,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const vl=re("MoveRight",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]);/** + */const xl=re("MoveRight",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -167,7 +167,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Eu=re("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + */const Cu=re("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -187,7 +187,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const _o=re("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** + */const Ro=re("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -202,12 +202,12 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Lo=re("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + */const _o=re("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const kl=re("SquareCheckBig",[["path",{d:"M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5",key:"1uzm8b"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** + */const vl=re("SquareCheckBig",[["path",{d:"M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5",key:"1uzm8b"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -227,12 +227,12 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const bl=re("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + */const kl=re("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Mo=re("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** + */const Lo=re("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** * @license lucide-react v0.441.0 - ISC * * This source code is licensed under the ISC license. @@ -252,9 +252,9 @@ Error generating stack: `+i.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ts=re("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);class _g{constructor(){$o(this,"ctx",null);$o(this,"enabled",!0);const t=localStorage.getItem("retro_sound_enabled");this.enabled=t!==null?t==="true":!0}getContext(){if(!this.enabled)return null;if(!this.ctx){const t=window.AudioContext||window.webkitAudioContext;t&&(this.ctx=new t)}return this.ctx&&this.ctx.state==="suspended"&&this.ctx.resume().catch(()=>{}),this.ctx}isEnabled(){return this.enabled}toggle(){return this.enabled=!this.enabled,localStorage.setItem("retro_sound_enabled",String(this.enabled)),this.enabled&&this.playClick(),this.enabled}playClick(){const t=this.getContext();if(t)try{const n=t.createOscillator(),r=t.createGain();n.type="square",n.frequency.setValueAtTime(440,t.currentTime),n.frequency.exponentialRampToValueAtTime(880,t.currentTime+.08),r.gain.setValueAtTime(.1,t.currentTime),r.gain.exponentialRampToValueAtTime(.01,t.currentTime+.08),n.connect(r),r.connect(t.destination),n.start(),n.stop(t.currentTime+.08)}catch{}}playDrop(){const t=this.getContext();if(t)try{const n=t.createOscillator(),r=t.createGain();n.type="triangle",n.frequency.setValueAtTime(220,t.currentTime),n.frequency.exponentialRampToValueAtTime(110,t.currentTime+.12),r.gain.setValueAtTime(.2,t.currentTime),r.gain.exponentialRampToValueAtTime(.01,t.currentTime+.12),n.connect(r),r.connect(t.destination),n.start(),n.stop(t.currentTime+.12)}catch{}}playVictory(){const t=this.getContext();if(t)try{[392,523.25,659.25,783.99].forEach((r,s)=>{const i=t.createOscillator(),o=t.createGain();i.type="square",i.frequency.setValueAtTime(r,t.currentTime+s*.09),o.gain.setValueAtTime(.12,t.currentTime+s*.09),o.gain.exponentialRampToValueAtTime(.01,t.currentTime+s*.09+.15),i.connect(o),o.connect(t.destination),i.start(t.currentTime+s*.09),i.stop(t.currentTime+s*.09+.16)})}catch{}}playLock(){const t=this.getContext();if(t)try{const n=t.createOscillator(),r=t.createGain();n.type="sawtooth",n.frequency.setValueAtTime(320,t.currentTime),n.frequency.setValueAtTime(260,t.currentTime+.06),r.gain.setValueAtTime(.08,t.currentTime),r.gain.exponentialRampToValueAtTime(.01,t.currentTime+.14),n.connect(r),r.connect(t.destination),n.start(),n.stop(t.currentTime+.14)}catch{}}}const V=new _g,Tu="tautkan_saved_boards",Lg="retro_kanban_saved_boards",Si="tautkan_user_info",Mg="retro_kanban_user_info",Ni="tautkan_user_profile";function Ag(e){try{const t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)"));if(t)return decodeURIComponent(t[2])}catch{}return null}function wl(e,t,n=365){try{const r=new Date(Date.now()+n*864e5).toUTCString();document.cookie=`${e}=${encodeURIComponent(t)}; expires=${r}; path=/; SameSite=Lax`}catch{}}function yr(){try{let e=localStorage.getItem(Tu);return e||(e=localStorage.getItem(Lg)),e?JSON.parse(e):[]}catch{return[]}}function $p(e){try{const t=yr(),n=e.role==="admin"?`#admin=${e.key}`:`#member=${e.key}`,r=`/b/${e.id}${n}`,s=t.filter(i=>i.id!==e.id);s.unshift({id:e.id,title:e.title||"Kanban Board",role:e.role,key:e.key,url:r,lastVisited:Date.now()}),localStorage.setItem(Tu,JSON.stringify(s.slice(0,20)))}catch(t){console.error("Failed to save board to localStorage:",t)}}function Dg(e){try{const n=yr().find(r=>r.id===e);if(n){if(n.key)return{key:n.key,role:n.role};if(n.url&&n.url.includes("#admin="))return{key:n.url.split("#admin=")[1].split("&")[0],role:"admin"};if(n.url&&n.url.includes("#member="))return{key:n.url.split("#member=")[1].split("&")[0],role:"member"}}}catch{}return null}function Ig(e){try{const t=yr().filter(n=>n.id!==e);localStorage.setItem(Tu,JSON.stringify(t))}catch{}}function ro(){try{let o=localStorage.getItem(Si)||localStorage.getItem(Mg);if(o){const a=JSON.parse(o);if(a.userName&&a.userId)return wl(Ni,JSON.stringify(a)),a}}catch{}try{const o=Ag(Ni);if(o){const a=JSON.parse(o);if(a.userName&&a.userId)return localStorage.setItem(Si,JSON.stringify(a)),a}}catch{}const e=["Pixel","Swift","Nova","Cyber","Zenith","Vortex","Echo","Nexus","Solar","Pulse"],t=["Pilot","Maker","Dev","Voyager","Lead","Master","Engineer","Architect","Scout","Agent"],n=e[Math.floor(Math.random()*e.length)],r=t[Math.floor(Math.random()*t.length)],s=Math.floor(10+Math.random()*90),i={userId:"usr_"+Math.random().toString(36).substring(2,11),userName:`${n}${r}_${s}`};try{localStorage.setItem(Si,JSON.stringify(i)),wl(Ni,JSON.stringify(i))}catch{}return i}function Pg(e){const t=ro();t.userName=e.trim()||t.userName;try{localStorage.setItem(Si,JSON.stringify(t)),wl(Ni,JSON.stringify(t)),window.dispatchEvent(new CustomEvent("user_profile_updated",{detail:t}))}catch{}return t}const Hp="tautkan_theme",Og="retro_kanban_theme";function so(){try{const e=localStorage.getItem(Hp)||localStorage.getItem(Og);if(e==="dark"||e==="light")return e}catch{}return"light"}function Vp(e){const t=document.documentElement;e==="dark"?(t.classList.add("dark"),t.classList.remove("light")):(t.classList.remove("dark"),t.classList.add("light"));try{localStorage.setItem(Hp,e)}catch{}}function Bg(){const t=so()==="dark"?"light":"dark";return Vp(t),t}const Wp="tautkan_view_mode";function js(){try{return localStorage.getItem(Wp)==="retro"}catch{return!1}}function zg(e){try{localStorage.setItem(Wp,e?"retro":"modern"),Kp(e)}catch{}}function Fg(){const t=!js();return zg(t),t}function Kp(e){const t=document.documentElement;e?(t.classList.add("retro-mode"),t.classList.remove("modern-mode")):(t.classList.remove("retro-mode"),t.classList.add("modern-mode"))}const io={id:{appName:"TautKan",appTagline:"Satu tautan untuk semua urusan.",appBadge:"AGILE KANBAN",lightMode:"Mode Terang",darkMode:"Mode Gelap",retroModeOn:"🕹️ 8-Bit Mode",retroModeOff:"✨ Modern Mode",muteAudio:"Matikan Suara Audio",unmuteAudio:"Nyalakan Suara Audio",changeName:"Ubah Nama Pengguna",superadmin:"Superadmin",member:"Anggota",roleSuperadminDesc:"Pemilik Papan (Akses Penuh)",roleMemberDesc:"Anggota Tim (Kolaborator)",heroBadge:"TANPA PASSWORD • TANPA EMAIL • 100% REAL-TIME",heroTitle:"Papan Kanban Real-Time Modern",heroSubtitle:"Kolaborasi manajemen proyek instan berbasis URL Fragment Hash. Tanpa registrasi akun, aman, cepat, dan terhubung secara langsung antar anggota tim.",createBoardHeader:"Buat Papan Kanban Baru",boardTitleLabel:"Judul Proyek / Papan",boardTitlePlaceholder:"Contoh: Pengembangan Fitur Sprint 1...",createBoardBtn:"Buat Papan Sekarang",creatingBoardBtn:"Sedang Membuat Papan...",rateLimitNote:"Batas: 5 papan per jam per IP",rbacNote:"Otorisasi Aman URL Fragment",savedBoardsTitle:"Papan Tersimpan",savedBoardsSub:"Riwayat tersimpan di browser Anda",noSavedBoards:"Belum ada papan yang tersimpan.",removeSaved:"Hapus dari daftar",onlineUsers:"Pengguna Online",shareInviteBtn:"Bagikan & Undang",rotateKeyBtn:"Putar Kunci Anggota",rotateKeyTooltip:"Regenerasi tautan anggota untuk mencabut akses lama",deleteBoardTooltip:"Hapus papan ini secara permanen",boardSettings:"Pengaturan Papan",autoMoveStaleSetting:"Otomatis kembalikan kartu macet (> batas jam) ke Backlog",backToHome:"Kembali ke Beranda",connectingToRealm:"Menghubungkan ke papan...",accessForbidden:"Akses Ditolak",accessForbiddenDesc:"Kunci otorisasi tidak valid atau sudah tidak berlaku.",reEnterKey:"Masukkan Kunci Kembali",boardLogsBtn:"Riwayat Log",activityLogTitle:"Riwayat Perpindahan & Log Aktivitas",noActivityLogs:"Belum ada riwayat pergerakan kartu yang tercatat.",addColumn:"Tambah Kolom",columnTitlePlaceholder:"Nama kolom (misal: QA Testing)...",addNewTask:"Tambah Tugas",taskTitlePlaceholder:"Tulis judul tugas...",enterToAdd:"Tekan Enter ↵ untuk simpan",cancel:"Batal",add:"Tambah",save:"Simpan",noTasksInCol:"Belum ada tugas di kolom ini",dragColTooltip:"Geser untuk mengatur urutan kolom",deleteColConfirm:"Hapus kolom ini beserta semua tugas di dalamnya?",editColSettings:"Pengaturan Kolom & WIP Limit",wipLimitLabel:"WIP Limit (Maksimal Kartu):",wipUnlimited:"0 = Tanpa Batas",autoStaleHoursLabel:"Batas Macet / Stale (Jam Inaktivitas):",wipLimitReached:"WIP Limit Tercapai",wipWarningModal:"Kolom ini telah mencapai batas kapasitas maksimum kartu (WIP Limit). Selesaikan tugas yang ada terlebih dahulu!",taskTitle:"Judul Tugas",taskDesc:"Deskripsi Tugas / Spesifikasi",taskDescPlaceholder:"Tuliskan rincian tugas, kriteria penerimaan, atau catatan penting...",priorityLabel:"Prioritas / Urgensi",tagsLabel:"Label / Tags (Tekan Enter)",tagsPlaceholder:"Contoh: FRONTEND, BUG, BACKEND...",assigneeLabel:"Penanggung Jawab (Assignee)",assigneePlaceholder:"Contoh: Budi Santoso",dueDateLabel:"Tenggat Waktu (Due Date)",subtasksLabel:"Checklist Sub-tugas",addSubtaskPlaceholder:"Tambah sub-tugas baru... (Enter)",blockedLabel:"Status Macet / Tertahan (Blocked)",markBlocked:"Tandai Sebagai Macet (Blocked)",blockedReasonLabel:"Alasan Kendala / Blocker:",blockedReasonPlaceholder:"Contoh: Menunggu API pihak ketiga selesai / Butuh approval...",staleIndicator:"Kartu Macet (Stale)",staleSince:"Tidak ada pergerakan selama",overdue:"Terlambat",dueToday:"Hari Ini",autoSaving:"Menyimpan otomatis...",synced:"Tersinkronisasi",isTypingTitle:"sedang mengetik judul tugas...",isTypingDesc:"sedang mengetik deskripsi...",isEditingGeneral:"sedang mengedit tugas ini...",deleteTask:"Hapus Tugas",close:"Tutup",deleteTaskConfirm:"Apakah Anda yakin ingin menghapus tugas ini?",cardMovementHistory:"Riwayat Perpindahan Kartu (Database Log)",prioLow:"Rendah",prioMedium:"Sedang",prioHigh:"Tinggi",prioUrgent:"Mendesak",boardCreatedTitle:"Papan TautKan Berhasil Dibuat!",boardName:"Nama Papan",adminLinkTitle:"Tautan Admin (Superadmin)",adminLinkWarning:"JANGAN BAGIKAN! HANYA UNTUK ANDA",adminLinkSavedNote:"Tautan ini tersimpan di browser Anda. Bookmark tautan ini untuk mengelola papan.",memberLinkTitle:"Tautan Undangan Anggota Tim",memberLinkBadge:"UNTUK REKAN TIM",copied:"Tersalin!",copy:"Salin",shareWhatsApp:"Bagikan ke WhatsApp / Aplikasi",enterBoardBtn:"Buka Papan Kanban",keyRotationTitle:"Rotasi Kunci Anggota",keyRotationSubtitle:"Buat Ulang Tautan Undangan Anggota Tim",keyRotationWarningTitle:"Peringatan: Menonaktifkan Tautan Lama!",keyRotationWarningDesc:"Membuat kunci anggota baru akan secara instan mencabut izin seluruh anggota yang menggunakan tautan lama dan memutuskan sesi mereka secara real-time.",regenerateBtn:"Buat Ulang Tautan",rotatingBtn:"Memproses...",newLinkActiveTitle:"Tautan Baru Berhasil Diaktifkan!",newLinkActiveDesc:"Tautan anggota lama telah dinonaktifkan. Bagikan tautan baru ini kepada rekan tim Anda:",done:"Selesai",keyPromptTitle:"Kunci Otorisasi Diperlukan",keyPromptDesc:"Papan ini terlindungi oleh URL Fragment Key. Silakan tempel tautan lengkap (#admin=... atau #member=...) atau kunci rahasia Anda di bawah ini.",keyPromptPlaceholder:"Tempel tautan #admin=... atau #member=... atau kunci Anda",unlockBoardBtn:"Buka Papan",keyPromptError:"Silakan masukkan kunci atau tautan undangan",sessionRevokedMsg:"Superadmin telah membuat ulang tautan anggota. Sesi Anda telah dihentikan.",movementFailed:"Gagal memindahkan kartu:",footerText:"TautKan • Satu tautan untuk semua urusan • Dual-Code URL Fragment Real-Time Agile"},en:{appName:"TautKan",appTagline:"One link to manage it all.",appBadge:"AGILE KANBAN",lightMode:"Light Mode",darkMode:"Dark Mode",retroModeOn:"🕹️ 8-Bit Mode",retroModeOff:"✨ Modern Mode",muteAudio:"Mute Audio",unmuteAudio:"Unmute Audio",changeName:"Change User Name",superadmin:"Superadmin",member:"Member",roleSuperadminDesc:"Board Owner (Full Access)",roleMemberDesc:"Team Member (Collaborator)",heroBadge:"ZERO PASSWORDS • ZERO EMAILS • 100% REAL-TIME",heroTitle:"Modern Real-Time Agile Kanban",heroSubtitle:"Instant project collaboration powered by URL Fragment Hashes. Zero sign-up required, ultra-secure, fast, and connected in real time.",createBoardHeader:"Create a New Kanban Board",boardTitleLabel:"Project / Board Title",boardTitlePlaceholder:"e.g. Sprint 1 - Core Feature Development...",createBoardBtn:"Create Board Now",creatingBoardBtn:"Creating Board...",rateLimitNote:"Limit: 5 boards/hour per IP",rbacNote:"Secure URL Fragment Key Auth",savedBoardsTitle:"Saved Boards",savedBoardsSub:"History stored securely in your browser",noSavedBoards:"No saved boards found.",removeSaved:"Remove from history",onlineUsers:"Online Teammates",shareInviteBtn:"Share & Invite",rotateKeyBtn:"Rotate Member Key",rotateKeyTooltip:"Regenerate member key and revoke all previous member links",deleteBoardTooltip:"Permanently delete this board",boardSettings:"Board Settings",autoMoveStaleSetting:"Automatically move stale cards (> threshold hours) back to Backlog",backToHome:"Back to Home",connectingToRealm:"Connecting to board realm...",accessForbidden:"Access Denied",accessForbiddenDesc:"The authorization key in this URL is invalid or has expired.",reEnterKey:"Re-Enter Key",boardLogsBtn:"Activity Logs",activityLogTitle:"Movement & Activity History",noActivityLogs:"No card movements logged yet.",addColumn:"Add Column",columnTitlePlaceholder:"Column name (e.g., QA Testing)...",addNewTask:"Add Task",taskTitlePlaceholder:"Write task title...",enterToAdd:"Press Enter ↵ to save",cancel:"Cancel",add:"Add",save:"Save",noTasksInCol:"No tasks in this column yet",dragColTooltip:"Drag to reorder column",deleteColConfirm:"Delete this column and all of its tasks?",editColSettings:"Column Settings & WIP Limit",wipLimitLabel:"WIP Limit (Max Cards):",wipUnlimited:"0 = Unlimited",autoStaleHoursLabel:"Stale Inactivity Limit (Hours):",wipLimitReached:"WIP Limit Reached",wipWarningModal:"This column has reached its maximum Work-In-Progress (WIP) limit. Please finish active tasks first!",taskTitle:"Task Title",taskDesc:"Task Description / Specs",taskDescPlaceholder:"Write specifications, acceptance criteria, or key implementation notes...",priorityLabel:"Priority / Urgency",tagsLabel:"Tags (Press Enter)",tagsPlaceholder:"e.g. FRONTEND, BUG, BACKEND...",assigneeLabel:"Assignee",assigneePlaceholder:"e.g. Alex Morgan",dueDateLabel:"Due Date",subtasksLabel:"Subtask Checklist",addSubtaskPlaceholder:"Add a new subtask... (Enter)",blockedLabel:"Blocker Status (Blocked)",markBlocked:"Mark as Blocked",blockedReasonLabel:"Blocker Explanation:",blockedReasonPlaceholder:"e.g. Waiting for 3rd-party API approval...",staleIndicator:"Stale Card",staleSince:"No movement for",overdue:"Overdue",dueToday:"Due Today",autoSaving:"Auto-saving...",synced:"Synced",isTypingTitle:"is typing title...",isTypingDesc:"is typing description...",isEditingGeneral:"is editing this task...",deleteTask:"Delete Task",close:"Close",deleteTaskConfirm:"Are you sure you want to delete this task?",cardMovementHistory:"Card Movement History (Database Log)",prioLow:"Low",prioMedium:"Medium",prioHigh:"High",prioUrgent:"Urgent",boardCreatedTitle:"TautKan Board Created!",boardName:"Board Name",adminLinkTitle:"Admin Key Link (Superadmin)",adminLinkWarning:"DO NOT SHARE! ADMIN ACCESS ONLY",adminLinkSavedNote:"This link is saved in your browser. Bookmark it to maintain management permissions.",memberLinkTitle:"Team Member Invite Link",memberLinkBadge:"FOR TEAMMATES",copied:"Copied!",copy:"Copy",shareWhatsApp:"Share via WhatsApp / Apps",enterBoardBtn:"Open Kanban Board",keyRotationTitle:"Member Key Rotation",keyRotationSubtitle:"Regenerate Team Member Invite Link",keyRotationWarningTitle:"Warning: Invalidates Old Links!",keyRotationWarningDesc:"Generating a new member key will immediately revoke access for all members using old links and disconnect active sessions in real time.",regenerateBtn:"Regenerate Link",rotatingBtn:"Rotating...",newLinkActiveTitle:"New Member Link Active!",newLinkActiveDesc:"Old member links have been successfully invalidated. Share this new link with your team:",done:"Done",keyPromptTitle:"Secret Key Required",keyPromptDesc:"This board is protected by a URL Fragment Key. Please paste your link (#admin=... or #member=...) or secret key below.",keyPromptPlaceholder:"Paste #admin=... or #member=... link or key",unlockBoardBtn:"Unlock Board",keyPromptError:"Please enter your key or invite link",sessionRevokedMsg:"The superadmin regenerated the member invite link. Your session has been revoked.",movementFailed:"Task movement failed:",footerText:"TautKan • One link to manage it all • Dual-Code URL Fragment Real-Time Agile"}},Ug={id:{...io.id,appBadge:"🕹️ 8-BIT RPG",superadmin:"OVERLORD / GUILD MASTER",member:"PARTY MEMBER",heroTitle:"QUEST REALM 8-BIT",heroSubtitle:"Bangun petualangan manajemen quest tim secara instan! Otorisasi URL Fragment Hash tanpa registrasi, chip-audio 8-bit, dan kolaborasi waktu nyata.",createBoardHeader:"FORGE QUEST REALM BARU",boardTitleLabel:"NAMA PETUALANGAN / REALM",boardTitlePlaceholder:"Contoh: SPRINT NETHERS / BOSS RAID...",createBoardBtn:"⚔️ FORGE REALM BARU",creatingBoardBtn:"FORGING REALM...",savedBoardsTitle:"REALM TERSIMPAN SAYA",onlineUsers:"PARTY ONLINE",shareInviteBtn:"📜 UNDANG GUILD",rotateKeyBtn:"🗝️ ROTASI KUNCI",boardLogsBtn:"📜 LOG QUEST",activityLogTitle:"GULUNGAN LOG RIWAYAT & PERGERAKAN QUEST",addColumn:"TAMBAH TAHAPAN QUEST",addNewTask:"TAMBAH QUEST",taskTitlePlaceholder:"Nama misi / quest...",taskTitle:"NAMA MISI / QUEST",taskDesc:"GULUNGAN DESKRIPSI & SPESIFIKASI",taskDescPlaceholder:"Tuliskan detail misi, item reward, atau catatan petualangan...",priorityLabel:"TINGKAT BAHAYA / URGENSI",prioLow:"WOOD (RENDAH)",prioMedium:"IRON (SEDANG)",prioHigh:"GOLD (TINGGI)",prioUrgent:"NETHERITE (MENDESAK)",subtasksLabel:"CHECKLIST SUB-QUEST",addSubtaskPlaceholder:"Tambah sub-quest baru... (Enter)",dueDateLabel:"TENGGAT WAKTU BOSS RAID",blockedLabel:"JEBAKAN / STATUS TERTAHAN (TRAPPED)",markBlocked:"🚩 TERKENA JEBAKAN (BLOCKED)",staleIndicator:"QUEST TERTIDUR (STALE)",wipLimitReached:"MANA WIP LIMIT PENUH",wipWarningModal:"Tahapan ini kehabisan Mana (WIP Limit Penuh)! Selesaikan quest yang aktif sebelum memulai quest baru.",cardMovementHistory:"GULUNGAN PERJALANAN QUEST (LOG DB)",footerText:"TautKan • 8-Bit Retro Mode • Satu tautan untuk semua urusan • Real-Time RPG Quest Board"},en:{...io.en,appBadge:"🕹️ 8-BIT RPG",superadmin:"OVERLORD / GUILD MASTER",member:"PARTY MEMBER",heroTitle:"8-BIT QUEST REALM",heroSubtitle:"Forge your team quest adventure instantly! URL Fragment Hash authorization, 8-bit chip audio, and real-time multiplayer board synchronization.",createBoardHeader:"FORGE NEW QUEST REALM",boardTitleLabel:"REALM / ADVENTURE NAME",boardTitlePlaceholder:"e.g. SPRINT NETHER / BOSS RAID...",createBoardBtn:"⚔️ FORGE REALM",creatingBoardBtn:"FORGING REALM...",savedBoardsTitle:"SAVED QUEST REALMS",onlineUsers:"PARTY ONLINE",shareInviteBtn:"📜 SUMMON PARTY",rotateKeyBtn:"🗝️ ROTATE KEY",boardLogsBtn:"📜 QUEST LOGS",activityLogTitle:"QUEST JOURNEY & ACTIVITY SCROLL",addColumn:"ADD QUEST STAGE",addNewTask:"ADD QUEST",taskTitlePlaceholder:"Quest / Mission name...",taskTitle:"QUEST / MISSION TITLE",taskDesc:"QUEST SCROLL & SPECIFICATIONS",taskDescPlaceholder:"Describe quest requirements, loot rewards, or tactical notes...",priorityLabel:"DANGER / URGENCY TIER",prioLow:"WOOD (LOW)",prioMedium:"IRON (MEDIUM)",prioHigh:"GOLD (HIGH)",prioUrgent:"NETHERITE (URGENT)",subtasksLabel:"SUB-QUEST CHECKLIST",addSubtaskPlaceholder:"Add new sub-quest... (Enter)",dueDateLabel:"BOSS RAID DUE DATE",blockedLabel:"TRAP / BLOCKED STATUS",markBlocked:"🚩 TRAPPED IN BLOCKER",staleIndicator:"DORMANT QUEST (STALE)",wipLimitReached:"MANA WIP LIMIT FULL",wipWarningModal:"This stage has reached its maximum Mana capacity (WIP Limit)! Finish ongoing quests first.",cardMovementHistory:"QUEST MOVEMENT SCROLL (DB LOG)",footerText:"TautKan • 8-Bit Retro Mode • One link to manage it all • Real-Time RPG Quest Board"}},Gp="tautkan_lang";function Qp(){try{const e=localStorage.getItem(Gp);if(e==="id"||e==="en")return e}catch{}return"id"}function $g(e){try{localStorage.setItem(Gp,e)}catch{}}function Rt(){const e=Qp(),t=js(),n=t?Ug[e]:io[e],r=io.id;return{t:i=>(n==null?void 0:n[i])||(r==null?void 0:r[i])||i,currentLang:e,isRetro:t}}const Hg=({onHomeClick:e,onLanguageChange:t,onThemeChange:n,onRetroModeChange:r})=>{const{t:s}=Rt(),[i,o]=y.useState(V.isEnabled()),[a,u]=y.useState(so()),[c,h]=y.useState(Qp()),[d,f]=y.useState(js()),[k,N]=y.useState(ro()),[w,S]=y.useState(!1),[m,p]=y.useState(k.userName);y.useEffect(()=>{const T=D=>{const P=D;P.detail&&(N(P.detail),p(P.detail.userName))};return window.addEventListener("user_profile_updated",T),()=>window.removeEventListener("user_profile_updated",T)},[]);const g=()=>{const T=V.toggle();o(T)},b=()=>{V.playClick();const T=Bg();u(T),n&&n(T)},j=()=>{V.playClick();const T=Fg();f(T),r&&r(T)},R=()=>{V.playClick();const T=c==="id"?"en":"id";$g(T),h(T),t&&t(T)},E=T=>{T.preventDefault(),m.trim()&&(Pg(m.trim()),N(ro()),S(!1),V.playClick())};return l.jsx("header",{className:"bg-white/95 dark:bg-[#090d18]/95 border-b border-slate-200 dark:border-slate-800/80 px-2.5 sm:px-4 py-2.5 sm:py-3 sticky top-0 z-40 backdrop-blur-md transition-colors duration-200",children:l.jsxs("div",{className:"max-w-7xl mx-auto flex items-center justify-between gap-2",children:[l.jsxs("div",{onClick:()=>{V.playClick(),e?e():window.location.href="/"},className:"flex items-center gap-2 sm:gap-3 cursor-pointer group select-none shrink-0",children:[l.jsx("div",{className:"w-8 h-8 sm:w-9 sm:h-9 bg-gradient-to-br from-indigo-500 to-cyan-500 rounded-lg flex items-center justify-center shadow-md shadow-indigo-500/20 group-hover:scale-105 transition-all",children:l.jsx(Bp,{size:18,className:"text-white stroke-[2.5]"})}),l.jsxs("div",{children:[l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsxs("h1",{className:"text-sm sm:text-base md:text-lg font-bold text-slate-900 dark:text-white tracking-tight",children:["Taut",l.jsx("span",{className:"text-indigo-600 dark:text-indigo-400",children:"Kan"})]}),l.jsx("span",{className:"text-[9px] sm:text-[10px] bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/30 px-1.5 sm:px-2 py-0.5 rounded-full font-medium hidden xs:inline-block",children:s("appBadge")})]}),l.jsx("p",{className:"text-[10px] sm:text-[11px] text-slate-500 dark:text-slate-400 hidden md:block",children:s("appTagline")})]})]}),l.jsxs("div",{className:"flex items-center gap-1 sm:gap-2",children:[l.jsx("div",{className:"relative",children:w?l.jsxs("form",{onSubmit:E,className:"flex items-center gap-1",children:[l.jsx("input",{type:"text",maxLength:18,value:m,onChange:T=>p(T.target.value),className:"bg-white dark:bg-slate-900 border border-indigo-500 text-slate-900 dark:text-indigo-300 text-xs px-2 py-1 rounded-md outline-none w-20 sm:w-32",autoFocus:!0,onBlur:()=>S(!1)}),l.jsx("button",{type:"submit",className:"bg-indigo-600 text-white text-[10px] font-bold px-1.5 py-1 rounded-md",children:"OK"})]}):l.jsxs("button",{onClick:()=>{V.playClick(),S(!0)},className:"flex items-center gap-1 bg-slate-100 dark:bg-slate-900/90 border border-slate-200 dark:border-slate-800 px-2 py-1.5 text-xs text-slate-700 dark:text-slate-200 rounded-lg hover:border-indigo-500 transition-all",title:s("changeName"),children:[l.jsx(Mo,{size:12,className:"text-indigo-600 dark:text-indigo-400 shrink-0"}),l.jsx("span",{className:"max-w-[50px] xs:max-w-[70px] sm:max-w-[120px] truncate text-[11px]",children:k.userName}),l.jsx("span",{className:"text-[9px] text-slate-400",children:"✏️"})]})}),l.jsxs("button",{onClick:j,className:`flex items-center gap-1 px-2 py-1.5 text-xs font-medium rounded-lg transition-all border ${d?"bg-purple-100 dark:bg-purple-900/70 border-purple-300 dark:border-purple-400 text-purple-900 dark:text-purple-200 shadow-sm":"bg-slate-100 dark:bg-slate-900/90 border-slate-200 dark:border-slate-800 text-slate-700 dark:text-slate-300 hover:border-purple-400 hover:text-purple-600 dark:hover:text-purple-300"}`,title:"Toggle 8-Bit Retro RPG Mode",children:[d?l.jsx(Lo,{size:12,className:"text-purple-600 dark:text-purple-300"}):l.jsx(vg,{size:12,className:"text-purple-600 dark:text-purple-400"}),l.jsx("span",{className:"hidden sm:inline-block font-semibold text-[11px]",children:d?"✨ Modern":"🕹️ 8-Bit"})]}),l.jsxs("button",{onClick:R,className:"flex items-center gap-0.5 bg-slate-100 dark:bg-slate-900/90 border border-slate-200 dark:border-slate-800 px-2 py-1.5 text-[11px] font-medium text-slate-700 dark:text-slate-200 rounded-lg hover:border-indigo-500 transition-all",title:"Switch Language / Ganti Bahasa",children:[l.jsx(kg,{size:12,className:"text-slate-500 dark:text-slate-400"}),l.jsx("span",{children:c==="id"?"ID":"EN"})]}),l.jsx("button",{onClick:b,className:"p-1.5 sm:p-2 border border-slate-200 dark:border-slate-800 bg-slate-100 dark:bg-slate-900/90 text-slate-700 dark:text-slate-300 rounded-lg hover:border-amber-400 transition-all",title:s(a==="dark"?"lightMode":"darkMode"),children:a==="dark"?l.jsx(Tg,{size:13,className:"text-amber-400"}):l.jsx(Ng,{size:13,className:"text-indigo-600"})}),l.jsx("button",{onClick:g,className:`p-1.5 sm:p-2 border rounded-lg transition-all ${i?"bg-indigo-50 dark:bg-indigo-500/15 border-indigo-200 dark:border-indigo-500/40 text-indigo-600 dark:text-indigo-400":"bg-slate-100 dark:bg-slate-900/90 border-slate-200 dark:border-slate-800 text-slate-400 dark:text-slate-500"}`,title:s(i?"muteAudio":"unmuteAudio"),children:i?l.jsx(jg,{size:13}):l.jsx(Rg,{size:13})})]})]})})};async function Vg(e){const t=await fetch("/api/boards",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e})});if(!t.ok){const n=await t.json().catch(()=>({}));throw new Error(n.message||n.error||"Failed to forge board")}return t.json()}async function Wg(e,t){const n=await fetch(`/api/boards/${e}`,{method:"GET",headers:{Authorization:`Bearer ${t}`}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||r.error||"Failed to enter board")}return n.json()}async function Kg(e,t,n=50){const r=await fetch(`/api/boards/${e}/activity?limit=${n}`,{method:"GET",headers:{Authorization:`Bearer ${t}`}});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(s.message||s.error||"Failed to fetch board activity")}return r.json()}async function Gg(e,t,n){const r=await fetch(`/api/boards/${e}/tickets/${t}/activity`,{method:"GET",headers:{Authorization:`Bearer ${n}`}});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(s.message||s.error||"Failed to fetch ticket activity")}return r.json()}async function Qg(e,t){const n=await fetch(`/api/boards/${e}/rotate-member-key`,{method:"POST",headers:{Authorization:`Bearer ${t}`}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||r.error||"Failed to rotate member key")}return n.json()}async function qg(e,t){const n=await fetch(`/api/boards/${e}`,{method:"DELETE",headers:{Authorization:`Bearer ${t}`}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||r.error||"Failed to delete board")}}var ju={};(function e(t,n,r,s){var i=!!(t.Worker&&t.Blob&&t.Promise&&t.OffscreenCanvas&&t.OffscreenCanvasRenderingContext2D&&t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype.transferControlToOffscreen&&t.URL&&t.URL.createObjectURL),o=typeof Path2D=="function"&&typeof DOMMatrix=="function",a=function(){if(!t.OffscreenCanvas)return!1;try{var v=new OffscreenCanvas(1,1),x=v.getContext("2d");x.fillRect(0,0,1,1);var _=v.transferToImageBitmap();x.createPattern(_,"no-repeat")}catch{return!1}return!0}();function u(){}function c(v){var x=n.exports.Promise,_=x!==void 0?x:t.Promise;return typeof _=="function"?new _(v):(v(u,u),null)}var h=function(v,x){return{transform:function(_){if(v)return _;if(x.has(_))return x.get(_);var B=new OffscreenCanvas(_.width,_.height),W=B.getContext("2d");return W.drawImage(_,0,0),x.set(_,B),B},clear:function(){x.clear()}}}(a,new Map),d=function(){var v=Math.floor(16.666666666666668),x,_,B={},W=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(x=function(q){var F=Math.random();return B[F]=requestAnimationFrame(function $(J){W===J||W+v-1{const{t:n}=Rt(),[r,s]=y.useState(!1),[i,o]=y.useState(!1),a=`${window.location.origin}${e.adminUrlFragment}`,u=`${window.location.origin}${e.memberUrlFragment}`;y.useEffect(()=>{V.playVictory();try{Yg({particleCount:70,spread:60,origin:{y:.6},colors:["#10b981","#f59e0b","#06b6d4","#8b5cf6"]})}catch{}},[]);const c=async(d,f)=>{V.playClick();try{await navigator.clipboard.writeText(d),f==="admin"?(s(!0),setTimeout(()=>s(!1),2500)):(o(!0),setTimeout(()=>o(!1),2500))}catch(k){console.error("Failed to copy link:",k)}},h=async()=>{if(V.playClick(),typeof navigator<"u"&&navigator.share)try{await navigator.share({title:`TautKan Board: ${e.title}`,text:`Bergabung di papan Agile TautKan: ${e.title}`,url:u})}catch(d){d.name!=="AbortError"&&console.error("Error sharing:",d)}else c(u,"member")};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-xl w-full p-4 sm:p-7 relative overflow-hidden text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsxs("div",{className:"text-center mb-5 sm:mb-6",children:[l.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-emerald-50 dark:bg-emerald-500/10 border border-emerald-200 dark:border-emerald-500/30 rounded-2xl mx-auto flex items-center justify-center mb-2.5 text-emerald-600 dark:text-emerald-400",children:l.jsx(Lo,{size:22})}),l.jsx("h2",{className:"text-base sm:text-lg md:text-xl font-bold text-slate-900 dark:text-white tracking-tight",children:n("boardCreatedTitle")}),l.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400 mt-1",children:[n("boardName"),": ",l.jsx("span",{className:"font-semibold text-indigo-600 dark:text-emerald-400",children:e.title})]})]}),l.jsxs("div",{className:"space-y-3.5 text-xs",children:[l.jsxs("div",{className:"bg-amber-50/70 dark:bg-slate-950/70 border border-amber-200 dark:border-amber-500/30 p-3.5 sm:p-4 rounded-xl",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2",children:[l.jsxs("span",{className:"font-semibold text-amber-800 dark:text-amber-400 flex items-center gap-1.5 text-xs",children:[l.jsx(Op,{size:14,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsx("span",{children:n("adminLinkTitle")})]}),l.jsx("span",{className:"text-[9px] sm:text-[10px] font-semibold bg-amber-100 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300 border border-amber-300 dark:border-amber-500/30 px-2 py-0.5 rounded-full",children:n("adminLinkWarning")})]}),l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 mt-2",children:[l.jsx("input",{type:"text",readOnly:!0,value:a,className:"bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 text-slate-800 dark:text-slate-300 font-mono text-[11px] sm:text-xs p-2 sm:p-2.5 rounded-lg flex-1 select-all outline-none truncate"}),l.jsxs("button",{onClick:()=>c(a,"admin"),className:`btn-modern ${r?"bg-emerald-500 text-slate-950":"btn-modern-gold"} py-2 px-2.5 sm:px-3 text-xs shrink-0`,children:[r?l.jsx(gl,{size:13}):l.jsx(yl,{size:13}),l.jsx("span",{children:n(r?"copied":"copy")})]})]}),l.jsxs("p",{className:"text-[10px] sm:text-[11px] text-amber-800 dark:text-amber-300/80 mt-2 flex items-center gap-1",children:[l.jsx(_o,{size:12,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsx("span",{children:n("adminLinkSavedNote")})]})]}),l.jsxs("div",{className:"bg-emerald-50/70 dark:bg-slate-950/70 border border-emerald-200 dark:border-emerald-500/30 p-3.5 sm:p-4 rounded-xl",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2",children:[l.jsxs("span",{className:"font-semibold text-emerald-800 dark:text-emerald-400 flex items-center gap-1.5 text-xs",children:[l.jsx(Up,{size:14,className:"text-emerald-600 dark:text-emerald-400 shrink-0"}),l.jsx("span",{children:n("memberLinkTitle")})]}),l.jsx("span",{className:"text-[9px] sm:text-[10px] font-semibold bg-emerald-100 dark:bg-emerald-500/15 text-emerald-800 dark:text-emerald-300 border border-emerald-300 dark:border-emerald-500/30 px-2 py-0.5 rounded-full",children:n("memberLinkBadge")})]}),l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 mt-2",children:[l.jsx("input",{type:"text",readOnly:!0,value:u,className:"bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 text-slate-800 dark:text-slate-300 font-mono text-[11px] sm:text-xs p-2 sm:p-2.5 rounded-lg flex-1 select-all outline-none truncate"}),l.jsxs("button",{onClick:()=>c(u,"member"),className:`btn-modern ${i?"bg-emerald-500 text-slate-950":"btn-modern-primary"} py-2 px-2.5 sm:px-3 text-xs shrink-0`,children:[i?l.jsx(gl,{size:13}):l.jsx(yl,{size:13}),l.jsx("span",{children:n(i?"copied":"copy")})]})]}),l.jsx("div",{className:"mt-2.5",children:l.jsxs("button",{onClick:h,className:"btn-modern w-full bg-cyan-50 dark:bg-cyan-500/15 hover:bg-cyan-100 dark:hover:bg-cyan-500/25 text-cyan-800 dark:text-cyan-300 border border-cyan-300 dark:border-cyan-500/40 flex items-center justify-center gap-2 py-2 text-xs font-semibold",children:[l.jsx(Fp,{size:13}),l.jsx("span",{children:n("shareWhatsApp")})]})})]})]}),l.jsx("div",{className:"mt-5 sm:mt-6 flex justify-end",children:l.jsxs("button",{onClick:()=>{V.playClick(),t()},className:"btn-modern-primary w-full sm:w-auto flex items-center justify-center gap-2 text-xs py-2.5 px-6 font-bold shadow-md",children:[l.jsx("span",{children:n("enterBoardBtn")}),l.jsx(ml,{size:15})]})})]})})},Xg=({onOpenBoard:e})=>{const{t}=Rt(),[n,r]=y.useState(""),[s,i]=y.useState(!1),[o,a]=y.useState(null),[u,c]=y.useState(null),[h,d]=y.useState([]);y.useEffect(()=>{d(yr())},[]);const f=async S=>{S.preventDefault(),V.playClick(),i(!0),a(null);try{const m=await Vg(n.trim()||"Sprint Agile Board");c(m),$p({id:m.id,title:m.title,role:"admin",key:m.adminKey}),d(yr())}catch(m){a(m.message||"Failed to create board"),V.playLock()}finally{i(!1)}},k=S=>{V.playClick();let m="";S.url&&S.url.includes("#")?m="#"+S.url.split("#")[1]:S.key&&(m=S.role==="admin"?`#admin=${S.key}`:`#member=${S.key}`),e(S.id,m)},N=(S,m)=>{S.stopPropagation(),V.playClick(),Ig(m),d(yr())},w=()=>{u&&(window.location.hash=`admin=${u.adminKey}`,e(u.id,`#admin=${u.adminKey}`))};return l.jsxs("div",{className:"max-w-4xl mx-auto px-4 py-8 md:py-14",children:[l.jsxs("div",{className:"text-center mb-10 md:mb-12",children:[l.jsxs("div",{className:"inline-flex items-center gap-2 bg-indigo-50 dark:bg-indigo-500/10 border border-indigo-200 dark:border-indigo-500/25 text-indigo-700 dark:text-indigo-300 text-xs px-3.5 py-1.5 rounded-full mb-4 shadow-sm",children:[l.jsx(Lo,{size:14,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{className:"font-semibold tracking-wide",children:t("heroBadge")})]}),l.jsxs("h1",{className:"text-3xl md:text-5xl font-extrabold text-slate-900 dark:text-white tracking-tight mb-4 leading-tight",children:["Taut",l.jsx("span",{className:"text-indigo-600 dark:text-indigo-400",children:"Kan"})," ",l.jsx("br",{}),l.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 via-purple-600 to-cyan-600 dark:from-indigo-400 dark:via-purple-300 dark:to-cyan-400 text-2xl md:text-4xl font-bold",children:t("heroTitle")})]}),l.jsx("p",{className:"text-slate-600 dark:text-slate-300 text-sm md:text-base max-w-xl mx-auto leading-relaxed",children:t("heroSubtitle")})]}),l.jsxs("div",{className:"card-kanban p-6 md:p-8 mb-10 relative overflow-hidden",children:[l.jsx("div",{className:"absolute -top-12 -right-12 w-48 h-48 bg-indigo-500/10 rounded-full blur-3xl pointer-events-none"}),l.jsxs("h2",{className:"text-base md:text-lg font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2.5",children:[l.jsx(Pp,{size:20,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:t("createBoardHeader")})]}),o&&l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-950/70 border border-rose-200 dark:border-rose-500/50 p-3.5 mb-5 text-xs text-rose-700 dark:text-rose-200 rounded-lg flex items-center gap-2.5",children:[l.jsx(_o,{size:16,className:"text-rose-600 dark:text-rose-400 shrink-0"}),l.jsx("span",{children:o})]}),l.jsxs("form",{onSubmit:f,className:"space-y-4",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-2",children:t("boardTitleLabel")}),l.jsx("input",{type:"text",value:n,onChange:S=>r(S.target.value),placeholder:t("boardTitlePlaceholder"),className:"w-full bg-slate-50 dark:bg-[#080c18] border border-slate-300 dark:border-slate-800 focus:border-indigo-500 text-slate-900 dark:text-white text-sm p-3.5 rounded-lg outline-none transition-colors"})]}),l.jsx("div",{className:"pt-2",children:l.jsx("button",{type:"submit",disabled:s,className:"btn-modern-primary w-full py-3.5 text-sm flex items-center justify-center gap-2 font-bold shadow-md shadow-indigo-600/25",children:s?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:t("creatingBoardBtn")})]}):l.jsxs(l.Fragment,{children:[l.jsx(Bp,{size:16}),l.jsx("span",{children:t("createBoardBtn")}),l.jsx(ml,{size:16})]})})})]}),l.jsxs("div",{className:"mt-4 flex flex-wrap items-center justify-between text-xs text-slate-500 dark:text-slate-400 gap-2",children:[l.jsxs("span",{className:"flex items-center gap-1",children:["🛡️ ",t("rateLimitNote")]}),l.jsxs("span",{className:"flex items-center gap-1",children:["🗝️ ",t("rbacNote")]})]})]}),h.length>0&&l.jsxs("div",{className:"card-kanban p-6",children:[l.jsxs("div",{className:"flex items-center justify-between mb-4",children:[l.jsxs("h3",{className:"text-sm md:text-base font-bold text-slate-900 dark:text-slate-200 flex items-center gap-2",children:[l.jsx(Ip,{size:16,className:"text-indigo-600 dark:text-indigo-400"}),l.jsxs("span",{children:[t("savedBoardsTitle")," (",h.length,")"]})]}),l.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:t("savedBoardsSub")})]}),l.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:h.map(S=>l.jsxs("div",{onClick:()=>k(S),className:"bg-slate-50 dark:bg-[#0b1020]/70 hover:bg-slate-100 dark:hover:bg-[#121830] border border-slate-200 dark:border-slate-800 p-3.5 rounded-lg transition-all cursor-pointer flex items-center justify-between group",children:[l.jsxs("div",{className:"min-w-0 flex-1 pr-2",children:[l.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[l.jsx("span",{className:`text-[10px] font-semibold px-2 py-0.5 rounded-full border ${S.role==="admin"?"bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-300 border-amber-200 dark:border-amber-500/30":"bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border-indigo-200 dark:border-indigo-500/30"}`,children:S.role==="admin"?`👑 ${t("superadmin")}`:`👤 ${t("member")}`}),l.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 truncate",children:new Date(S.lastVisited).toLocaleDateString()})]}),l.jsx("h4",{className:"text-xs font-bold text-slate-900 dark:text-slate-200 group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors truncate",children:S.title})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("button",{onClick:m=>N(m,S.id),className:"text-slate-400 hover:text-rose-600 dark:hover:text-rose-400 p-1.5 transition-colors",title:t("removeSaved"),children:l.jsx(Os,{size:14})}),l.jsx(ml,{size:14,className:"text-slate-400 group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors"})]})]},S.id))})]}),u&&l.jsx(qp,{boardData:u,onEnterBoard:w})]})};function Jg(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Ao=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Rr(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Ru(e){return"nodeType"in e}function it(e){var t,n;return e?Rr(e)?e:Ru(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function _u(e){const{Document:t}=it(e);return e instanceof t}function Bs(e){return Rr(e)?!1:e instanceof it(e).HTMLElement}function Yp(e){return e instanceof it(e).SVGElement}function _r(e){return e?Rr(e)?e.document:Ru(e)?_u(e)?e:Bs(e)||Yp(e)?e.ownerDocument:document:document:document}const Bt=Ao?y.useLayoutEffect:y.useEffect;function Do(e){const t=y.useRef(e);return Bt(()=>{t.current=e}),y.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=y.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function Rs(e,t){t===void 0&&(t=[e]);const n=y.useRef(e);return Bt(()=>{n.current!==e&&(n.current=e)},t),n}function zs(e,t){const n=y.useRef();return y.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function oo(e){const t=Do(e),n=y.useRef(null),r=y.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function ao(e){const t=y.useRef();return y.useEffect(()=>{t.current=e},[e]),t.current}let ma={};function Fs(e,t){return y.useMemo(()=>{if(t)return t;const n=ma[e]==null?0:ma[e]+1;return ma[e]=n,e+"-"+n},[e,t])}function Xp(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const a=Object.entries(o);for(const[u,c]of a){const h=i[u];h!=null&&(i[u]=h+e*c)}return i},{...t})}}const xr=Xp(1),_s=Xp(-1);function ey(e){return"clientX"in e&&"clientY"in e}function Io(e){if(!e)return!1;const{KeyboardEvent:t}=it(e.target);return t&&e instanceof t}function ty(e){if(!e)return!1;const{TouchEvent:t}=it(e.target);return t&&e instanceof t}function lo(e){if(ty(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return ey(e)?{x:e.clientX,y:e.clientY}:null}const on=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[on.Translate.toString(e),on.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),Zc="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function ny(e){return e.matches(Zc)?e:e.querySelector(Zc)}const ry={display:"none"};function sy(e){let{id:t,value:n}=e;return Ne.createElement("div",{id:t,style:ry},n)}function iy(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Ne.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function oy(){const[e,t]=y.useState("");return{announce:y.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Jp=y.createContext(null);function ay(e){const t=y.useContext(Jp);y.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function ly(){const[e]=y.useState(()=>new Set),t=y.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[y.useCallback(r=>{let{type:s,event:i}=r;e.forEach(o=>{var a;return(a=o[s])==null?void 0:a.call(o,i)})},[e]),t]}const uy={draggable:` + */const Ts=re("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);class _g{constructor(){Uo(this,"ctx",null);Uo(this,"enabled",!0);const t=localStorage.getItem("retro_sound_enabled");this.enabled=t!==null?t==="true":!0}getContext(){if(!this.enabled)return null;if(!this.ctx){const t=window.AudioContext||window.webkitAudioContext;t&&(this.ctx=new t)}return this.ctx&&this.ctx.state==="suspended"&&this.ctx.resume().catch(()=>{}),this.ctx}isEnabled(){return this.enabled}toggle(){return this.enabled=!this.enabled,localStorage.setItem("retro_sound_enabled",String(this.enabled)),this.enabled&&this.playClick(),this.enabled}playClick(){const t=this.getContext();if(t)try{const n=t.createOscillator(),r=t.createGain();n.type="square",n.frequency.setValueAtTime(440,t.currentTime),n.frequency.exponentialRampToValueAtTime(880,t.currentTime+.08),r.gain.setValueAtTime(.1,t.currentTime),r.gain.exponentialRampToValueAtTime(.01,t.currentTime+.08),n.connect(r),r.connect(t.destination),n.start(),n.stop(t.currentTime+.08)}catch{}}playDrop(){const t=this.getContext();if(t)try{const n=t.createOscillator(),r=t.createGain();n.type="triangle",n.frequency.setValueAtTime(220,t.currentTime),n.frequency.exponentialRampToValueAtTime(110,t.currentTime+.12),r.gain.setValueAtTime(.2,t.currentTime),r.gain.exponentialRampToValueAtTime(.01,t.currentTime+.12),n.connect(r),r.connect(t.destination),n.start(),n.stop(t.currentTime+.12)}catch{}}playVictory(){const t=this.getContext();if(t)try{[392,523.25,659.25,783.99].forEach((r,s)=>{const i=t.createOscillator(),o=t.createGain();i.type="square",i.frequency.setValueAtTime(r,t.currentTime+s*.09),o.gain.setValueAtTime(.12,t.currentTime+s*.09),o.gain.exponentialRampToValueAtTime(.01,t.currentTime+s*.09+.15),i.connect(o),o.connect(t.destination),i.start(t.currentTime+s*.09),i.stop(t.currentTime+s*.09+.16)})}catch{}}playLock(){const t=this.getContext();if(t)try{const n=t.createOscillator(),r=t.createGain();n.type="sawtooth",n.frequency.setValueAtTime(320,t.currentTime),n.frequency.setValueAtTime(260,t.currentTime+.06),r.gain.setValueAtTime(.08,t.currentTime),r.gain.exponentialRampToValueAtTime(.01,t.currentTime+.14),n.connect(r),r.connect(t.destination),n.start(),n.stop(t.currentTime+.14)}catch{}}}const V=new _g,Eu="tautkan_saved_boards",Lg="retro_kanban_saved_boards",Si="tautkan_user_info",Mg="retro_kanban_user_info",Ni="tautkan_user_profile";function Ag(e){try{const t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)"));if(t)return decodeURIComponent(t[2])}catch{}return null}function bl(e,t,n=365){try{const r=new Date(Date.now()+n*864e5).toUTCString();document.cookie=`${e}=${encodeURIComponent(t)}; expires=${r}; path=/; SameSite=Lax`}catch{}}function yr(){try{let e=localStorage.getItem(Eu);return e||(e=localStorage.getItem(Lg)),e?JSON.parse(e):[]}catch{return[]}}function $p(e){try{const t=yr(),n=e.role==="admin"?`#admin=${e.key}`:`#member=${e.key}`,r=`/b/${e.id}${n}`,s=t.filter(i=>i.id!==e.id);s.unshift({id:e.id,title:e.title||"Kanban Board",role:e.role,key:e.key,url:r,lastVisited:Date.now()}),localStorage.setItem(Eu,JSON.stringify(s.slice(0,20)))}catch(t){console.error("Failed to save board to localStorage:",t)}}function Dg(e){try{const n=yr().find(r=>r.id===e);if(n){if(n.key)return{key:n.key,role:n.role};if(n.url&&n.url.includes("#admin="))return{key:n.url.split("#admin=")[1].split("&")[0],role:"admin"};if(n.url&&n.url.includes("#member="))return{key:n.url.split("#member=")[1].split("&")[0],role:"member"}}}catch{}return null}function Ig(e){try{const t=yr().filter(n=>n.id!==e);localStorage.setItem(Eu,JSON.stringify(t))}catch{}}function Tu(){try{let o=localStorage.getItem(Si)||localStorage.getItem(Mg);if(o){const a=JSON.parse(o);if(a.userName&&a.userId)return bl(Ni,JSON.stringify(a)),a}}catch{}try{const o=Ag(Ni);if(o){const a=JSON.parse(o);if(a.userName&&a.userId)return localStorage.setItem(Si,JSON.stringify(a)),a}}catch{}const e=["Pixel","Swift","Nova","Cyber","Zenith","Vortex","Echo","Nexus","Solar","Pulse"],t=["Pilot","Maker","Dev","Voyager","Lead","Master","Engineer","Architect","Scout","Agent"],n=e[Math.floor(Math.random()*e.length)],r=t[Math.floor(Math.random()*t.length)],s=Math.floor(10+Math.random()*90),i={userId:"usr_"+Math.random().toString(36).substring(2,11),userName:`${n}${r}_${s}`};try{localStorage.setItem(Si,JSON.stringify(i)),bl(Ni,JSON.stringify(i))}catch{}return i}function Pg(e){const t=Tu();t.userName=e.trim()||t.userName;try{localStorage.setItem(Si,JSON.stringify(t)),bl(Ni,JSON.stringify(t)),window.dispatchEvent(new CustomEvent("user_profile_updated",{detail:t}))}catch{}return t}const Hp="tautkan_theme",Og="retro_kanban_theme";function ro(){try{const e=localStorage.getItem(Hp)||localStorage.getItem(Og);if(e==="dark"||e==="light")return e}catch{}return"light"}function Vp(e){const t=document.documentElement;e==="dark"?(t.classList.add("dark"),t.classList.remove("light")):(t.classList.remove("dark"),t.classList.add("light"));try{localStorage.setItem(Hp,e)}catch{}}function Bg(){const t=ro()==="dark"?"light":"dark";return Vp(t),t}const Kp="tautkan_view_mode";function js(){try{return localStorage.getItem(Kp)==="retro"}catch{return!1}}function zg(e){try{localStorage.setItem(Kp,e?"retro":"modern"),Wp(e)}catch{}}function Fg(){const t=!js();return zg(t),t}function Wp(e){const t=document.documentElement;e?(t.classList.add("retro-mode"),t.classList.remove("modern-mode")):(t.classList.remove("retro-mode"),t.classList.add("modern-mode"))}const so={id:{appName:"TautKan",appTagline:"Satu tautan untuk semua urusan.",appBadge:"AGILE KANBAN",lightMode:"Mode Terang",darkMode:"Mode Gelap",retroModeOn:"🕹️ 8-Bit Mode",retroModeOff:"✨ Modern Mode",muteAudio:"Matikan Suara Audio",unmuteAudio:"Nyalakan Suara Audio",changeName:"Ubah Nama Pengguna",superadmin:"Superadmin",member:"Anggota",roleSuperadminDesc:"Pemilik Papan (Akses Penuh)",roleMemberDesc:"Anggota Tim (Kolaborator)",heroBadge:"TANPA PASSWORD • TANPA EMAIL • 100% REAL-TIME",heroTitle:"Papan Kanban Real-Time Modern",heroSubtitle:"Kolaborasi manajemen proyek instan berbasis URL Fragment Hash. Tanpa registrasi akun, aman, cepat, dan terhubung secara langsung antar anggota tim.",createBoardHeader:"Buat Papan Kanban Baru",boardTitleLabel:"Judul Proyek / Papan",boardTitlePlaceholder:"Contoh: Pengembangan Fitur Sprint 1...",createBoardBtn:"Buat Papan Sekarang",creatingBoardBtn:"Sedang Membuat Papan...",rateLimitNote:"Batas: 5 papan per jam per IP",rbacNote:"Otorisasi Aman URL Fragment",savedBoardsTitle:"Papan Tersimpan",savedBoardsSub:"Riwayat tersimpan di browser Anda",noSavedBoards:"Belum ada papan yang tersimpan.",removeSaved:"Hapus dari daftar",onlineUsers:"Pengguna Online",shareInviteBtn:"Bagikan & Undang",rotateKeyBtn:"Putar Kunci Anggota",rotateKeyTooltip:"Regenerasi tautan anggota untuk mencabut akses lama",deleteBoardTooltip:"Hapus papan ini secara permanen",boardSettings:"Pengaturan Papan",autoMoveStaleSetting:"Otomatis kembalikan kartu macet (> batas jam) ke Backlog",backToHome:"Kembali ke Beranda",connectingToRealm:"Menghubungkan ke papan...",accessForbidden:"Akses Ditolak",accessForbiddenDesc:"Kunci otorisasi tidak valid atau sudah tidak berlaku.",reEnterKey:"Masukkan Kunci Kembali",boardLogsBtn:"Riwayat Log",activityLogTitle:"Riwayat Perpindahan & Log Aktivitas",noActivityLogs:"Belum ada riwayat pergerakan kartu yang tercatat.",addColumn:"Tambah Kolom",columnTitlePlaceholder:"Nama kolom (misal: QA Testing)...",addNewTask:"Tambah Tugas",taskTitlePlaceholder:"Tulis judul tugas...",enterToAdd:"Tekan Enter ↵ untuk simpan",cancel:"Batal",add:"Tambah",save:"Simpan",noTasksInCol:"Belum ada tugas di kolom ini",dragColTooltip:"Geser untuk mengatur urutan kolom",deleteColConfirm:"Hapus kolom ini beserta semua tugas di dalamnya?",editColSettings:"Pengaturan Kolom & WIP Limit",wipLimitLabel:"WIP Limit (Maksimal Kartu):",wipUnlimited:"0 = Tanpa Batas",autoStaleHoursLabel:"Batas Macet / Stale (Jam Inaktivitas):",wipLimitReached:"WIP Limit Tercapai",wipWarningModal:"Kolom ini telah mencapai batas kapasitas maksimum kartu (WIP Limit). Selesaikan tugas yang ada terlebih dahulu!",taskTitle:"Judul Tugas",taskDesc:"Deskripsi Tugas / Spesifikasi",taskDescPlaceholder:"Tuliskan rincian tugas, kriteria penerimaan, atau catatan penting...",priorityLabel:"Prioritas / Urgensi",tagsLabel:"Label / Tags (Tekan Enter)",tagsPlaceholder:"Contoh: FRONTEND, BUG, BACKEND...",assigneeLabel:"Penanggung Jawab (Assignee)",assigneePlaceholder:"Contoh: Budi Santoso",dueDateLabel:"Tenggat Waktu (Due Date)",subtasksLabel:"Checklist Sub-tugas",addSubtaskPlaceholder:"Tambah sub-tugas baru... (Enter)",blockedLabel:"Status Macet / Tertahan (Blocked)",markBlocked:"Tandai Sebagai Macet (Blocked)",blockedReasonLabel:"Alasan Kendala / Blocker:",blockedReasonPlaceholder:"Contoh: Menunggu API pihak ketiga selesai / Butuh approval...",staleIndicator:"Kartu Macet (Stale)",staleSince:"Tidak ada pergerakan selama",overdue:"Terlambat",dueToday:"Hari Ini",autoSaving:"Menyimpan otomatis...",synced:"Tersinkronisasi",isTypingTitle:"sedang mengetik judul tugas...",isTypingDesc:"sedang mengetik deskripsi...",isEditingGeneral:"sedang mengedit tugas ini...",deleteTask:"Hapus Tugas",close:"Tutup",deleteTaskConfirm:"Apakah Anda yakin ingin menghapus tugas ini?",cardMovementHistory:"Riwayat Perpindahan Kartu (Database Log)",prioLow:"Rendah",prioMedium:"Sedang",prioHigh:"Tinggi",prioUrgent:"Mendesak",boardCreatedTitle:"Papan TautKan Berhasil Dibuat!",boardName:"Nama Papan",adminLinkTitle:"Tautan Admin (Superadmin)",adminLinkWarning:"JANGAN BAGIKAN! HANYA UNTUK ANDA",adminLinkSavedNote:"Tautan ini tersimpan di browser Anda. Bookmark tautan ini untuk mengelola papan.",memberLinkTitle:"Tautan Undangan Anggota Tim",memberLinkBadge:"UNTUK REKAN TIM",copied:"Tersalin!",copy:"Salin",shareWhatsApp:"Bagikan ke WhatsApp / Aplikasi",enterBoardBtn:"Buka Papan Kanban",keyRotationTitle:"Rotasi Kunci Anggota",keyRotationSubtitle:"Buat Ulang Tautan Undangan Anggota Tim",keyRotationWarningTitle:"Peringatan: Menonaktifkan Tautan Lama!",keyRotationWarningDesc:"Membuat kunci anggota baru akan secara instan mencabut izin seluruh anggota yang menggunakan tautan lama dan memutuskan sesi mereka secara real-time.",regenerateBtn:"Buat Ulang Tautan",rotatingBtn:"Memproses...",newLinkActiveTitle:"Tautan Baru Berhasil Diaktifkan!",newLinkActiveDesc:"Tautan anggota lama telah dinonaktifkan. Bagikan tautan baru ini kepada rekan tim Anda:",done:"Selesai",keyPromptTitle:"Kunci Otorisasi Diperlukan",keyPromptDesc:"Papan ini terlindungi oleh URL Fragment Key. Silakan tempel tautan lengkap (#admin=... atau #member=...) atau kunci rahasia Anda di bawah ini.",keyPromptPlaceholder:"Tempel tautan #admin=... atau #member=... atau kunci Anda",unlockBoardBtn:"Buka Papan",keyPromptError:"Silakan masukkan kunci atau tautan undangan",sessionRevokedMsg:"Superadmin telah membuat ulang tautan anggota. Sesi Anda telah dihentikan.",movementFailed:"Gagal memindahkan kartu:",footerText:"TautKan • Satu tautan untuk semua urusan • Dual-Code URL Fragment Real-Time Agile"},en:{appName:"TautKan",appTagline:"One link to manage it all.",appBadge:"AGILE KANBAN",lightMode:"Light Mode",darkMode:"Dark Mode",retroModeOn:"🕹️ 8-Bit Mode",retroModeOff:"✨ Modern Mode",muteAudio:"Mute Audio",unmuteAudio:"Unmute Audio",changeName:"Change User Name",superadmin:"Superadmin",member:"Member",roleSuperadminDesc:"Board Owner (Full Access)",roleMemberDesc:"Team Member (Collaborator)",heroBadge:"ZERO PASSWORDS • ZERO EMAILS • 100% REAL-TIME",heroTitle:"Modern Real-Time Agile Kanban",heroSubtitle:"Instant project collaboration powered by URL Fragment Hashes. Zero sign-up required, ultra-secure, fast, and connected in real time.",createBoardHeader:"Create a New Kanban Board",boardTitleLabel:"Project / Board Title",boardTitlePlaceholder:"e.g. Sprint 1 - Core Feature Development...",createBoardBtn:"Create Board Now",creatingBoardBtn:"Creating Board...",rateLimitNote:"Limit: 5 boards/hour per IP",rbacNote:"Secure URL Fragment Key Auth",savedBoardsTitle:"Saved Boards",savedBoardsSub:"History stored securely in your browser",noSavedBoards:"No saved boards found.",removeSaved:"Remove from history",onlineUsers:"Online Teammates",shareInviteBtn:"Share & Invite",rotateKeyBtn:"Rotate Member Key",rotateKeyTooltip:"Regenerate member key and revoke all previous member links",deleteBoardTooltip:"Permanently delete this board",boardSettings:"Board Settings",autoMoveStaleSetting:"Automatically move stale cards (> threshold hours) back to Backlog",backToHome:"Back to Home",connectingToRealm:"Connecting to board realm...",accessForbidden:"Access Denied",accessForbiddenDesc:"The authorization key in this URL is invalid or has expired.",reEnterKey:"Re-Enter Key",boardLogsBtn:"Activity Logs",activityLogTitle:"Movement & Activity History",noActivityLogs:"No card movements logged yet.",addColumn:"Add Column",columnTitlePlaceholder:"Column name (e.g., QA Testing)...",addNewTask:"Add Task",taskTitlePlaceholder:"Write task title...",enterToAdd:"Press Enter ↵ to save",cancel:"Cancel",add:"Add",save:"Save",noTasksInCol:"No tasks in this column yet",dragColTooltip:"Drag to reorder column",deleteColConfirm:"Delete this column and all of its tasks?",editColSettings:"Column Settings & WIP Limit",wipLimitLabel:"WIP Limit (Max Cards):",wipUnlimited:"0 = Unlimited",autoStaleHoursLabel:"Stale Inactivity Limit (Hours):",wipLimitReached:"WIP Limit Reached",wipWarningModal:"This column has reached its maximum Work-In-Progress (WIP) limit. Please finish active tasks first!",taskTitle:"Task Title",taskDesc:"Task Description / Specs",taskDescPlaceholder:"Write specifications, acceptance criteria, or key implementation notes...",priorityLabel:"Priority / Urgency",tagsLabel:"Tags (Press Enter)",tagsPlaceholder:"e.g. FRONTEND, BUG, BACKEND...",assigneeLabel:"Assignee",assigneePlaceholder:"e.g. Alex Morgan",dueDateLabel:"Due Date",subtasksLabel:"Subtask Checklist",addSubtaskPlaceholder:"Add a new subtask... (Enter)",blockedLabel:"Blocker Status (Blocked)",markBlocked:"Mark as Blocked",blockedReasonLabel:"Blocker Explanation:",blockedReasonPlaceholder:"e.g. Waiting for 3rd-party API approval...",staleIndicator:"Stale Card",staleSince:"No movement for",overdue:"Overdue",dueToday:"Due Today",autoSaving:"Auto-saving...",synced:"Synced",isTypingTitle:"is typing title...",isTypingDesc:"is typing description...",isEditingGeneral:"is editing this task...",deleteTask:"Delete Task",close:"Close",deleteTaskConfirm:"Are you sure you want to delete this task?",cardMovementHistory:"Card Movement History (Database Log)",prioLow:"Low",prioMedium:"Medium",prioHigh:"High",prioUrgent:"Urgent",boardCreatedTitle:"TautKan Board Created!",boardName:"Board Name",adminLinkTitle:"Admin Key Link (Superadmin)",adminLinkWarning:"DO NOT SHARE! ADMIN ACCESS ONLY",adminLinkSavedNote:"This link is saved in your browser. Bookmark it to maintain management permissions.",memberLinkTitle:"Team Member Invite Link",memberLinkBadge:"FOR TEAMMATES",copied:"Copied!",copy:"Copy",shareWhatsApp:"Share via WhatsApp / Apps",enterBoardBtn:"Open Kanban Board",keyRotationTitle:"Member Key Rotation",keyRotationSubtitle:"Regenerate Team Member Invite Link",keyRotationWarningTitle:"Warning: Invalidates Old Links!",keyRotationWarningDesc:"Generating a new member key will immediately revoke access for all members using old links and disconnect active sessions in real time.",regenerateBtn:"Regenerate Link",rotatingBtn:"Rotating...",newLinkActiveTitle:"New Member Link Active!",newLinkActiveDesc:"Old member links have been successfully invalidated. Share this new link with your team:",done:"Done",keyPromptTitle:"Secret Key Required",keyPromptDesc:"This board is protected by a URL Fragment Key. Please paste your link (#admin=... or #member=...) or secret key below.",keyPromptPlaceholder:"Paste #admin=... or #member=... link or key",unlockBoardBtn:"Unlock Board",keyPromptError:"Please enter your key or invite link",sessionRevokedMsg:"The superadmin regenerated the member invite link. Your session has been revoked.",movementFailed:"Task movement failed:",footerText:"TautKan • One link to manage it all • Dual-Code URL Fragment Real-Time Agile"}},Ug={id:{...so.id,appBadge:"🕹️ 8-BIT RPG",superadmin:"OVERLORD / GUILD MASTER",member:"PARTY MEMBER",heroTitle:"QUEST REALM 8-BIT",heroSubtitle:"Bangun petualangan manajemen quest tim secara instan! Otorisasi URL Fragment Hash tanpa registrasi, chip-audio 8-bit, dan kolaborasi waktu nyata.",createBoardHeader:"FORGE QUEST REALM BARU",boardTitleLabel:"NAMA PETUALANGAN / REALM",boardTitlePlaceholder:"Contoh: SPRINT NETHERS / BOSS RAID...",createBoardBtn:"⚔️ FORGE REALM BARU",creatingBoardBtn:"FORGING REALM...",savedBoardsTitle:"REALM TERSIMPAN SAYA",onlineUsers:"PARTY ONLINE",shareInviteBtn:"📜 UNDANG GUILD",rotateKeyBtn:"🗝️ ROTASI KUNCI",boardLogsBtn:"📜 LOG QUEST",activityLogTitle:"GULUNGAN LOG RIWAYAT & PERGERAKAN QUEST",addColumn:"TAMBAH TAHAPAN QUEST",addNewTask:"TAMBAH QUEST",taskTitlePlaceholder:"Nama misi / quest...",taskTitle:"NAMA MISI / QUEST",taskDesc:"GULUNGAN DESKRIPSI & SPESIFIKASI",taskDescPlaceholder:"Tuliskan detail misi, item reward, atau catatan petualangan...",priorityLabel:"TINGKAT BAHAYA / URGENSI",prioLow:"WOOD (RENDAH)",prioMedium:"IRON (SEDANG)",prioHigh:"GOLD (TINGGI)",prioUrgent:"NETHERITE (MENDESAK)",subtasksLabel:"CHECKLIST SUB-QUEST",addSubtaskPlaceholder:"Tambah sub-quest baru... (Enter)",dueDateLabel:"TENGGAT WAKTU BOSS RAID",blockedLabel:"JEBAKAN / STATUS TERTAHAN (TRAPPED)",markBlocked:"🚩 TERKENA JEBAKAN (BLOCKED)",staleIndicator:"QUEST TERTIDUR (STALE)",wipLimitReached:"MANA WIP LIMIT PENUH",wipWarningModal:"Tahapan ini kehabisan Mana (WIP Limit Penuh)! Selesaikan quest yang aktif sebelum memulai quest baru.",cardMovementHistory:"GULUNGAN PERJALANAN QUEST (LOG DB)",footerText:"TautKan • 8-Bit Retro Mode • Satu tautan untuk semua urusan • Real-Time RPG Quest Board"},en:{...so.en,appBadge:"🕹️ 8-BIT RPG",superadmin:"OVERLORD / GUILD MASTER",member:"PARTY MEMBER",heroTitle:"8-BIT QUEST REALM",heroSubtitle:"Forge your team quest adventure instantly! URL Fragment Hash authorization, 8-bit chip audio, and real-time multiplayer board synchronization.",createBoardHeader:"FORGE NEW QUEST REALM",boardTitleLabel:"REALM / ADVENTURE NAME",boardTitlePlaceholder:"e.g. SPRINT NETHER / BOSS RAID...",createBoardBtn:"⚔️ FORGE REALM",creatingBoardBtn:"FORGING REALM...",savedBoardsTitle:"SAVED QUEST REALMS",onlineUsers:"PARTY ONLINE",shareInviteBtn:"📜 SUMMON PARTY",rotateKeyBtn:"🗝️ ROTATE KEY",boardLogsBtn:"📜 QUEST LOGS",activityLogTitle:"QUEST JOURNEY & ACTIVITY SCROLL",addColumn:"ADD QUEST STAGE",addNewTask:"ADD QUEST",taskTitlePlaceholder:"Quest / Mission name...",taskTitle:"QUEST / MISSION TITLE",taskDesc:"QUEST SCROLL & SPECIFICATIONS",taskDescPlaceholder:"Describe quest requirements, loot rewards, or tactical notes...",priorityLabel:"DANGER / URGENCY TIER",prioLow:"WOOD (LOW)",prioMedium:"IRON (MEDIUM)",prioHigh:"GOLD (HIGH)",prioUrgent:"NETHERITE (URGENT)",subtasksLabel:"SUB-QUEST CHECKLIST",addSubtaskPlaceholder:"Add new sub-quest... (Enter)",dueDateLabel:"BOSS RAID DUE DATE",blockedLabel:"TRAP / BLOCKED STATUS",markBlocked:"🚩 TRAPPED IN BLOCKER",staleIndicator:"DORMANT QUEST (STALE)",wipLimitReached:"MANA WIP LIMIT FULL",wipWarningModal:"This stage has reached its maximum Mana capacity (WIP Limit)! Finish ongoing quests first.",cardMovementHistory:"QUEST MOVEMENT SCROLL (DB LOG)",footerText:"TautKan • 8-Bit Retro Mode • One link to manage it all • Real-Time RPG Quest Board"}},Gp="tautkan_lang";function Qp(){try{const e=localStorage.getItem(Gp);if(e==="id"||e==="en")return e}catch{}return"id"}function $g(e){try{localStorage.setItem(Gp,e)}catch{}}function Rt(){const e=Qp(),t=js(),n=t?Ug[e]:so[e],r=so.id;return{t:i=>(n==null?void 0:n[i])||(r==null?void 0:r[i])||i,currentLang:e,isRetro:t}}const Hg=({onHomeClick:e,onLanguageChange:t,onThemeChange:n,onRetroModeChange:r})=>{const{t:s}=Rt(),[i,o]=y.useState(V.isEnabled()),[a,u]=y.useState(ro()),[c,h]=y.useState(Qp()),[d,f]=y.useState(js()),[k,N]=y.useState(Tu()),[w,S]=y.useState(!1),[m,p]=y.useState(k.userName);y.useEffect(()=>{const T=D=>{const I=D;I.detail&&(N(I.detail),p(I.detail.userName))};return window.addEventListener("user_profile_updated",T),()=>window.removeEventListener("user_profile_updated",T)},[]);const g=()=>{const T=V.toggle();o(T)},b=()=>{V.playClick();const T=Bg();u(T),n&&n(T)},j=()=>{V.playClick();const T=Fg();f(T),r&&r(T)},R=()=>{V.playClick();const T=c==="id"?"en":"id";$g(T),h(T),t&&t(T)},E=T=>{T&&T.preventDefault();const D=m.trim();if(D){const I=Pg(D);N(I),V.playClick()}S(!1)};return l.jsx("header",{className:"bg-white/95 dark:bg-[#090d18]/95 border-b border-slate-200 dark:border-slate-800/80 px-2.5 sm:px-4 py-2.5 sm:py-3 sticky top-0 z-40 backdrop-blur-md transition-colors duration-200",children:l.jsxs("div",{className:"max-w-7xl mx-auto flex items-center justify-between gap-2",children:[l.jsxs("div",{onClick:()=>{V.playClick(),e?e():window.location.href="/"},className:"flex items-center gap-2 sm:gap-3 cursor-pointer group select-none shrink-0",children:[l.jsx("div",{className:"w-8 h-8 sm:w-9 sm:h-9 bg-gradient-to-br from-indigo-500 to-cyan-500 rounded-lg flex items-center justify-center shadow-md shadow-indigo-500/20 group-hover:scale-105 transition-all",children:l.jsx(Bp,{size:18,className:"text-white stroke-[2.5]"})}),l.jsxs("div",{children:[l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsxs("h1",{className:"text-sm sm:text-base md:text-lg font-bold text-slate-900 dark:text-white tracking-tight",children:["Taut",l.jsx("span",{className:"text-indigo-600 dark:text-indigo-400",children:"Kan"})]}),l.jsx("span",{className:"text-[9px] sm:text-[10px] bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/30 px-1.5 sm:px-2 py-0.5 rounded-full font-medium hidden xs:inline-block",children:s("appBadge")})]}),l.jsx("p",{className:"text-[10px] sm:text-[11px] text-slate-500 dark:text-slate-400 hidden md:block",children:s("appTagline")})]})]}),l.jsxs("div",{className:"flex items-center gap-1 sm:gap-2",children:[l.jsx("div",{className:"relative",children:w?l.jsxs("form",{onSubmit:E,className:"flex items-center gap-1",children:[l.jsx("input",{type:"text",maxLength:18,value:m,onChange:T=>p(T.target.value),onKeyDown:T=>{T.key==="Escape"&&(p(k.userName),S(!1))},className:"bg-white dark:bg-slate-900 border border-indigo-500 text-slate-900 dark:text-indigo-300 text-xs px-2 py-1 rounded-md outline-none w-24 sm:w-36",autoFocus:!0}),l.jsx("button",{type:"submit",className:"bg-indigo-600 hover:bg-indigo-500 text-white text-[10px] font-bold px-2 py-1.5 rounded-md shadow-sm",children:"OK"})]}):l.jsxs("button",{onClick:()=>{V.playClick(),p(k.userName),S(!0)},className:"flex items-center gap-1 bg-slate-100 dark:bg-slate-900/90 border border-slate-200 dark:border-slate-800 px-2 py-1.5 text-xs text-slate-700 dark:text-slate-200 rounded-lg hover:border-indigo-500 transition-all",title:s("changeName"),children:[l.jsx(Lo,{size:12,className:"text-indigo-600 dark:text-indigo-400 shrink-0"}),l.jsx("span",{className:"max-w-[50px] xs:max-w-[70px] sm:max-w-[120px] truncate text-[11px] font-medium",children:k.userName}),l.jsx("span",{className:"text-[9px] text-slate-400",children:"✏️"})]})}),l.jsxs("button",{onClick:j,className:`flex items-center gap-1 px-2 py-1.5 text-xs font-medium rounded-lg transition-all border ${d?"bg-purple-100 dark:bg-purple-900/70 border-purple-300 dark:border-purple-400 text-purple-900 dark:text-purple-200 shadow-sm":"bg-slate-100 dark:bg-slate-900/90 border-slate-200 dark:border-slate-800 text-slate-700 dark:text-slate-300 hover:border-purple-400 hover:text-purple-600 dark:hover:text-purple-300"}`,title:"Toggle 8-Bit Retro RPG Mode",children:[d?l.jsx(_o,{size:12,className:"text-purple-600 dark:text-purple-300"}):l.jsx(vg,{size:12,className:"text-purple-600 dark:text-purple-400"}),l.jsx("span",{className:"hidden sm:inline-block font-semibold text-[11px]",children:d?"✨ Modern":"🕹️ 8-Bit"})]}),l.jsxs("button",{onClick:R,className:"flex items-center gap-0.5 bg-slate-100 dark:bg-slate-900/90 border border-slate-200 dark:border-slate-800 px-2 py-1.5 text-[11px] font-medium text-slate-700 dark:text-slate-200 rounded-lg hover:border-indigo-500 transition-all",title:"Switch Language / Ganti Bahasa",children:[l.jsx(kg,{size:12,className:"text-slate-500 dark:text-slate-400"}),l.jsx("span",{children:c==="id"?"ID":"EN"})]}),l.jsx("button",{onClick:b,className:"p-1.5 sm:p-2 border border-slate-200 dark:border-slate-800 bg-slate-100 dark:bg-slate-900/90 text-slate-700 dark:text-slate-300 rounded-lg hover:border-amber-400 transition-all",title:s(a==="dark"?"lightMode":"darkMode"),children:a==="dark"?l.jsx(Tg,{size:13,className:"text-amber-400"}):l.jsx(Ng,{size:13,className:"text-indigo-600"})}),l.jsx("button",{onClick:g,className:`p-1.5 sm:p-2 border rounded-lg transition-all ${i?"bg-indigo-50 dark:bg-indigo-500/15 border-indigo-200 dark:border-indigo-500/40 text-indigo-600 dark:text-indigo-400":"bg-slate-100 dark:bg-slate-900/90 border-slate-200 dark:border-slate-800 text-slate-400 dark:text-slate-500"}`,title:s(i?"muteAudio":"unmuteAudio"),children:i?l.jsx(jg,{size:13}):l.jsx(Rg,{size:13})})]})]})})};async function Vg(e){const t=await fetch("/api/boards",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e})});if(!t.ok){const n=await t.json().catch(()=>({}));throw new Error(n.message||n.error||"Failed to forge board")}return t.json()}async function Kg(e,t){const n=await fetch(`/api/boards/${e}`,{method:"GET",headers:{Authorization:`Bearer ${t}`}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||r.error||"Failed to enter board")}return n.json()}async function Wg(e,t,n=50){const r=await fetch(`/api/boards/${e}/activity?limit=${n}`,{method:"GET",headers:{Authorization:`Bearer ${t}`}});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(s.message||s.error||"Failed to fetch board activity")}return r.json()}async function Gg(e,t,n){const r=await fetch(`/api/boards/${e}/tickets/${t}/activity`,{method:"GET",headers:{Authorization:`Bearer ${n}`}});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(s.message||s.error||"Failed to fetch ticket activity")}return r.json()}async function Qg(e,t){const n=await fetch(`/api/boards/${e}/rotate-member-key`,{method:"POST",headers:{Authorization:`Bearer ${t}`}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||r.error||"Failed to rotate member key")}return n.json()}async function qg(e,t){const n=await fetch(`/api/boards/${e}`,{method:"DELETE",headers:{Authorization:`Bearer ${t}`}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||r.error||"Failed to delete board")}}var ju={};(function e(t,n,r,s){var i=!!(t.Worker&&t.Blob&&t.Promise&&t.OffscreenCanvas&&t.OffscreenCanvasRenderingContext2D&&t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype.transferControlToOffscreen&&t.URL&&t.URL.createObjectURL),o=typeof Path2D=="function"&&typeof DOMMatrix=="function",a=function(){if(!t.OffscreenCanvas)return!1;try{var v=new OffscreenCanvas(1,1),x=v.getContext("2d");x.fillRect(0,0,1,1);var _=v.transferToImageBitmap();x.createPattern(_,"no-repeat")}catch{return!1}return!0}();function u(){}function c(v){var x=n.exports.Promise,_=x!==void 0?x:t.Promise;return typeof _=="function"?new _(v):(v(u,u),null)}var h=function(v,x){return{transform:function(_){if(v)return _;if(x.has(_))return x.get(_);var B=new OffscreenCanvas(_.width,_.height),K=B.getContext("2d");return K.drawImage(_,0,0),x.set(_,B),B},clear:function(){x.clear()}}}(a,new Map),d=function(){var v=Math.floor(16.666666666666668),x,_,B={},K=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(x=function(q){var F=Math.random();return B[F]=requestAnimationFrame(function $(J){K===J||K+v-1{const{t:n}=Rt(),[r,s]=y.useState(!1),[i,o]=y.useState(!1),a=`${window.location.origin}${e.adminUrlFragment}`,u=`${window.location.origin}${e.memberUrlFragment}`;y.useEffect(()=>{V.playVictory();try{Yg({particleCount:70,spread:60,origin:{y:.6},colors:["#10b981","#f59e0b","#06b6d4","#8b5cf6"]})}catch{}},[]);const c=async(d,f)=>{V.playClick();try{await navigator.clipboard.writeText(d),f==="admin"?(s(!0),setTimeout(()=>s(!1),2500)):(o(!0),setTimeout(()=>o(!1),2500))}catch(k){console.error("Failed to copy link:",k)}},h=async()=>{if(V.playClick(),typeof navigator<"u"&&navigator.share)try{await navigator.share({title:`TautKan Board: ${e.title}`,text:`Bergabung di papan Agile TautKan: ${e.title}`,url:u})}catch(d){d.name!=="AbortError"&&console.error("Error sharing:",d)}else c(u,"member")};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-xl w-full p-4 sm:p-7 relative overflow-hidden text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsxs("div",{className:"text-center mb-5 sm:mb-6",children:[l.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-emerald-50 dark:bg-emerald-500/10 border border-emerald-200 dark:border-emerald-500/30 rounded-2xl mx-auto flex items-center justify-center mb-2.5 text-emerald-600 dark:text-emerald-400",children:l.jsx(_o,{size:22})}),l.jsx("h2",{className:"text-base sm:text-lg md:text-xl font-bold text-slate-900 dark:text-white tracking-tight",children:n("boardCreatedTitle")}),l.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400 mt-1",children:[n("boardName"),": ",l.jsx("span",{className:"font-semibold text-indigo-600 dark:text-emerald-400",children:e.title})]})]}),l.jsxs("div",{className:"space-y-3.5 text-xs",children:[l.jsxs("div",{className:"bg-amber-50/70 dark:bg-slate-950/70 border border-amber-200 dark:border-amber-500/30 p-3.5 sm:p-4 rounded-xl",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2",children:[l.jsxs("span",{className:"font-semibold text-amber-800 dark:text-amber-400 flex items-center gap-1.5 text-xs",children:[l.jsx(Op,{size:14,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsx("span",{children:n("adminLinkTitle")})]}),l.jsx("span",{className:"text-[9px] sm:text-[10px] font-semibold bg-amber-100 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300 border border-amber-300 dark:border-amber-500/30 px-2 py-0.5 rounded-full",children:n("adminLinkWarning")})]}),l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 mt-2",children:[l.jsx("input",{type:"text",readOnly:!0,value:a,className:"bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 text-slate-800 dark:text-slate-300 font-mono text-[11px] sm:text-xs p-2 sm:p-2.5 rounded-lg flex-1 select-all outline-none truncate"}),l.jsxs("button",{onClick:()=>c(a,"admin"),className:`btn-modern ${r?"bg-emerald-500 text-slate-950":"btn-modern-gold"} py-2 px-2.5 sm:px-3 text-xs shrink-0`,children:[r?l.jsx(ml,{size:13}):l.jsx(gl,{size:13}),l.jsx("span",{children:n(r?"copied":"copy")})]})]}),l.jsxs("p",{className:"text-[10px] sm:text-[11px] text-amber-800 dark:text-amber-300/80 mt-2 flex items-center gap-1",children:[l.jsx(Ro,{size:12,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsx("span",{children:n("adminLinkSavedNote")})]})]}),l.jsxs("div",{className:"bg-emerald-50/70 dark:bg-slate-950/70 border border-emerald-200 dark:border-emerald-500/30 p-3.5 sm:p-4 rounded-xl",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2",children:[l.jsxs("span",{className:"font-semibold text-emerald-800 dark:text-emerald-400 flex items-center gap-1.5 text-xs",children:[l.jsx(Up,{size:14,className:"text-emerald-600 dark:text-emerald-400 shrink-0"}),l.jsx("span",{children:n("memberLinkTitle")})]}),l.jsx("span",{className:"text-[9px] sm:text-[10px] font-semibold bg-emerald-100 dark:bg-emerald-500/15 text-emerald-800 dark:text-emerald-300 border border-emerald-300 dark:border-emerald-500/30 px-2 py-0.5 rounded-full",children:n("memberLinkBadge")})]}),l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 mt-2",children:[l.jsx("input",{type:"text",readOnly:!0,value:u,className:"bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 text-slate-800 dark:text-slate-300 font-mono text-[11px] sm:text-xs p-2 sm:p-2.5 rounded-lg flex-1 select-all outline-none truncate"}),l.jsxs("button",{onClick:()=>c(u,"member"),className:`btn-modern ${i?"bg-emerald-500 text-slate-950":"btn-modern-primary"} py-2 px-2.5 sm:px-3 text-xs shrink-0`,children:[i?l.jsx(ml,{size:13}):l.jsx(gl,{size:13}),l.jsx("span",{children:n(i?"copied":"copy")})]})]}),l.jsx("div",{className:"mt-2.5",children:l.jsxs("button",{onClick:h,className:"btn-modern w-full bg-cyan-50 dark:bg-cyan-500/15 hover:bg-cyan-100 dark:hover:bg-cyan-500/25 text-cyan-800 dark:text-cyan-300 border border-cyan-300 dark:border-cyan-500/40 flex items-center justify-center gap-2 py-2 text-xs font-semibold",children:[l.jsx(Fp,{size:13}),l.jsx("span",{children:n("shareWhatsApp")})]})})]})]}),l.jsx("div",{className:"mt-5 sm:mt-6 flex justify-end",children:l.jsxs("button",{onClick:()=>{V.playClick(),t()},className:"btn-modern-primary w-full sm:w-auto flex items-center justify-center gap-2 text-xs py-2.5 px-6 font-bold shadow-md",children:[l.jsx("span",{children:n("enterBoardBtn")}),l.jsx(hl,{size:15})]})})]})})},Xg=({onOpenBoard:e})=>{const{t}=Rt(),[n,r]=y.useState(""),[s,i]=y.useState(!1),[o,a]=y.useState(null),[u,c]=y.useState(null),[h,d]=y.useState([]);y.useEffect(()=>{d(yr())},[]);const f=async S=>{S.preventDefault(),V.playClick(),i(!0),a(null);try{const m=await Vg(n.trim()||"Sprint Agile Board");c(m),$p({id:m.id,title:m.title,role:"admin",key:m.adminKey}),d(yr())}catch(m){a(m.message||"Failed to create board"),V.playLock()}finally{i(!1)}},k=S=>{V.playClick();let m="";S.url&&S.url.includes("#")?m="#"+S.url.split("#")[1]:S.key&&(m=S.role==="admin"?`#admin=${S.key}`:`#member=${S.key}`),e(S.id,m)},N=(S,m)=>{S.stopPropagation(),V.playClick(),Ig(m),d(yr())},w=()=>{u&&(window.location.hash=`admin=${u.adminKey}`,e(u.id,`#admin=${u.adminKey}`))};return l.jsxs("div",{className:"max-w-4xl mx-auto px-4 py-8 md:py-14",children:[l.jsxs("div",{className:"text-center mb-10 md:mb-12",children:[l.jsxs("div",{className:"inline-flex items-center gap-2 bg-indigo-50 dark:bg-indigo-500/10 border border-indigo-200 dark:border-indigo-500/25 text-indigo-700 dark:text-indigo-300 text-xs px-3.5 py-1.5 rounded-full mb-4 shadow-sm",children:[l.jsx(_o,{size:14,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{className:"font-semibold tracking-wide",children:t("heroBadge")})]}),l.jsxs("h1",{className:"text-3xl md:text-5xl font-extrabold text-slate-900 dark:text-white tracking-tight mb-4 leading-tight",children:["Taut",l.jsx("span",{className:"text-indigo-600 dark:text-indigo-400",children:"Kan"})," ",l.jsx("br",{}),l.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 via-purple-600 to-cyan-600 dark:from-indigo-400 dark:via-purple-300 dark:to-cyan-400 text-2xl md:text-4xl font-bold",children:t("heroTitle")})]}),l.jsx("p",{className:"text-slate-600 dark:text-slate-300 text-sm md:text-base max-w-xl mx-auto leading-relaxed",children:t("heroSubtitle")})]}),l.jsxs("div",{className:"card-kanban p-6 md:p-8 mb-10 relative overflow-hidden",children:[l.jsx("div",{className:"absolute -top-12 -right-12 w-48 h-48 bg-indigo-500/10 rounded-full blur-3xl pointer-events-none"}),l.jsxs("h2",{className:"text-base md:text-lg font-bold text-slate-900 dark:text-white mb-4 flex items-center gap-2.5",children:[l.jsx(Pp,{size:20,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:t("createBoardHeader")})]}),o&&l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-950/70 border border-rose-200 dark:border-rose-500/50 p-3.5 mb-5 text-xs text-rose-700 dark:text-rose-200 rounded-lg flex items-center gap-2.5",children:[l.jsx(Ro,{size:16,className:"text-rose-600 dark:text-rose-400 shrink-0"}),l.jsx("span",{children:o})]}),l.jsxs("form",{onSubmit:f,className:"space-y-4",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-2",children:t("boardTitleLabel")}),l.jsx("input",{type:"text",value:n,onChange:S=>r(S.target.value),placeholder:t("boardTitlePlaceholder"),className:"w-full bg-slate-50 dark:bg-[#080c18] border border-slate-300 dark:border-slate-800 focus:border-indigo-500 text-slate-900 dark:text-white text-sm p-3.5 rounded-lg outline-none transition-colors"})]}),l.jsx("div",{className:"pt-2",children:l.jsx("button",{type:"submit",disabled:s,className:"btn-modern-primary w-full py-3.5 text-sm flex items-center justify-center gap-2 font-bold shadow-md shadow-indigo-600/25",children:s?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:t("creatingBoardBtn")})]}):l.jsxs(l.Fragment,{children:[l.jsx(Bp,{size:16}),l.jsx("span",{children:t("createBoardBtn")}),l.jsx(hl,{size:16})]})})})]}),l.jsxs("div",{className:"mt-4 flex flex-wrap items-center justify-between text-xs text-slate-500 dark:text-slate-400 gap-2",children:[l.jsxs("span",{className:"flex items-center gap-1",children:["🛡️ ",t("rateLimitNote")]}),l.jsxs("span",{className:"flex items-center gap-1",children:["🗝️ ",t("rbacNote")]})]})]}),h.length>0&&l.jsxs("div",{className:"card-kanban p-6",children:[l.jsxs("div",{className:"flex items-center justify-between mb-4",children:[l.jsxs("h3",{className:"text-sm md:text-base font-bold text-slate-900 dark:text-slate-200 flex items-center gap-2",children:[l.jsx(Ip,{size:16,className:"text-indigo-600 dark:text-indigo-400"}),l.jsxs("span",{children:[t("savedBoardsTitle")," (",h.length,")"]})]}),l.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:t("savedBoardsSub")})]}),l.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:h.map(S=>l.jsxs("div",{onClick:()=>k(S),className:"bg-slate-50 dark:bg-[#0b1020]/70 hover:bg-slate-100 dark:hover:bg-[#121830] border border-slate-200 dark:border-slate-800 p-3.5 rounded-lg transition-all cursor-pointer flex items-center justify-between group",children:[l.jsxs("div",{className:"min-w-0 flex-1 pr-2",children:[l.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[l.jsx("span",{className:`text-[10px] font-semibold px-2 py-0.5 rounded-full border ${S.role==="admin"?"bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-300 border-amber-200 dark:border-amber-500/30":"bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border-indigo-200 dark:border-indigo-500/30"}`,children:S.role==="admin"?`👑 ${t("superadmin")}`:`👤 ${t("member")}`}),l.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 truncate",children:new Date(S.lastVisited).toLocaleDateString()})]}),l.jsx("h4",{className:"text-xs font-bold text-slate-900 dark:text-slate-200 group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors truncate",children:S.title})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("button",{onClick:m=>N(m,S.id),className:"text-slate-400 hover:text-rose-600 dark:hover:text-rose-400 p-1.5 transition-colors",title:t("removeSaved"),children:l.jsx(Os,{size:14})}),l.jsx(hl,{size:14,className:"text-slate-400 group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors"})]})]},S.id))})]}),u&&l.jsx(qp,{boardData:u,onEnterBoard:w})]})};function Jg(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Mo=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Rr(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Ru(e){return"nodeType"in e}function it(e){var t,n;return e?Rr(e)?e:Ru(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function _u(e){const{Document:t}=it(e);return e instanceof t}function Bs(e){return Rr(e)?!1:e instanceof it(e).HTMLElement}function Yp(e){return e instanceof it(e).SVGElement}function _r(e){return e?Rr(e)?e.document:Ru(e)?_u(e)?e:Bs(e)||Yp(e)?e.ownerDocument:document:document:document}const Bt=Mo?y.useLayoutEffect:y.useEffect;function Ao(e){const t=y.useRef(e);return Bt(()=>{t.current=e}),y.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=y.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function Rs(e,t){t===void 0&&(t=[e]);const n=y.useRef(e);return Bt(()=>{n.current!==e&&(n.current=e)},t),n}function zs(e,t){const n=y.useRef();return y.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function io(e){const t=Ao(e),n=y.useRef(null),r=y.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function oo(e){const t=y.useRef();return y.useEffect(()=>{t.current=e},[e]),t.current}let ha={};function Fs(e,t){return y.useMemo(()=>{if(t)return t;const n=ha[e]==null?0:ha[e]+1;return ha[e]=n,e+"-"+n},[e,t])}function Xp(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const a=Object.entries(o);for(const[u,c]of a){const h=i[u];h!=null&&(i[u]=h+e*c)}return i},{...t})}}const xr=Xp(1),_s=Xp(-1);function ey(e){return"clientX"in e&&"clientY"in e}function Do(e){if(!e)return!1;const{KeyboardEvent:t}=it(e.target);return t&&e instanceof t}function ty(e){if(!e)return!1;const{TouchEvent:t}=it(e.target);return t&&e instanceof t}function ao(e){if(ty(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return ey(e)?{x:e.clientX,y:e.clientY}:null}const on=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[on.Translate.toString(e),on.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),Zc="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function ny(e){return e.matches(Zc)?e:e.querySelector(Zc)}const ry={display:"none"};function sy(e){let{id:t,value:n}=e;return Ne.createElement("div",{id:t,style:ry},n)}function iy(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Ne.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function oy(){const[e,t]=y.useState("");return{announce:y.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Jp=y.createContext(null);function ay(e){const t=y.useContext(Jp);y.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function ly(){const[e]=y.useState(()=>new Set),t=y.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[y.useCallback(r=>{let{type:s,event:i}=r;e.forEach(o=>{var a;return(a=o[s])==null?void 0:a.call(o,i)})},[e]),t]}const uy={draggable:` To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel. - `},cy={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function dy(e){let{announcements:t=cy,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=uy}=e;const{announce:i,announcement:o}=oy(),a=Fs("DndLiveRegion"),[u,c]=y.useState(!1);if(y.useEffect(()=>{c(!0)},[]),ay(y.useMemo(()=>({onDragStart(d){let{active:f}=d;i(t.onDragStart({active:f}))},onDragMove(d){let{active:f,over:k}=d;t.onDragMove&&i(t.onDragMove({active:f,over:k}))},onDragOver(d){let{active:f,over:k}=d;i(t.onDragOver({active:f,over:k}))},onDragEnd(d){let{active:f,over:k}=d;i(t.onDragEnd({active:f,over:k}))},onDragCancel(d){let{active:f,over:k}=d;i(t.onDragCancel({active:f,over:k}))}}),[i,t])),!u)return null;const h=Ne.createElement(Ne.Fragment,null,Ne.createElement(sy,{id:r,value:s.draggable}),Ne.createElement(iy,{id:a,announcement:o}));return n?cr.createPortal(h,n):h}var Be;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(Be||(Be={}));function uo(){}function ed(e,t){return y.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function fy(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const zt=Object.freeze({x:0,y:0});function py(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function hy(e,t){const n=lo(e);if(!n)return"0 0";const r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}function my(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function gy(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function td(e){let{left:t,top:n,height:r,width:s}=e;return[{x:t,y:n},{x:t+s,y:n},{x:t,y:n+r},{x:t+s,y:n+r}]}function Zp(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}const eh=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=td(t),i=[];for(const o of r){const{id:a}=o,u=n.get(a);if(u){const c=td(u),h=s.reduce((f,k,N)=>f+py(c[N],k),0),d=Number((h/4).toFixed(4));i.push({id:a,data:{droppableContainer:o,value:d}})}}return i.sort(my)};function yy(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),o=s-r,a=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:o}=i,a=n.get(o);if(a){const u=yy(a,t);u>0&&s.push({id:o,data:{droppableContainer:i,value:u}})}}return s.sort(gy)};function vy(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function th(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:zt}function ky(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...o,top:o.top+e*a.y,bottom:o.bottom+e*a.y,left:o.left+e*a.x,right:o.right+e*a.x}),{...n})}}const by=ky(1);function nh(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function wy(e,t,n){const r=nh(t);if(!r)return e;const{scaleX:s,scaleY:i,x:o,y:a}=r,u=e.left-o-(1-s)*parseFloat(n),c=e.top-a-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),h=s?e.width/s:e.width,d=i?e.height/i:e.height;return{width:h,height:d,top:c,right:u+h,bottom:c+d,left:u}}const Sy={ignoreTransform:!1};function Lr(e,t){t===void 0&&(t=Sy);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:c,transformOrigin:h}=it(e).getComputedStyle(e);c&&(n=wy(n,c,h))}const{top:r,left:s,width:i,height:o,bottom:a,right:u}=n;return{top:r,left:s,width:i,height:o,bottom:a,right:u}}function nd(e){return Lr(e,{ignoreTransform:!0})}function Ny(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Cy(e,t){return t===void 0&&(t=it(e).getComputedStyle(e)),t.position==="fixed"}function Ey(e,t){t===void 0&&(t=it(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function Po(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(_u(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Bs(s)||Yp(s)||n.includes(s))return n;const i=it(e).getComputedStyle(s);return s!==e&&Ey(s,i)&&n.push(s),Cy(s,i)?n:r(s.parentNode)}return e?r(e):n}function rh(e){const[t]=Po(e,1);return t??null}function ga(e){return!Ao||!e?null:Rr(e)?e:Ru(e)?_u(e)||e===_r(e).scrollingElement?window:Bs(e)?e:null:null}function sh(e){return Rr(e)?e.scrollX:e.scrollLeft}function ih(e){return Rr(e)?e.scrollY:e.scrollTop}function Sl(e){return{x:sh(e),y:ih(e)}}var He;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(He||(He={}));function oh(e){return!Ao||!e?!1:e===document.scrollingElement}function ah(e){const t={x:0,y:0},n=oh(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:o,isRight:a,maxScroll:r,minScroll:t}}const Ty={x:.2,y:.2};function jy(e,t,n,r,s){let{top:i,left:o,right:a,bottom:u}=n;r===void 0&&(r=10),s===void 0&&(s=Ty);const{isTop:c,isBottom:h,isLeft:d,isRight:f}=ah(e),k={x:0,y:0},N={x:0,y:0},w={height:t.height*s.y,width:t.width*s.x};return!c&&i<=t.top+w.height?(k.y=He.Backward,N.y=r*Math.abs((t.top+w.height-i)/w.height)):!h&&u>=t.bottom-w.height&&(k.y=He.Forward,N.y=r*Math.abs((t.bottom-w.height-u)/w.height)),!f&&a>=t.right-w.width?(k.x=He.Forward,N.x=r*Math.abs((t.right-w.width-a)/w.width)):!d&&o<=t.left+w.width&&(k.x=He.Backward,N.x=r*Math.abs((t.left+w.width-o)/w.width)),{direction:k,speed:N}}function Ry(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:o}=window;return{top:0,left:0,right:i,bottom:o,width:i,height:o}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function lh(e){return e.reduce((t,n)=>xr(t,Sl(n)),zt)}function _y(e){return e.reduce((t,n)=>t+sh(n),0)}function Ly(e){return e.reduce((t,n)=>t+ih(n),0)}function uh(e,t){if(t===void 0&&(t=Lr),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);rh(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const My=[["x",["left","right"],_y],["y",["top","bottom"],Ly]];class Lu{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Po(n),s=lh(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,o,a]of My)for(const u of o)Object.defineProperty(this,u,{get:()=>{const c=a(r),h=s[i]-c;return this.rect[u]+h},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class as{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function Ay(e){const{EventTarget:t}=it(e);return e instanceof t?e:_r(e)}function ya(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var bt;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(bt||(bt={}));function rd(e){e.preventDefault()}function Dy(e){e.stopPropagation()}var le;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(le||(le={}));const ch={start:[le.Space,le.Enter],cancel:[le.Esc],end:[le.Space,le.Enter,le.Tab]},Iy=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case le.Right:return{...n,x:n.x+25};case le.Left:return{...n,x:n.x-25};case le.Down:return{...n,y:n.y+25};case le.Up:return{...n,y:n.y-25}}};class Mu{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new as(_r(n)),this.windowListeners=new as(it(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(bt.Resize,this.handleCancel),this.windowListeners.add(bt.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(bt.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&uh(r),n(zt)}handleKeyDown(t){if(Io(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=ch,coordinateGetter:o=Iy,scrollBehavior:a="smooth"}=s,{code:u}=t;if(i.end.includes(u)){this.handleEnd(t);return}if(i.cancel.includes(u)){this.handleCancel(t);return}const{collisionRect:c}=r.current,h=c?{x:c.left,y:c.top}:zt;this.referenceCoordinates||(this.referenceCoordinates=h);const d=o(t,{active:n,context:r.current,currentCoordinates:h});if(d){const f=_s(d,h),k={x:0,y:0},{scrollableAncestors:N}=r.current;for(const w of N){const S=t.code,{isTop:m,isRight:p,isLeft:g,isBottom:b,maxScroll:j,minScroll:R}=ah(w),E=Ry(w),T={x:Math.min(S===le.Right?E.right-E.width/2:E.right,Math.max(S===le.Right?E.left:E.left+E.width/2,d.x)),y:Math.min(S===le.Down?E.bottom-E.height/2:E.bottom,Math.max(S===le.Down?E.top:E.top+E.height/2,d.y))},D=S===le.Right&&!p||S===le.Left&&!g,P=S===le.Down&&!b||S===le.Up&&!m;if(D&&T.x!==d.x){const X=w.scrollLeft+f.x,we=S===le.Right&&X<=j.x||S===le.Left&&X>=R.x;if(we&&!f.y){w.scrollTo({left:X,behavior:a});return}we?k.x=w.scrollLeft-X:k.x=S===le.Right?w.scrollLeft-j.x:w.scrollLeft-R.x,k.x&&w.scrollBy({left:-k.x,behavior:a});break}else if(P&&T.y!==d.y){const X=w.scrollTop+f.y,we=S===le.Down&&X<=j.y||S===le.Up&&X>=R.y;if(we&&!f.x){w.scrollTo({top:X,behavior:a});return}we?k.y=w.scrollTop-X:k.y=S===le.Down?w.scrollTop-j.y:w.scrollTop-R.y,k.y&&w.scrollBy({top:-k.y,behavior:a});break}}this.handleMove(t,xr(_s(d,this.referenceCoordinates),k))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Mu.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=ch,onActivation:s}=t,{active:i}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const a=i.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function sd(e){return!!(e&&"distance"in e)}function id(e){return!!(e&&"delay"in e)}class Au{constructor(t,n,r){var s;r===void 0&&(r=Ay(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:o}=i;this.props=t,this.events=n,this.document=_r(o),this.documentListeners=new as(this.document),this.listeners=new as(r),this.windowListeners=new as(it(o)),this.initialCoordinates=(s=lo(i))!=null?s:zt,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(bt.Resize,this.handleCancel),this.windowListeners.add(bt.DragStart,rd),this.windowListeners.add(bt.VisibilityChange,this.handleCancel),this.windowListeners.add(bt.ContextMenu,rd),this.documentListeners.add(bt.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(id(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(sd(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(bt.Click,Dy,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(bt.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:o,options:{activationConstraint:a}}=i;if(!s)return;const u=(n=lo(t))!=null?n:zt,c=_s(s,u);if(!r&&a){if(sd(a)){if(a.tolerance!=null&&ya(c,a.tolerance))return this.handleCancel();if(ya(c,a.distance))return this.handleStart()}if(id(a)&&ya(c,a.tolerance))return this.handleCancel();this.handlePending(a,c);return}t.cancelable&&t.preventDefault(),o(u)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===le.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Py={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Du extends Au{constructor(t){const{event:n}=t,r=_r(n.target);super(t,Py,r)}}Du.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const Oy={move:{name:"mousemove"},end:{name:"mouseup"}};var Nl;(function(e){e[e.RightClick=2]="RightClick"})(Nl||(Nl={}));class By extends Au{constructor(t){super(t,Oy,_r(t.event.target))}}By.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Nl.RightClick?!1:(r==null||r({event:n}),!0)}}];const xa={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class zy extends Au{constructor(t){super(t,xa)}static setup(){return window.addEventListener(xa.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(xa.move.name,t)};function t(){}}}zy.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var ls;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(ls||(ls={}));var co;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(co||(co={}));function Fy(e){let{acceleration:t,activator:n=ls.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:o=5,order:a=co.TreeOrder,pointerCoordinates:u,scrollableAncestors:c,scrollableAncestorRects:h,delta:d,threshold:f}=e;const k=$y({delta:d,disabled:!i}),[N,w]=Zg(),S=y.useRef({x:0,y:0}),m=y.useRef({x:0,y:0}),p=y.useMemo(()=>{switch(n){case ls.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case ls.DraggableRect:return s}},[n,s,u]),g=y.useRef(null),b=y.useCallback(()=>{const R=g.current;if(!R)return;const E=S.current.x*m.current.x,T=S.current.y*m.current.y;R.scrollBy(E,T)},[]),j=y.useMemo(()=>a===co.TreeOrder?[...c].reverse():c,[a,c]);y.useEffect(()=>{if(!i||!c.length||!p){w();return}for(const R of j){if((r==null?void 0:r(R))===!1)continue;const E=c.indexOf(R),T=h[E];if(!T)continue;const{direction:D,speed:P}=jy(R,T,p,t,f);for(const X of["x","y"])k[X][D[X]]||(P[X]=0,D[X]=0);if(P.x>0||P.y>0){w(),g.current=R,N(b,o),S.current=P,m.current=D;return}}S.current={x:0,y:0},m.current={x:0,y:0},w()},[t,b,r,w,i,o,JSON.stringify(p),JSON.stringify(k),N,c,j,h,JSON.stringify(f)])}const Uy={x:{[He.Backward]:!1,[He.Forward]:!1},y:{[He.Backward]:!1,[He.Forward]:!1}};function $y(e){let{delta:t,disabled:n}=e;const r=ao(t);return zs(s=>{if(n||!r||!s)return Uy;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[He.Backward]:s.x[He.Backward]||i.x===-1,[He.Forward]:s.x[He.Forward]||i.x===1},y:{[He.Backward]:s.y[He.Backward]||i.y===-1,[He.Forward]:s.y[He.Forward]||i.y===1}}},[n,t,r])}function Hy(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return zs(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function Vy(e,t){return y.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...i]},[]),[e,t])}var Ls;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ls||(Ls={}));var Cl;(function(e){e.Optimized="optimized"})(Cl||(Cl={}));const od=new Map;function Wy(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,o]=y.useState(null),{frequency:a,measure:u,strategy:c}=s,h=y.useRef(e),d=S(),f=Rs(d),k=y.useCallback(function(m){m===void 0&&(m=[]),!f.current&&o(p=>p===null?m:p.concat(m.filter(g=>!p.includes(g))))},[f]),N=y.useRef(null),w=zs(m=>{if(d&&!n)return od;if(!m||m===od||h.current!==e||i!=null){const p=new Map;for(let g of e){if(!g)continue;if(i&&i.length>0&&!i.includes(g.id)&&g.rect.current){p.set(g.id,g.rect.current);continue}const b=g.node.current,j=b?new Lu(u(b),b):null;g.rect.current=j,j&&p.set(g.id,j)}return p}return m},[e,i,n,d,u]);return y.useEffect(()=>{h.current=e},[e]),y.useEffect(()=>{d||k()},[n,d]),y.useEffect(()=>{i&&i.length>0&&o(null)},[JSON.stringify(i)]),y.useEffect(()=>{d||typeof a!="number"||N.current!==null||(N.current=setTimeout(()=>{k(),N.current=null},a))},[a,d,k,...r]),{droppableRects:w,measureDroppableContainers:k,measuringScheduled:i!=null};function S(){switch(c){case Ls.Always:return!1;case Ls.BeforeDragging:return n;default:return!n}}}function Iu(e,t){return zs(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Ky(e,t){return Iu(e,t)}function Gy(e){let{callback:t,disabled:n}=e;const r=Do(t),s=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return y.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Oo(e){let{callback:t,disabled:n}=e;const r=Do(t),s=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return y.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Qy(e){return new Lu(Lr(e),e)}function ad(e,t,n){t===void 0&&(t=Qy);const[r,s]=y.useState(null);function i(){s(u=>{if(!e)return null;if(e.isConnected===!1){var c;return(c=u??n)!=null?c:null}const h=t(e);return JSON.stringify(u)===JSON.stringify(h)?u:h})}const o=Gy({callback(u){if(e)for(const c of u){const{type:h,target:d}=c;if(h==="childList"&&d instanceof HTMLElement&&d.contains(e)){i();break}}}}),a=Oo({callback:i});return Bt(()=>{i(),e?(a==null||a.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(a==null||a.disconnect(),o==null||o.disconnect())},[e]),r}function qy(e){const t=Iu(e);return th(e,t)}const ld=[];function Yy(e){const t=y.useRef(e),n=zs(r=>e?r&&r!==ld&&e&&t.current&&e.parentNode===t.current.parentNode?r:Po(e):ld,[e]);return y.useEffect(()=>{t.current=e},[e]),n}function Xy(e){const[t,n]=y.useState(null),r=y.useRef(e),s=y.useCallback(i=>{const o=ga(i.target);o&&n(a=>a?(a.set(o,Sl(o)),new Map(a)):null)},[]);return y.useEffect(()=>{const i=r.current;if(e!==i){o(i);const a=e.map(u=>{const c=ga(u);return c?(c.addEventListener("scroll",s,{passive:!0}),[c,Sl(c)]):null}).filter(u=>u!=null);n(a.length?new Map(a):null),r.current=e}return()=>{o(e),o(i)};function o(a){a.forEach(u=>{const c=ga(u);c==null||c.removeEventListener("scroll",s)})}},[s,e]),y.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,o)=>xr(i,o),zt):lh(e):zt,[e,t])}function ud(e,t){t===void 0&&(t=[]);const n=y.useRef(null);return y.useEffect(()=>{n.current=null},t),y.useEffect(()=>{const r=e!==zt;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?_s(e,n.current):zt}function Jy(e){y.useEffect(()=>{if(!Ao)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Zy(e,t){return y.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=o=>{i(o,t)},n},{}),[e,t])}function dh(e){return y.useMemo(()=>e?Ny(e):null,[e])}const cd=[];function ex(e,t){t===void 0&&(t=Lr);const[n]=e,r=dh(n?it(n):null),[s,i]=y.useState(cd);function o(){i(()=>e.length?e.map(u=>oh(u)?r:new Lu(t(u),u)):cd)}const a=Oo({callback:o});return Bt(()=>{a==null||a.disconnect(),o(),e.forEach(u=>a==null?void 0:a.observe(u))},[e]),s}function fh(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Bs(t)?t:e}function tx(e){let{measure:t}=e;const[n,r]=y.useState(null),s=y.useCallback(c=>{for(const{target:h}of c)if(Bs(h)){r(d=>{const f=t(h);return d?{...d,width:f.width,height:f.height}:f});break}},[t]),i=Oo({callback:s}),o=y.useCallback(c=>{const h=fh(c);i==null||i.disconnect(),h&&(i==null||i.observe(h)),r(h?t(h):null)},[t,i]),[a,u]=oo(o);return y.useMemo(()=>({nodeRef:a,rect:n,setRef:u}),[n,a,u])}const nx=[{sensor:Du,options:{}},{sensor:Mu,options:{}}],rx={current:{}},Ci={draggable:{measure:nd},droppable:{measure:nd,strategy:Ls.WhileDragging,frequency:Cl.Optimized},dragOverlay:{measure:Lr}};class us extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const sx={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new us,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:uo},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Ci,measureDroppableContainers:uo,windowRect:null,measuringScheduled:!1},ph={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:uo,draggableNodes:new Map,over:null,measureDroppableContainers:uo},Us=y.createContext(ph),hh=y.createContext(sx);function ix(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new us}}}function ox(e,t){switch(t.type){case Be.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Be.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Be.DragEnd:case Be.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Be.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new us(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case Be.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new us(e.droppable.containers);return o.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:o}}}case Be.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new us(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function ax(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=y.useContext(Us),i=ao(r),o=ao(n==null?void 0:n.id);return y.useEffect(()=>{if(!t&&!r&&i&&o!=null){if(!Io(i)||document.activeElement===i.target)return;const a=s.get(o);if(!a)return;const{activatorNode:u,node:c}=a;if(!u.current&&!c.current)return;requestAnimationFrame(()=>{for(const h of[u.current,c.current]){if(!h)continue;const d=ny(h);if(d){d.focus();break}}})}},[r,t,s,o,i]),null}function mh(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function lx(e){return y.useMemo(()=>({draggable:{...Ci.draggable,...e==null?void 0:e.draggable},droppable:{...Ci.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Ci.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function ux(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=y.useRef(!1),{x:o,y:a}=typeof s=="boolean"?{x:s,y:s}:s;Bt(()=>{if(!o&&!a||!t){i.current=!1;return}if(i.current||!r)return;const c=t==null?void 0:t.node.current;if(!c||c.isConnected===!1)return;const h=n(c),d=th(h,r);if(o||(d.x=0),a||(d.y=0),i.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const f=rh(c);f&&f.scrollBy({top:d.y,left:d.x})}},[t,o,a,r,n])}const Bo=y.createContext({...zt,scaleX:1,scaleY:1});var mn;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(mn||(mn={}));const cx=y.memo(function(t){var n,r,s,i;let{id:o,accessibility:a,autoScroll:u=!0,children:c,sensors:h=nx,collisionDetection:d=xy,measuring:f,modifiers:k,...N}=t;const w=y.useReducer(ox,void 0,ix),[S,m]=w,[p,g]=ly(),[b,j]=y.useState(mn.Uninitialized),R=b===mn.Initialized,{draggable:{active:E,nodes:T,translate:D},droppable:{containers:P}}=S,X=E!=null?T.get(E):null,we=y.useRef({initial:null,translated:null}),me=y.useMemo(()=>{var qe;return E!=null?{id:E,data:(qe=X==null?void 0:X.data)!=null?qe:rx,rect:we}:null},[E,X]),Re=y.useRef(null),[et,Fe]=y.useState(null),[ge,A]=y.useState(null),K=Rs(N,Object.values(N)),v=Fs("DndDescribedBy",o),x=y.useMemo(()=>P.getEnabled(),[P]),_=lx(f),{droppableRects:B,measureDroppableContainers:W,measuringScheduled:q}=Wy(x,{dragging:R,dependencies:[D.x,D.y],config:_.droppable}),F=Hy(T,E),$=y.useMemo(()=>ge?lo(ge):null,[ge]),J=zh(),ne=Ky(F,_.draggable.measure);ux({activeNode:E!=null?T.get(E):null,config:J.layoutShiftCompensation,initialRect:ne,measure:_.draggable.measure});const Q=ad(F,_.draggable.measure,ne),ae=ad(F?F.parentElement:null),se=y.useRef({activatorEvent:null,active:null,activeNode:F,collisionRect:null,collisions:null,droppableRects:B,draggableNodes:T,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),he=P.getNodeFor((n=se.current.over)==null?void 0:n.id),ee=tx({measure:_.dragOverlay.measure}),ve=(r=ee.nodeRef.current)!=null?r:F,_e=R?(s=ee.rect)!=null?s:Q:null,Ue=!!(ee.nodeRef.current&&ee.rect),I=qy(Ue?null:Q),U=dh(ve?it(ve):null),z=Yy(R?he??F:null),oe=ex(z),C=mh(k,{transform:{x:D.x-I.x,y:D.y-I.y,scaleX:1,scaleY:1},activatorEvent:ge,active:me,activeNodeRect:Q,containerNodeRect:ae,draggingNodeRect:_e,over:se.current.over,overlayNodeRect:ee.rect,scrollableAncestors:z,scrollableAncestorRects:oe,windowRect:U}),H=$?xr($,D):null,Y=Xy(z),M=ud(Y),G=ud(Y,[Q]),te=xr(C,M),ce=_e?by(_e,C):null,Z=me&&ce?d({active:me,collisionRect:ce,droppableRects:B,droppableContainers:x,pointerCoordinates:H}):null,Se=Zp(Z,"id"),[de,ln]=y.useState(null),In=Ue?C:xr(C,G),Ar=vy(In,(i=de==null?void 0:de.rect)!=null?i:null,Q),Ae=y.useRef(null),De=y.useCallback((qe,dt)=>{let{sensor:ft,options:un}=dt;if(Re.current==null)return;const kt=T.get(Re.current);if(!kt)return;const pt=qe.nativeEvent,Ft=new ft({active:Re.current,activeNode:kt,event:pt,options:un,context:se,onAbort(We){if(!T.get(We))return;const{onDragAbort:Ut}=K.current,qt={id:We};Ut==null||Ut(qt),p({type:"onDragAbort",event:qt})},onPending(We,cn,Ut,qt){if(!T.get(We))return;const{onDragPending:Pr}=K.current,dn={id:We,constraint:cn,initialCoordinates:Ut,offset:qt};Pr==null||Pr(dn),p({type:"onDragPending",event:dn})},onStart(We){const cn=Re.current;if(cn==null)return;const Ut=T.get(cn);if(!Ut)return;const{onDragStart:qt}=K.current,Ir={activatorEvent:pt,active:{id:cn,data:Ut.data,rect:we}};cr.unstable_batchedUpdates(()=>{qt==null||qt(Ir),j(mn.Initializing),m({type:Be.DragStart,initialCoordinates:We,active:cn}),p({type:"onDragStart",event:Ir}),Fe(Ae.current),A(pt)})},onMove(We){m({type:Be.DragMove,coordinates:We})},onEnd:Yn(Be.DragEnd),onCancel:Yn(Be.DragCancel)});Ae.current=Ft;function Yn(We){return async function(){const{active:Ut,collisions:qt,over:Ir,scrollAdjustedTranslate:Pr}=se.current;let dn=null;if(Ut&&Pr){const{cancelDrop:Or}=K.current;dn={activatorEvent:pt,active:Ut,collisions:qt,delta:Pr,over:Ir},We===Be.DragEnd&&typeof Or=="function"&&await Promise.resolve(Or(dn))&&(We=Be.DragCancel)}Re.current=null,cr.unstable_batchedUpdates(()=>{m({type:We}),j(mn.Uninitialized),ln(null),Fe(null),A(null),Ae.current=null;const Or=We===Be.DragEnd?"onDragEnd":"onDragCancel";if(dn){const Uo=K.current[Or];Uo==null||Uo(dn),p({type:Or,event:dn})}})}}},[T]),Dr=y.useCallback((qe,dt)=>(ft,un)=>{const kt=ft.nativeEvent,pt=T.get(un);if(Re.current!==null||!pt||kt.dndKit||kt.defaultPrevented)return;const Ft={active:pt};qe(ft,dt.options,Ft)===!0&&(kt.dndKit={capturedBy:dt.sensor},Re.current=un,De(ft,dt))},[T,De]),$u=Vy(h,Dr);Jy(h),Bt(()=>{Q&&b===mn.Initializing&&j(mn.Initialized)},[Q,b]),y.useEffect(()=>{const{onDragMove:qe}=K.current,{active:dt,activatorEvent:ft,collisions:un,over:kt}=se.current;if(!dt||!ft)return;const pt={active:dt,activatorEvent:ft,collisions:un,delta:{x:te.x,y:te.y},over:kt};cr.unstable_batchedUpdates(()=>{qe==null||qe(pt),p({type:"onDragMove",event:pt})})},[te.x,te.y]),y.useEffect(()=>{const{active:qe,activatorEvent:dt,collisions:ft,droppableContainers:un,scrollAdjustedTranslate:kt}=se.current;if(!qe||Re.current==null||!dt||!kt)return;const{onDragOver:pt}=K.current,Ft=un.get(Se),Yn=Ft&&Ft.rect.current?{id:Ft.id,rect:Ft.rect.current,data:Ft.data,disabled:Ft.disabled}:null,We={active:qe,activatorEvent:dt,collisions:ft,delta:{x:kt.x,y:kt.y},over:Yn};cr.unstable_batchedUpdates(()=>{ln(Yn),pt==null||pt(We),p({type:"onDragOver",event:We})})},[Se]),Bt(()=>{se.current={activatorEvent:ge,active:me,activeNode:F,collisionRect:ce,collisions:Z,droppableRects:B,draggableNodes:T,draggingNode:ve,draggingNodeRect:_e,droppableContainers:P,over:de,scrollableAncestors:z,scrollAdjustedTranslate:te},we.current={initial:_e,translated:ce}},[me,F,Z,ce,T,ve,_e,B,P,de,z,te]),Fy({...J,delta:D,draggingRect:ce,pointerCoordinates:H,scrollableAncestors:z,scrollableAncestorRects:oe});const Oh=y.useMemo(()=>({active:me,activeNode:F,activeNodeRect:Q,activatorEvent:ge,collisions:Z,containerNodeRect:ae,dragOverlay:ee,draggableNodes:T,droppableContainers:P,droppableRects:B,over:de,measureDroppableContainers:W,scrollableAncestors:z,scrollableAncestorRects:oe,measuringConfiguration:_,measuringScheduled:q,windowRect:U}),[me,F,Q,ge,Z,ae,ee,T,P,B,de,W,z,oe,_,q,U]),Bh=y.useMemo(()=>({activatorEvent:ge,activators:$u,active:me,activeNodeRect:Q,ariaDescribedById:{draggable:v},dispatch:m,draggableNodes:T,over:de,measureDroppableContainers:W}),[ge,$u,me,Q,m,v,T,de,W]);return Ne.createElement(Jp.Provider,{value:g},Ne.createElement(Us.Provider,{value:Bh},Ne.createElement(hh.Provider,{value:Oh},Ne.createElement(Bo.Provider,{value:Ar},c)),Ne.createElement(ax,{disabled:(a==null?void 0:a.restoreFocus)===!1})),Ne.createElement(dy,{...a,hiddenTextDescribedById:v}));function zh(){const qe=(et==null?void 0:et.autoScrollEnabled)===!1,dt=typeof u=="object"?u.enabled===!1:u===!1,ft=R&&!qe&&!dt;return typeof u=="object"?{...u,enabled:ft}:{enabled:ft}}}),dx=y.createContext(null),dd="button",fx="Draggable";function px(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Fs(fx),{activators:o,activatorEvent:a,active:u,activeNodeRect:c,ariaDescribedById:h,draggableNodes:d,over:f}=y.useContext(Us),{role:k=dd,roleDescription:N="draggable",tabIndex:w=0}=s??{},S=(u==null?void 0:u.id)===t,m=y.useContext(S?Bo:dx),[p,g]=oo(),[b,j]=oo(),R=Zy(o,t),E=Rs(n);Bt(()=>(d.set(t,{id:t,key:i,node:p,activatorNode:b,data:E}),()=>{const D=d.get(t);D&&D.key===i&&d.delete(t)}),[d,t]);const T=y.useMemo(()=>({role:k,tabIndex:w,"aria-disabled":r,"aria-pressed":S&&k===dd?!0:void 0,"aria-roledescription":N,"aria-describedby":h.draggable}),[r,k,w,S,N,h.draggable]);return{active:u,activatorEvent:a,activeNodeRect:c,attributes:T,isDragging:S,listeners:r?void 0:R,node:p,over:f,setNodeRef:g,setActivatorNodeRef:j,transform:m}}function gh(){return y.useContext(hh)}const hx="Droppable",mx={timeout:25};function gx(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Fs(hx),{active:o,dispatch:a,over:u,measureDroppableContainers:c}=y.useContext(Us),h=y.useRef({disabled:n}),d=y.useRef(!1),f=y.useRef(null),k=y.useRef(null),{disabled:N,updateMeasurementsFor:w,timeout:S}={...mx,...s},m=Rs(w??r),p=y.useCallback(()=>{if(!d.current){d.current=!0;return}k.current!=null&&clearTimeout(k.current),k.current=setTimeout(()=>{c(Array.isArray(m.current)?m.current:[m.current]),k.current=null},S)},[S]),g=Oo({callback:p,disabled:N||!o}),b=y.useCallback((T,D)=>{g&&(D&&(g.unobserve(D),d.current=!1),T&&g.observe(T))},[g]),[j,R]=oo(b),E=Rs(t);return y.useEffect(()=>{!g||!j.current||(g.disconnect(),d.current=!1,g.observe(j.current))},[j,g]),y.useEffect(()=>(a({type:Be.RegisterDroppable,element:{id:r,key:i,disabled:n,node:j,rect:f,data:E}}),()=>a({type:Be.UnregisterDroppable,key:i,id:r})),[r]),y.useEffect(()=>{n!==h.current.disabled&&(a({type:Be.SetDroppableDisabled,id:r,key:i,disabled:n}),h.current.disabled=n)},[r,i,n,a]),{active:o,rect:f,isOver:(u==null?void 0:u.id)===r,node:j,over:u,setNodeRef:R}}function yx(e){let{animation:t,children:n}=e;const[r,s]=y.useState(null),[i,o]=y.useState(null),a=ao(n);return!n&&!r&&a&&s(a),Bt(()=>{if(!i)return;const u=r==null?void 0:r.key,c=r==null?void 0:r.props.id;if(u==null||c==null){s(null);return}Promise.resolve(t(c,i)).then(()=>{s(null)})},[t,r,i]),Ne.createElement(Ne.Fragment,null,n,r?y.cloneElement(r,{ref:o}):null)}const xx={x:0,y:0,scaleX:1,scaleY:1};function vx(e){let{children:t}=e;return Ne.createElement(Us.Provider,{value:ph},Ne.createElement(Bo.Provider,{value:xx},t))}const kx={position:"fixed",touchAction:"none"},bx=e=>Io(e)?"transform 250ms ease":void 0,wx=y.forwardRef((e,t)=>{let{as:n,activatorEvent:r,adjustScale:s,children:i,className:o,rect:a,style:u,transform:c,transition:h=bx}=e;if(!a)return null;const d=s?c:{...c,scaleX:1,scaleY:1},f={...kx,width:a.width,height:a.height,top:a.top,left:a.left,transform:on.Transform.toString(d),transformOrigin:s&&r?hy(r,a):void 0,transition:typeof h=="function"?h(r):h,...u};return Ne.createElement(n,{className:o,style:f,ref:t},i)}),Sx=e=>t=>{let{active:n,dragOverlay:r}=t;const s={},{styles:i,className:o}=e;if(i!=null&&i.active)for(const[a,u]of Object.entries(i.active))u!==void 0&&(s[a]=n.node.style.getPropertyValue(a),n.node.style.setProperty(a,u));if(i!=null&&i.dragOverlay)for(const[a,u]of Object.entries(i.dragOverlay))u!==void 0&&r.node.style.setProperty(a,u);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(const[u,c]of Object.entries(s))n.node.style.setProperty(u,c);o!=null&&o.active&&n.node.classList.remove(o.active)}},Nx=e=>{let{transform:{initial:t,final:n}}=e;return[{transform:on.Transform.toString(t)},{transform:on.Transform.toString(n)}]},Cx={duration:250,easing:"ease",keyframes:Nx,sideEffects:Sx({styles:{active:{opacity:"0"}}})};function Ex(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:s}=e;return Do((i,o)=>{if(t===null)return;const a=n.get(i);if(!a)return;const u=a.node.current;if(!u)return;const c=fh(o);if(!c)return;const{transform:h}=it(o).getComputedStyle(o),d=nh(h);if(!d)return;const f=typeof t=="function"?t:Tx(t);return uh(u,s.draggable.measure),f({active:{id:i,data:a.data,node:u,rect:s.draggable.measure(u)},draggableNodes:n,dragOverlay:{node:o,rect:s.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:s,transform:d})})}function Tx(e){const{duration:t,easing:n,sideEffects:r,keyframes:s}={...Cx,...e};return i=>{let{active:o,dragOverlay:a,transform:u,...c}=i;if(!t)return;const h={x:a.rect.left-o.rect.left,y:a.rect.top-o.rect.top},d={scaleX:u.scaleX!==1?o.rect.width*u.scaleX/a.rect.width:1,scaleY:u.scaleY!==1?o.rect.height*u.scaleY/a.rect.height:1},f={x:u.x-h.x,y:u.y-h.y,...d},k=s({...c,active:o,dragOverlay:a,transform:{initial:u,final:f}}),[N]=k,w=k[k.length-1];if(JSON.stringify(N)===JSON.stringify(w))return;const S=r==null?void 0:r({active:o,dragOverlay:a,...c}),m=a.node.animate(k,{duration:t,easing:n,fill:"forwards"});return new Promise(p=>{m.onfinish=()=>{S==null||S(),p()}})}}let fd=0;function jx(e){return y.useMemo(()=>{if(e!=null)return fd++,fd},[e])}const Rx=Ne.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:s,transition:i,modifiers:o,wrapperElement:a="div",className:u,zIndex:c=999}=e;const{activatorEvent:h,active:d,activeNodeRect:f,containerNodeRect:k,draggableNodes:N,droppableContainers:w,dragOverlay:S,over:m,measuringConfiguration:p,scrollableAncestors:g,scrollableAncestorRects:b,windowRect:j}=gh(),R=y.useContext(Bo),E=jx(d==null?void 0:d.id),T=mh(o,{activatorEvent:h,active:d,activeNodeRect:f,containerNodeRect:k,draggingNodeRect:S.rect,over:m,overlayNodeRect:S.rect,scrollableAncestors:g,scrollableAncestorRects:b,transform:R,windowRect:j}),D=Iu(f),P=Ex({config:r,draggableNodes:N,droppableContainers:w,measuringConfiguration:p}),X=D?S.setRef:void 0;return Ne.createElement(vx,null,Ne.createElement(yx,{animation:P},d&&E?Ne.createElement(wx,{key:E,id:d.id,ref:X,as:a,activatorEvent:h,adjustScale:t,className:u,transition:i,rect:D,style:{zIndex:c,...s},transform:T},n):null))});function Pu(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function _x(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function ii(e){return e!==null&&e>=0}function Lx(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{var t;let{rects:n,activeNodeRect:r,activeIndex:s,overIndex:i,index:o}=e;const a=(t=n[s])!=null?t:r;if(!a)return null;const u=Dx(n,o,s);if(o===s){const c=n[i];return c?{x:ss&&o<=i?{x:-a.width-u,y:0,...oi}:o=i?{x:a.width+u,y:0,...oi}:{x:0,y:0,...oi}};function Dx(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return!r||!s&&!i?0:n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=Pu(t,r,n),o=t[s],a=i[s];return!a||!o?null:{x:a.left-o.left,y:a.top-o.top,scaleX:a.width/o.width,scaleY:a.height/o.height}},ai={scaleX:1,scaleY:1},Ix=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:o}=e;const a=(t=i[n])!=null?t:r;if(!a)return null;if(s===n){const c=i[o];return c?{x:0,y:nn&&s<=o?{x:0,y:-a.height-u,...ai}:s=o?{x:0,y:a.height+u,...ai}:{x:0,y:0,...ai}};function Px(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(R=>typeof R=="object"&&"id"in R?R.id:R),[r]),N=o!=null,w=o?k.indexOf(o.id):-1,S=c?k.indexOf(c.id):-1,m=y.useRef(k),p=!Lx(k,m.current),g=S!==-1&&w===-1||p,b=Mx(i);Bt(()=>{p&&N&&h(k)},[p,k,N,h]),y.useEffect(()=>{m.current=k},[k]);const j=y.useMemo(()=>({activeIndex:w,containerId:d,disabled:b,disableTransforms:g,items:k,overIndex:S,useDragOverlay:f,sortedRects:_x(k,u),strategy:s}),[w,d,b.draggable,b.droppable,g,k,S,u,f,s]);return Ne.createElement(vh.Provider,{value:j},t)}const Ox=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return Pu(n,r,s).indexOf(t)},Bx=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:o,previousItems:a,previousContainerId:u,transition:c}=e;return!c||!r||a!==i&&s===o?!1:n?!0:o!==s&&t===u},zx={duration:200,easing:"ease"},kh="transform",Fx=on.Transition.toString({property:kh,duration:0,easing:"linear"}),Ux={roleDescription:"sortable"};function $x(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,o]=y.useState(null),a=y.useRef(n);return Bt(()=>{if(!t&&n!==a.current&&r.current){const u=s.current;if(u){const c=Lr(r.current,{ignoreTransform:!0}),h={x:u.left-c.left,y:u.top-c.top,scaleX:u.width/c.width,scaleY:u.height/c.height};(h.x||h.y)&&o(h)}}n!==a.current&&(a.current=n)},[t,n,r,s]),y.useEffect(()=>{i&&o(null)},[i]),i}function bh(e){let{animateLayoutChanges:t=Bx,attributes:n,disabled:r,data:s,getNewIndex:i=Ox,id:o,strategy:a,resizeObserverConfig:u,transition:c=zx}=e;const{items:h,containerId:d,activeIndex:f,disabled:k,disableTransforms:N,sortedRects:w,overIndex:S,useDragOverlay:m,strategy:p}=y.useContext(vh),g=Hx(r,k),b=h.indexOf(o),j=y.useMemo(()=>({sortable:{containerId:d,index:b,items:h},...s}),[d,s,b,h]),R=y.useMemo(()=>h.slice(h.indexOf(o)),[h,o]),{rect:E,node:T,isOver:D,setNodeRef:P}=gx({id:o,data:j,disabled:g.droppable,resizeObserverConfig:{updateMeasurementsFor:R,...u}}),{active:X,activatorEvent:we,activeNodeRect:me,attributes:Re,setNodeRef:et,listeners:Fe,isDragging:ge,over:A,setActivatorNodeRef:K,transform:v}=px({id:o,data:j,attributes:{...Ux,...n},disabled:g.draggable}),x=Jg(P,et),_=!!X,B=_&&!N&&ii(f)&&ii(S),W=!m&&ge,q=W&&B?v:null,$=B?q??(a??p)({rects:w,activeNodeRect:me,activeIndex:f,overIndex:S,index:b}):null,J=ii(f)&&ii(S)?i({id:o,items:h,activeIndex:f,overIndex:S}):b,ne=X==null?void 0:X.id,Q=y.useRef({activeId:ne,items:h,newIndex:J,containerId:d}),ae=h!==Q.current.items,se=t({active:X,containerId:d,isDragging:ge,isSorting:_,id:o,index:b,items:h,newIndex:Q.current.newIndex,previousItems:Q.current.items,previousContainerId:Q.current.containerId,transition:c,wasDragging:Q.current.activeId!=null}),he=$x({disabled:!se,index:b,node:T,rect:E});return y.useEffect(()=>{_&&Q.current.newIndex!==J&&(Q.current.newIndex=J),d!==Q.current.containerId&&(Q.current.containerId=d),h!==Q.current.items&&(Q.current.items=h)},[_,J,d,h]),y.useEffect(()=>{if(ne===Q.current.activeId)return;if(ne&&!Q.current.activeId){Q.current.activeId=ne;return}const ve=setTimeout(()=>{Q.current.activeId=ne},50);return()=>clearTimeout(ve)},[ne]),{active:X,activeIndex:f,attributes:Re,data:j,rect:E,index:b,newIndex:J,items:h,isOver:D,isSorting:_,isDragging:ge,listeners:Fe,node:T,overIndex:S,over:A,setNodeRef:x,setActivatorNodeRef:K,setDroppableNodeRef:P,setDraggableNodeRef:et,transform:he??$,transition:ee()};function ee(){if(he||ae&&Q.current.newIndex===b)return Fx;if(!(W&&!Io(we)||!c)&&(_||se))return on.Transition.toString({...c,property:kh})}}function Hx(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}function fo(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const Vx=[le.Down,le.Right,le.Up,le.Left],Wx=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:s,droppableContainers:i,over:o,scrollableAncestors:a}}=t;if(Vx.includes(e.code)){if(e.preventDefault(),!n||!r)return;const u=[];i.getEnabled().forEach(d=>{if(!d||d!=null&&d.disabled)return;const f=s.get(d.id);if(f)switch(e.code){case le.Down:r.topf.top&&u.push(d);break;case le.Left:r.left>f.left&&u.push(d);break;case le.Right:r.left1&&(h=c[1].id),h!=null){const d=i.get(n.id),f=i.get(h),k=f?s.get(f.id):null,N=f==null?void 0:f.node.current;if(N&&k&&d&&f){const S=Po(N).some((R,E)=>a[E]!==R),m=wh(d,f),p=Kx(d,f),g=S||!m?{x:0,y:0}:{x:p?r.width-k.width:0,y:p?r.height-k.height:0},b={x:k.left,y:k.top};return g.x&&g.y?b:_s(b,g)}}}};function wh(e,t){return!fo(e)||!fo(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Kx(e,t){return!fo(e)||!fo(t)||!wh(e,t)?!1:e.data.current.sortable.index{const{t:i,isRetro:o}=Rt(),a={LOW:{label:i("prioLow"),badge:"bg-emerald-50 text-emerald-700 border-emerald-200 dark:bg-emerald-950/60 dark:text-emerald-300 dark:border-emerald-500/20"},MEDIUM:{label:i("prioMedium"),badge:"bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/60 dark:text-blue-300 dark:border-blue-500/20"},HIGH:{label:i("prioHigh"),badge:"bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950/60 dark:text-amber-300 dark:border-amber-500/20"},URGENT:{label:i("prioUrgent"),badge:"bg-rose-50 text-rose-700 border-rose-200 dark:bg-rose-950/60 dark:text-rose-300 dark:border-rose-500/20"}},{attributes:u,listeners:c,setNodeRef:h,transform:d,transition:f,isDragging:k}=bh({id:e.id,data:{type:"Ticket",ticket:e}}),N={transform:on.Translate.toString(d),transition:f,opacity:k?.35:1},w=n.some(E=>E.ticketId===e.id&&E.userId!==r),S=n.find(E=>E.ticketId===e.id&&E.userId!==r);let m=null;if(e.dueDate){const E=new Date().toISOString().split("T")[0];e.dueDateE.completed).length:0;let b=!1,j=0;if(t>0&&e.movedAt){const E=new Date(e.movedAt).getTime(),T=(Date.now()-E)/(1e3*60*60);j=Math.floor(T),T>=t&&(b=!0)}const R=a[e.priority]||a.MEDIUM;return l.jsxs("div",{ref:h,style:N,className:`ticket-kanban group relative p-3.5 mb-2.5 transition-all select-none ${e.isBlocked?"border-rose-300 dark:border-rose-500/60 bg-rose-50/70 dark:bg-rose-950/20":""} ${w?"border-amber-500/80 ring-1 ring-amber-500":""}`,children:[w&&S&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300 border border-amber-200 dark:border-amber-500/30 px-2.5 py-1 text-xs rounded-md flex items-center gap-1.5 mb-2 animate-pulse",children:[l.jsx(xl,{size:12,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsxs("span",{className:"truncate",children:[S.userName," ",i("isEditingGeneral")]})]}),e.isBlocked&&l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-500/15 text-rose-800 dark:text-rose-300 border border-rose-200 dark:border-rose-500/30 px-2.5 py-1 text-xs rounded-md flex items-start gap-1.5 mb-2",children:[l.jsx(to,{size:13,className:"text-rose-600 dark:text-rose-400 shrink-0 mt-0.5"}),l.jsxs("div",{className:"truncate",children:[l.jsx("span",{className:"font-semibold text-rose-700 dark:text-rose-400 mr-1",children:o?"🚩 TRAP:":"🚩 BLOCKED:"}),l.jsx("span",{children:e.blockedReason||"Ada kendala"})]})]}),b&&!e.isBlocked&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300 border border-amber-200 dark:border-amber-500/30 px-2.5 py-0.5 text-xs rounded-md flex items-center gap-1.5 mb-2",children:[l.jsx(Ro,{size:12,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsxs("span",{className:"truncate text-[11px]",children:["⏳ ",j,"j tanpa pergerakan"]})]}),l.jsxs("div",{className:"flex items-start justify-between gap-2",children:[l.jsxs("div",{onClick:()=>{V.playClick(),s()},className:"flex-1 cursor-pointer",children:[l.jsx("h4",{className:"text-sm font-semibold text-slate-900 dark:text-slate-100 group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors leading-snug line-clamp-2",children:e.title}),e.description&&l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 line-clamp-2 mt-1.5 leading-relaxed",children:e.description})]}),l.jsx("button",{...u,...c,className:"text-slate-400 dark:text-slate-500 hover:text-slate-600 dark:hover:text-slate-300 cursor-grab active:cursor-grabbing p-1 rounded-md touch-none",title:"Drag card",children:l.jsx(wg,{size:15})})]}),p>0&&l.jsxs("div",{className:"mt-3 pt-2 border-t border-slate-100 dark:border-slate-800/80",children:[l.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-slate-400 mb-1.5",children:[l.jsxs("span",{className:"flex items-center gap-1.5 font-medium text-[11px]",children:[l.jsx(kl,{size:12,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:"Subtasks"})]}),l.jsxs("span",{className:"text-[11px] font-semibold",children:[g,"/",p]})]}),l.jsx("div",{className:"w-full bg-slate-100 dark:bg-slate-950/60 h-1.5 rounded-full overflow-hidden",children:l.jsx("div",{className:`h-full rounded-full transition-all duration-300 ${g===p?"bg-emerald-500":"bg-indigo-500"}`,style:{width:`${g/p*100}%`}})})]}),l.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 mt-3 pt-2.5 border-t border-slate-100 dark:border-slate-800/80",children:[l.jsx("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full border ${R.badge}`,children:R.label}),e.dueDate&&l.jsxs("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full border flex items-center gap-1 ${m==="overdue"?"bg-rose-50 text-rose-700 border-rose-200 dark:bg-rose-950/70 dark:text-rose-300 dark:border-rose-500/30":m==="today"?"bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950/70 dark:text-amber-300 dark:border-amber-500/30":"bg-slate-100 text-slate-700 border-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:border-slate-700/80"}`,children:[l.jsx(Dp,{size:10}),l.jsx("span",{children:m==="overdue"?`⚠️ ${e.dueDate}`:e.dueDate})]}),l.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[e.tags&&e.tags.slice(0,2).map(E=>l.jsxs("span",{className:"bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/20 px-2 py-0.5 text-[10px] font-medium rounded-full",children:["#",E]},E)),e.tags&&e.tags.length>2&&l.jsxs("span",{className:"text-[10px] text-slate-400",children:["+",e.tags.length-2]})]}),e.assignee&&l.jsxs("div",{className:"flex items-center gap-1.5 bg-slate-100 dark:bg-slate-800/80 border border-slate-200 dark:border-slate-700/60 px-2 py-0.5 rounded-full text-[11px] text-slate-700 dark:text-slate-300",children:[l.jsx(Mo,{size:11,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{className:"max-w-[70px] truncate font-medium",children:e.assignee})]})]})]})},Gx=({column:e,onClose:t,onSave:n})=>{const{t:r}=Rt(),[s,i]=y.useState(e.title),[o,a]=y.useState(e.maxWipLimit||0),[u,c]=y.useState(e.autoStaleHours||0),h=d=>{d.preventDefault(),V.playClick(),n(e.id,{title:s.trim()||e.title,maxWipLimit:Number(o)||0,autoStaleHours:Number(u)||0}),t()};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-md w-full p-4 sm:p-6 relative text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsx("button",{onClick:()=>{V.playClick(),t()},className:"absolute top-4 right-4 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 p-1 rounded-md",children:l.jsx(Ts,{size:18})}),l.jsxs("div",{className:"flex items-center gap-3 mb-4 sm:mb-5",children:[l.jsx("div",{className:"w-9 h-9 sm:w-10 sm:h-10 bg-indigo-50 dark:bg-emerald-500/10 border border-indigo-200 dark:border-emerald-500/30 rounded-xl flex items-center justify-center text-indigo-600 dark:text-emerald-400",children:l.jsx(zp,{size:18})}),l.jsxs("div",{children:[l.jsx("h2",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-slate-100",children:r("editColSettings")}),l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 truncate max-w-[200px]",children:e.title})]})]}),l.jsxs("form",{onSubmit:h,className:"space-y-3.5 text-xs",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:r("taskTitle")}),l.jsx("input",{type:"text",value:s,onChange:d=>i(d.target.value),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-2.5 text-slate-900 dark:text-slate-100 text-xs outline-none focus:border-indigo-500",required:!0})]}),l.jsxs("div",{className:"bg-amber-50/70 dark:bg-slate-950/70 border border-amber-200 dark:border-amber-500/30 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-semibold text-amber-800 dark:text-amber-400 mb-1",children:[l.jsx(bl,{size:14,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsx("span",{children:r("wipLimitLabel")})]}),l.jsx("p",{className:"text-[11px] text-slate-600 dark:text-slate-400 mb-2 leading-relaxed",children:"Membatasi jumlah kartu aktif di kolom ini agar tim fokus menyelesaikan tugas sebelum mengambil yang baru."}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("input",{type:"number",min:0,max:50,value:o,onChange:d=>a(parseInt(d.target.value,10)||0),className:"w-20 sm:w-24 bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 rounded-lg p-2 text-slate-900 dark:text-slate-100 text-xs text-center outline-none"}),l.jsx("span",{className:"text-[11px] sm:text-xs text-amber-800 dark:text-amber-300 font-medium",children:o===0?`(${r("wipUnlimited")})`:`(Maks. ${o} kartu)`})]})]}),l.jsxs("div",{className:"bg-cyan-50/70 dark:bg-slate-950/70 border border-cyan-200 dark:border-cyan-500/30 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-semibold text-cyan-800 dark:text-cyan-400 mb-1",children:[l.jsx(Ro,{size:14,className:"text-cyan-600 dark:text-cyan-400 shrink-0"}),l.jsx("span",{children:r("autoStaleHoursLabel")})]}),l.jsx("p",{className:"text-[11px] text-slate-600 dark:text-slate-400 mb-2 leading-relaxed",children:"Memberikan tanda peringatan jika kartu tidak bergerak di kolom ini melebihi durasi yang ditentukan."}),l.jsx("div",{className:"flex items-center gap-2",children:l.jsxs("select",{value:u,onChange:d=>c(parseInt(d.target.value,10)||0),className:"bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 rounded-lg p-2 text-slate-900 dark:text-slate-100 text-xs outline-none flex-1",children:[l.jsx("option",{value:0,children:"🚫 Nonaktif (0 Jam)"}),l.jsx("option",{value:12,children:"⏳ 12 Jam"}),l.jsx("option",{value:24,children:"⏳ 24 Jam (1 Hari) [Standar]"}),l.jsx("option",{value:48,children:"⏳ 48 Jam (2 Hari)"}),l.jsx("option",{value:72,children:"⏳ 72 Jam (3 Hari)"}),l.jsx("option",{value:168,children:"⏳ 7 Hari"})]})})]}),l.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[l.jsx("button",{type:"button",onClick:()=>{V.playClick(),t()},className:"btn-modern-secondary py-2 px-4",children:r("cancel")}),l.jsx("button",{type:"submit",className:"btn-modern-primary py-2 px-5 font-bold",children:r("save")})]})]})]})})},Qx=({column:e,role:t,activeLocks:n,currentUserId:r,onTicketClick:s,onAddTicket:i,onDeleteColumn:o,onUpdateColumn:a})=>{const{t:u}=Rt(),[c,h]=y.useState(!1),[d,f]=y.useState(""),[k,N]=y.useState(!1),{attributes:w,listeners:S,setNodeRef:m,transform:p,transition:g,isDragging:b}=bh({id:e.id,data:{type:"Column",column:e}}),j={transform:on.Translate.toString(p),transition:g,opacity:b?.4:1},R=e.maxWipLimit>0&&e.tickets.length>=e.maxWipLimit,E=D=>{D.preventDefault(),d.trim()&&(V.playClick(),i(e.id,d.trim()),f(""),h(!1))},T=()=>{V.playClick(),confirm(u("deleteColConfirm"))&&o(e.id)};return l.jsxs("div",{ref:m,style:j,className:`column-kanban w-[82vw] max-w-[320px] sm:w-80 shrink-0 flex flex-col max-h-[calc(100vh-170px)] sm:max-h-[calc(100vh-140px)] select-none ${R?"border-amber-500/60 ring-1 ring-amber-500/30":""}`,children:[l.jsxs("div",{className:"p-3 sm:p-3.5 flex items-center justify-between border-b border-slate-200 dark:border-slate-800/80",children:[l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 flex-1 min-w-0",children:[t==="admin"&&l.jsx("button",{...w,...S,className:"text-slate-400 dark:text-slate-500 hover:text-slate-600 dark:hover:text-slate-300 cursor-grab active:cursor-grabbing p-1 rounded touch-none",title:u("dragColTooltip"),children:l.jsx(bg,{size:14})}),l.jsx("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:l.jsx("h3",{className:"text-xs md:text-sm font-bold text-slate-800 dark:text-slate-200 truncate",children:e.title})})]}),l.jsxs("div",{className:"flex items-center gap-1 sm:gap-1.5 ml-1.5",children:[l.jsxs("span",{className:`text-[11px] sm:text-xs font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 border ${R?"bg-amber-100 dark:bg-amber-500/20 text-amber-800 dark:text-amber-300 border-amber-300 dark:border-amber-500/40 animate-pulse":"bg-white dark:bg-slate-800/90 text-slate-700 dark:text-slate-300 border-slate-200 dark:border-slate-700/80"}`,title:e.maxWipLimit>0?`WIP Limit: Maks ${e.maxWipLimit} kartu`:"Jumlah tugas",children:[R&&l.jsx(bl,{size:10,className:"text-amber-600 dark:text-amber-400"}),l.jsxs("span",{children:[e.tickets.length,e.maxWipLimit>0?`/${e.maxWipLimit}`:""]})]}),t==="admin"&&l.jsx("button",{onClick:()=>{V.playClick(),N(!0)},className:"text-slate-400 hover:text-indigo-600 dark:hover:text-indigo-400 p-1 rounded-md transition-colors",title:u("editColSettings"),children:l.jsx(zp,{size:13})}),t==="admin"&&l.jsx("button",{onClick:T,className:"text-slate-400 hover:text-rose-600 dark:hover:text-rose-400 p-1 rounded-md transition-colors",title:"Delete Column",children:l.jsx(Os,{size:13})})]})]}),R&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 border-b border-amber-200 dark:border-amber-500/30 text-amber-800 dark:text-amber-300 px-3 py-1 text-xs font-medium flex items-center justify-between",children:[l.jsxs("span",{className:"flex items-center gap-1.5 text-[11px]",children:[l.jsx(bl,{size:12,className:"text-amber-600 dark:text-amber-400"}),l.jsx("span",{children:u("wipLimitReached")})]}),l.jsxs("span",{className:"text-[10px] font-semibold",children:["(",e.tickets.length,"/",e.maxWipLimit,")"]})]}),l.jsxs("div",{className:"p-2.5 sm:p-3 flex-1 overflow-y-auto min-h-[100px]",children:[e.tickets.map(D=>l.jsx(Sh,{ticket:D,autoStaleHours:e.autoStaleHours||0,activeLocks:n,currentUserId:r,onClick:()=>s(D)},D.id)),e.tickets.length===0&&!c&&l.jsx("div",{className:"border border-dashed border-slate-300 dark:border-slate-800 rounded-xl p-5 sm:p-6 text-center text-slate-400 dark:text-slate-500 text-xs select-none",children:u("noTasksInCol")}),c&&l.jsxs("form",{onSubmit:E,className:"bg-white dark:bg-slate-900 border border-indigo-500/60 rounded-xl p-3 mb-2.5 shadow-sm",children:[l.jsx("textarea",{value:d,onChange:D=>f(D.target.value),placeholder:u("taskTitlePlaceholder"),rows:2,className:"w-full bg-slate-50 dark:bg-slate-950/80 border border-slate-200 dark:border-slate-800 rounded-lg text-slate-900 dark:text-slate-100 text-xs p-2.5 outline-none resize-none mb-2 focus:border-indigo-500",autoFocus:!0,onKeyDown:D=>{D.key==="Enter"&&!D.shiftKey&&(D.preventDefault(),E(D))}}),l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsx("span",{className:"text-[10px] text-slate-400",children:u("enterToAdd")}),l.jsxs("div",{className:"flex gap-1.5",children:[l.jsx("button",{type:"button",onClick:()=>h(!1),className:"px-2.5 py-1 bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-300 text-xs rounded-md hover:bg-slate-200 dark:hover:bg-slate-700 transition-colors",children:u("cancel")}),l.jsx("button",{type:"submit",className:"px-3 py-1 bg-indigo-600 text-white text-xs font-bold rounded-md hover:bg-indigo-500 transition-colors",children:u("add")})]})]})]})]}),!c&&l.jsx("div",{className:"p-2 sm:p-2.5 border-t border-slate-200 dark:border-slate-800/80 bg-slate-50/50 dark:bg-slate-900/30 rounded-b-2xl",children:l.jsxs("button",{onClick:()=>{V.playClick(),h(!0)},className:"w-full py-2 bg-white dark:bg-slate-800/60 hover:bg-slate-100 dark:hover:bg-slate-800 text-slate-700 dark:text-slate-300 text-xs font-medium rounded-lg border border-slate-200 dark:border-slate-700/60 flex items-center justify-center gap-1.5 transition-all shadow-sm",children:[l.jsx(Eu,{size:14,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:u("addNewTask")})]})}),k&&l.jsx(Gx,{column:e,onClose:()=>N(!1),onSave:(D,P)=>a(D,P)})]})},Qt=Object.create(null);Qt.open="0";Qt.close="1";Qt.ping="2";Qt.pong="3";Qt.message="4";Qt.upgrade="5";Qt.noop="6";const Ei=Object.create(null);Object.keys(Qt).forEach(e=>{Ei[Qt[e]]=e});const El={type:"error",data:"parser error"},Nh=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Ch=typeof ArrayBuffer=="function",Eh=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Ou=({type:e,data:t},n,r)=>Nh&&t instanceof Blob?n?r(t):hd(t,r):Ch&&(t instanceof ArrayBuffer||Eh(t))?n?r(t):hd(new Blob([t]),r):r(Qt[e]+(t||"")),hd=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function md(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let va;function qx(e,t){if(Nh&&e.data instanceof Blob)return e.data.arrayBuffer().then(md).then(t);if(Ch&&(e.data instanceof ArrayBuffer||Eh(e.data)))return t(md(e.data));Ou(e,!1,n=>{va||(va=new TextEncoder),t(va.encode(n))})}const gd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xr=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,n=e.length,r,s=0,i,o,a,u;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const c=new ArrayBuffer(t),h=new Uint8Array(c);for(r=0;r>4,h[s++]=(o&15)<<4|a>>2,h[s++]=(a&3)<<6|u&63;return c},Xx=typeof ArrayBuffer=="function",Bu=(e,t)=>{if(typeof e!="string")return{type:"message",data:Th(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:Jx(e.substring(1),t)}:Ei[n]?e.length>1?{type:Ei[n],data:e.substring(1)}:{type:Ei[n]}:El},Jx=(e,t)=>{if(Xx){const n=Yx(e);return Th(n,t)}else return{base64:!0,data:e}},Th=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},jh="",Zx=(e,t)=>{const n=e.length,r=new Array(n);let s=0;e.forEach((i,o)=>{Ou(i,!1,a=>{r[o]=a,++s===n&&t(r.join(jh))})})},ev=(e,t)=>{const n=e.split(jh),r=[];for(let s=0;s{const r=n.length;let s;if(r<126)s=new Uint8Array(1),new DataView(s.buffer).setUint8(0,r);else if(r<65536){s=new Uint8Array(3);const i=new DataView(s.buffer);i.setUint8(0,126),i.setUint16(1,r)}else{s=new Uint8Array(9);const i=new DataView(s.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(s[0]|=128),t.enqueue(s),t.enqueue(n)})}})}let ka;function li(e){return e.reduce((t,n)=>t+n.length,0)}function ui(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let s=0;sMath.pow(2,21)-1){a.enqueue(El);break}s=h*Math.pow(2,32)+c.getUint32(4),r=3}else{if(li(n)e){a.enqueue(El);break}}}})}const Rh=4;function Pe(e){if(e)return rv(e)}function rv(e){for(var t in Pe.prototype)e[t]=Pe.prototype[t];return e}Pe.prototype.on=Pe.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Pe.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};Pe.prototype.off=Pe.prototype.removeListener=Pe.prototype.removeAllListeners=Pe.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,s=0;sPromise.resolve().then(t):(t,n)=>n(t,0),Nt=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),sv="arraybuffer";function _h(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const iv=Nt.setTimeout,ov=Nt.clearTimeout;function Fo(e,t){t.useNativeTimers?(e.setTimeoutFn=iv.bind(Nt),e.clearTimeoutFn=ov.bind(Nt)):(e.setTimeoutFn=Nt.setTimeout.bind(Nt),e.clearTimeoutFn=Nt.clearTimeout.bind(Nt))}const av=1.33;function lv(e){return typeof e=="string"?uv(e):Math.ceil((e.byteLength||e.size)*av)}function uv(e){let t=0,n=0;for(let r=0,s=e.length;r=57344?n+=3:(r++,n+=4);return n}function Lh(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function cv(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function dv(e){let t={},n=e.split("&");for(let r=0,s=n.length;r{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};ev(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,Zx(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=Lh()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let Mh=!1;try{Mh=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const hv=Mh;function mv(){}class gv extends pv{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(s,i)=>{this.onError("xhr post error",s,i)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class Gt extends Pe{constructor(t,n,r){super(),this.createRequest=t,Fo(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=_h(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let s in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(s)&&r.setRequestHeader(s,this._opts.extraHeaders[s])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var s;r.readyState===3&&((s=this._opts.cookieJar)===null||s===void 0||s.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(s){this.setTimeoutFn(()=>{this._onError(s)},0);return}typeof document<"u"&&(this._index=Gt.requestsCount++,Gt.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=mv,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete Gt.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}Gt.requestsCount=0;Gt.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",yd);else if(typeof addEventListener=="function"){const e="onpagehide"in Nt?"pagehide":"unload";addEventListener(e,yd,!1)}}function yd(){for(let e in Gt.requests)Gt.requests.hasOwnProperty(e)&&Gt.requests[e].abort()}const yv=function(){const e=Ah({xdomain:!1});return e&&e.responseType!==null}();class xv extends gv{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=yv&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Gt(Ah,this.uri(),t)}}function Ah(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||hv))return new XMLHttpRequest}catch{}if(!t)try{return new Nt[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Dh=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class vv extends zu{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=Dh?{}:_h(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(s){return this.emitReserved("error",s)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n{try{this.doWrite(r,i)}catch{}s&&zo(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=Lh()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const ba=Nt.WebSocket||Nt.MozWebSocket;class kv extends vv{createSocket(t,n,r){return Dh?new ba(t,n,r):n?new ba(t,n):new ba(t)}doWrite(t,n){this.ws.send(n)}}class bv extends zu{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=nv(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),s=tv();s.readable.pipeTo(t.writable),this._writer=s.writable.getWriter();const i=()=>{r.read().then(({done:a,value:u})=>{a||(this.onPacket(u),i())}).catch(a=>{})};i();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n{s&&zo(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const wv={websocket:kv,webtransport:bv,polling:xv},Sv=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Nv=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Tl(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let s=Sv.exec(e||""),i={},o=14;for(;o--;)i[Nv[o]]=s[o]||"";return n!=-1&&r!=-1&&(i.source=t,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=Cv(i,i.path),i.queryKey=Ev(i,i.query),i}function Cv(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function Ev(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,s,i){s&&(n[s]=i)}),n}const jl=typeof addEventListener=="function"&&typeof removeEventListener=="function",Ti=[];jl&&addEventListener("offline",()=>{Ti.forEach(e=>e())},!1);class Rn extends Pe{constructor(t,n){if(super(),this.binaryType=sv,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=Tl(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=Tl(n.host).host);Fo(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const s=r.prototype.name;this.transports.push(s),this._transportsByName[s]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=dv(this.opts.query)),jl&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Ti.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=Rh,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&Rn.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",Rn.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,zo(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,s){if(typeof n=="function"&&(s=n,n=void 0),typeof r=="function"&&(s=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const i={type:t,data:n,options:r};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),s&&this.once("flush",s),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(Rn.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),jl&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Ti.indexOf(this._offlineEventListener);r!==-1&&Ti.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}Rn.protocol=Rh;class Tv extends Rn{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",d=>{if(!r)if(d.type==="pong"&&d.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Rn.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(h(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=n.name,this.emitReserved("upgradeError",f)}}))};function i(){r||(r=!0,h(),n.close(),n=null)}const o=d=>{const f=new Error("probe error: "+d);f.transport=n.name,i(),this.emitReserved("upgradeError",f)};function a(){o("transport closed")}function u(){o("socket closed")}function c(d){n&&d.name!==n.name&&i()}const h=()=>{n.removeListener("open",s),n.removeListener("error",o),n.removeListener("close",a),this.off("close",u),this.off("upgrading",c)};n.once("open",s),n.once("error",o),n.once("close",a),this.once("close",u),this.once("upgrading",c),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;rwv[i]).filter(i=>!!i)),super(r?s:t,s)}};function Rv(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=Tl(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+t,r.href=r.protocol+"://"+i+(n&&n.port===r.port?"":":"+r.port),r}const _v=typeof ArrayBuffer=="function",Lv=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,Ih=Object.prototype.toString,Mv=typeof Blob=="function"||typeof Blob<"u"&&Ih.call(Blob)==="[object BlobConstructor]",Av=typeof File=="function"||typeof File<"u"&&Ih.call(File)==="[object FileConstructor]";function Fu(e){return _v&&(e instanceof ArrayBuffer||Lv(e))||Mv&&e instanceof Blob||Av&&e instanceof File}function ji(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n=0&&e.numthis.opts.maxAttachments)throw new Error("too many attachments");r.attachments=a}if(t.charAt(n+1)==="/"){const i=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(i,n)}else r.nsp="/";const s=t.charAt(n+1);if(s!==""&&Number(s)==s){const i=n+1;for(;++n;){const o=t.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===t.length)break}r.id=Number(t.substring(i,n+1))}if(t.charAt(++n)){const i=this.tryParse(t.substr(n));if(Uu.isPayloadValid(r.type,i))r.data=i;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.opts.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case ue.CONNECT:return xd(n);case ue.DISCONNECT:return n===void 0;case ue.CONNECT_ERROR:return typeof n=="string"||xd(n);case ue.EVENT:case ue.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&Pv.indexOf(n[0])===-1);case ue.ACK:case ue.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Bv{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=Iv(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const zv=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};function xd(e){return Object.prototype.toString.call(e)==="[object Object]"}const Fv=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Uu,Encoder:Ov,get PacketType(){return ue}},Symbol.toStringTag,{value:"Module"}));function At(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const Uv=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Ph extends Pe{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[At(t,"open",this.onopen.bind(this)),At(t,"packet",this.onpacket.bind(this)),At(t,"error",this.onerror.bind(this)),At(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,s,i;if(Uv.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const o={type:ue.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const h=this.ids++,d=n.pop();this._registerAckCallback(h,d),o.id=h}const a=(s=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||s===void 0?void 0:s.writable,u=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!a||(u?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,n){var r;const s=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(s===void 0){this.acks[t]=n;return}const i=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a{this.io.clearTimeoutFn(i),n.apply(this,a)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...n){return new Promise((r,s)=>{const i=(o,a)=>o?s(o):r(a);i.withError=!0,n.push(i),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((s,...i)=>(this._queue[0],s!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(s)):(this._queue.shift(),n&&n(null,...i)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:ue.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case ue.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case ue.EVENT:case ue.BINARY_EVENT:this.onevent(t);break;case ue.ACK:case ue.BINARY_ACK:this.onack(t);break;case ue.DISCONNECT:this.ondisconnect();break;case ue.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...s){r||(r=!0,n.packet({type:ue.ACK,id:t,data:s}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:ue.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}Mr.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};Mr.prototype.reset=function(){this.attempts=0};Mr.prototype.setMin=function(e){this.ms=e};Mr.prototype.setMax=function(e){this.max=e};Mr.prototype.setJitter=function(e){this.jitter=e};class _l extends Pe{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Fo(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new Mr({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const s=n.parser||Fv;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new jv(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const s=At(n,"open",function(){r.onopen(),t&&t()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},o=At(n,"error",i);if(this._timeout!==!1){const a=this._timeout,u=this.setTimeoutFn(()=>{s(),i(new Error("timeout")),n.close()},a);this.opts.autoUnref&&u.unref(),this.subs.push(()=>{this.clearTimeoutFn(u)})}return this.subs.push(s),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(At(t,"ping",this.onping.bind(this)),At(t,"data",this.ondata.bind(this)),At(t,"error",this.onerror.bind(this)),At(t,"close",this.onclose.bind(this)),At(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){zo(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new Ph(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;rt()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(s=>{s?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",s)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const Kr={};function _i(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=Rv(e,t.path||"/socket.io"),r=n.source,s=n.id,i=n.path,o=Kr[s]&&i in Kr[s].nsps,a=t.forceNew||t["force new connection"]||t.multiplex===!1||o;let u;return a?u=new _l(r,t):(Kr[s]||(Kr[s]=new _l(r,t)),u=Kr[s]),n.query&&!t.query&&(t.query=n.queryKey),u.socket(n.path,t)}Object.assign(_i,{Manager:_l,Socket:Ph,io:_i,connect:_i});let kn=null;function $v(e,t,n,r){return kn&&kn.disconnect(),kn=_i({auth:{boardId:e,key:t,userName:n,userId:r},transports:["websocket","polling"]}),kn}function ye(){return kn}function Hv(){kn&&(kn.disconnect(),kn=null)}function vd(e,t=500){const n=y.useRef(null),r=y.useRef(e);r.current=e;const s=y.useCallback((...o)=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r.current(...o)},t)},[t]),i=y.useCallback(()=>{n.current&&(clearTimeout(n.current),n.current=null)},[]);return y.useEffect(()=>i,[i]),[s,i]}function Vv(e){try{const t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`${Math.max(1,n)} detik lalu`;const r=Math.floor(n/60);if(r<60)return`${r} menit lalu`;const s=Math.floor(r/60);return s<24?`${s} jam lalu`:`${Math.floor(s/24)} hari lalu`}catch{return e}}const Wv=({ticket:e,boardId:t,boardKey:n,activeLocks:r,currentUserId:s,onClose:i,onUpdateTicket:o,onDeleteTicket:a})=>{const{t:u}=Rt(),[c,h]=y.useState(e.title),[d,f]=y.useState(e.description),[k,N]=y.useState(e.priority),[w,S]=y.useState(e.tags||[]),[m,p]=y.useState(""),[g,b]=y.useState(e.subtasks||[]),[j,R]=y.useState(""),[E,T]=y.useState(e.dueDate||""),[D,P]=y.useState(e.isBlocked||!1),[X,we]=y.useState(e.blockedReason||""),[me,Re]=y.useState(e.assignee||""),[et,Fe]=y.useState(!1),[ge,A]=y.useState([]),[K,v]=y.useState(!1);y.useEffect(()=>{h(e.title),f(e.description),N(e.priority),S(e.tags||[]),b(e.subtasks||[]),T(e.dueDate||""),P(e.isBlocked||!1),we(e.blockedReason||""),Re(e.assignee||"")},[e]),y.useEffect(()=>{t&&n&&e.id&&(v(!0),Gg(t,e.id,n).then(H=>A(H)).catch(()=>{}).finally(()=>v(!1)));const C=ye();if(C){const H=Y=>{Y.activity&&Y.activity.ticketId===e.id&&A(M=>[Y.activity,...M])};return C.on("activity_logged",H),()=>{C.off("activity_logged",H)}}},[t,n,e.id]);const x=r.find(C=>C.ticketId===e.id&&C.field==="title"&&C.userId!==s),_=r.find(C=>C.ticketId===e.id&&C.field==="description"&&C.userId!==s),[B]=vd(C=>{Fe(!0);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{title:C}}),o(e.id,{title:C}),setTimeout(()=>Fe(!1),300)},500),[W]=vd(C=>{Fe(!0);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{description:C}}),o(e.id,{description:C}),setTimeout(()=>Fe(!1),300)},600),q=C=>{const H=C.target.value;h(H),B(H)},F=()=>{const C=ye();C&&C.emit("lock_field",{ticketId:e.id,field:"title"})},$=()=>{const C=ye();C&&C.emit("unlock_field",{ticketId:e.id,field:"title"})},J=C=>{const H=C.target.value;f(H),W(H)},ne=()=>{const C=ye();C&&C.emit("lock_field",{ticketId:e.id,field:"description"})},Q=()=>{const C=ye();C&&C.emit("unlock_field",{ticketId:e.id,field:"description"})},ae=C=>{V.playClick(),N(C);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{priority:C}}),o(e.id,{priority:C})},se=C=>{if(C.preventDefault(),!j.trim())return;V.playClick();const H={id:"st_"+Math.random().toString(36).substring(2,9),title:j.trim(),completed:!1},Y=[...g,H];b(Y),R("");const M=ye();M&&M.emit("update_ticket",{ticketId:e.id,updates:{subtasks:Y}}),o(e.id,{subtasks:Y})},he=C=>{V.playClick();const H=g.map(M=>M.id===C?{...M,completed:!M.completed}:M);b(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{subtasks:H}}),o(e.id,{subtasks:H})},ee=C=>{V.playClick();const H=g.filter(M=>M.id!==C);b(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{subtasks:H}}),o(e.id,{subtasks:H})},ve=C=>{const H=C.target.value;T(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{dueDate:H||null}}),o(e.id,{dueDate:H||null})},_e=()=>{V.playLock();const C=!D;P(C);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{isBlocked:C,blockedReason:C?X:null}}),o(e.id,{isBlocked:C,blockedReason:C?X:null})},Ue=()=>{const C=ye();C&&C.emit("update_ticket",{ticketId:e.id,updates:{blockedReason:X.trim()||null}}),o(e.id,{blockedReason:X.trim()||null})},I=C=>{if(C.key==="Enter"&&m.trim()){C.preventDefault(),V.playClick();const H=m.trim().replace(/^#/,"");if(!w.includes(H)){const Y=[...w,H];S(Y),p("");const M=ye();M&&M.emit("update_ticket",{ticketId:e.id,updates:{tags:Y}}),o(e.id,{tags:Y})}}},U=C=>{V.playClick();const H=w.filter(M=>M!==C);S(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{tags:H}}),o(e.id,{tags:H})},z=()=>{const C=ye();C&&C.emit("update_ticket",{ticketId:e.id,updates:{assignee:me.trim()||null}}),o(e.id,{assignee:me.trim()||null})},oe=()=>{if(V.playClick(),confirm(u("deleteTaskConfirm"))){const C=ye();C&&C.emit("delete_ticket",{ticketId:e.id,columnId:e.columnId}),a(e.id,e.columnId),i()}};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-2xl w-full p-4 sm:p-7 relative max-h-[92vh] overflow-y-auto text-slate-900 dark:text-slate-100",children:[l.jsx("button",{onClick:()=>{V.playClick(),i()},className:"absolute top-4 right-4 sm:top-5 sm:right-5 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 p-1 rounded-md transition-colors",children:l.jsx(Ts,{size:20})}),l.jsx("div",{className:"flex items-center gap-2 mb-4",children:l.jsxs("span",{className:"text-xs font-medium bg-emerald-50 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-400 border border-emerald-200 dark:border-emerald-500/20 px-2.5 py-1 rounded-full flex items-center gap-1.5",children:[l.jsx(Lo,{size:13,className:"text-emerald-600 dark:text-emerald-400"}),l.jsx("span",{children:u(et?"autoSaving":"synced")})]})}),l.jsxs("div",{className:"mb-4",children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("taskTitle")}),x&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 border border-amber-200 dark:border-amber-500/30 text-amber-800 dark:text-amber-300 text-xs px-3 py-1.5 mb-2 rounded-lg flex items-center gap-2 animate-pulse",children:[l.jsx(xl,{size:14,className:"shrink-0 text-amber-600 dark:text-amber-400"}),l.jsxs("span",{children:[x.userName," ",u("isTypingTitle")]})]}),l.jsx("input",{type:"text",value:c,disabled:!!x,onChange:q,onFocus:F,onBlur:$,placeholder:"Judul tugas...",className:`w-full bg-slate-50 dark:bg-slate-950/70 border ${x?"border-amber-500/40 opacity-60 cursor-not-allowed":"border-slate-300 dark:border-slate-800 focus:border-indigo-500"} text-slate-900 dark:text-slate-100 text-sm font-semibold p-3 rounded-lg outline-none transition-colors`})]}),l.jsxs("div",{className:"mb-5",children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("taskDesc")}),_&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 border border-amber-200 dark:border-amber-500/30 text-amber-800 dark:text-amber-300 text-xs px-3 py-1.5 mb-2 rounded-lg flex items-center gap-2 animate-pulse",children:[l.jsx(xl,{size:14,className:"shrink-0 text-amber-600 dark:text-amber-400"}),l.jsxs("span",{children:[_.userName," ",u("isTypingDesc")]})]}),l.jsx("textarea",{rows:4,value:d,disabled:!!_,onChange:J,onFocus:ne,onBlur:Q,placeholder:u("taskDescPlaceholder"),className:`w-full bg-slate-50 dark:bg-slate-950/70 border ${_?"border-amber-500/40 opacity-60 cursor-not-allowed":"border-slate-300 dark:border-slate-800 focus:border-indigo-500"} text-slate-800 dark:text-slate-200 text-xs p-3 rounded-lg outline-none leading-relaxed transition-colors`})]}),l.jsxs("div",{className:"mb-5",children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-2",children:u("priorityLabel")}),l.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2",children:[{id:"LOW",label:`🟢 ${u("prioLow")}`,activeClass:"bg-emerald-50 dark:bg-emerald-500/20 text-emerald-700 dark:text-emerald-300 border-emerald-500 font-bold"},{id:"MEDIUM",label:`🔵 ${u("prioMedium")}`,activeClass:"bg-blue-50 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300 border-blue-500 font-bold"},{id:"HIGH",label:`🟡 ${u("prioHigh")}`,activeClass:"bg-amber-50 dark:bg-amber-500/20 text-amber-700 dark:text-amber-300 border-amber-500 font-bold"},{id:"URGENT",label:`🔴 ${u("prioUrgent")}`,activeClass:"bg-rose-50 dark:bg-rose-500/20 text-rose-700 dark:text-rose-300 border-rose-500 font-bold"}].map(C=>l.jsx("button",{type:"button",onClick:()=>ae(C.id),className:`py-2 px-3 text-xs font-medium rounded-lg border transition-all ${k===C.id?C.activeClass:"bg-slate-50 dark:bg-slate-950/60 border-slate-300 dark:border-slate-800 text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200"}`,children:C.label},C.id))})]}),l.jsxs("div",{className:"mb-5 bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 rounded-xl p-4",children:[l.jsx("div",{className:"flex items-center justify-between mb-3",children:l.jsxs("label",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2",children:[l.jsx(kl,{size:15,className:"text-indigo-600 dark:text-emerald-400"}),l.jsxs("span",{children:[u("subtasksLabel")," (",g.filter(C=>C.completed).length,"/",g.length,")"]})]})}),l.jsx("div",{className:"space-y-2 mb-3",children:g.map(C=>l.jsxs("div",{className:"flex items-center justify-between gap-2 bg-white dark:bg-slate-900/80 border border-slate-200 dark:border-slate-800 p-2.5 rounded-lg group",children:[l.jsxs("div",{onClick:()=>he(C.id),className:"flex items-center gap-2.5 cursor-pointer flex-1",children:[l.jsx("button",{type:"button",className:"text-indigo-600 dark:text-emerald-400",children:C.completed?l.jsx(kl,{size:16}):l.jsx(Eg,{size:16})}),l.jsx("span",{className:`text-xs ${C.completed?"line-through text-slate-400 dark:text-slate-500":"text-slate-800 dark:text-slate-200"}`,children:C.title})]}),l.jsx("button",{type:"button",onClick:()=>ee(C.id),className:"text-slate-400 hover:text-rose-600 dark:hover:text-rose-400 p-1 opacity-0 group-hover:opacity-100 transition-opacity",children:l.jsx(Ts,{size:14})})]},C.id))}),l.jsxs("form",{onSubmit:se,className:"flex items-center gap-2",children:[l.jsx("input",{type:"text",value:j,onChange:C=>R(C.target.value),placeholder:u("addSubtaskPlaceholder"),className:"flex-1 bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 p-2 text-xs text-slate-900 dark:text-slate-100 rounded-lg outline-none focus:border-indigo-500"}),l.jsxs("button",{type:"submit",className:"btn-modern-primary py-2 px-3 text-xs flex items-center gap-1 font-semibold",children:[l.jsx(Eu,{size:14}),l.jsx("span",{children:u("add")})]})]})]}),l.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5",children:[l.jsxs("div",{className:"bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5 flex items-center gap-1.5",children:[l.jsx(Dp,{size:14,className:"text-indigo-600 dark:text-emerald-400"}),l.jsx("span",{children:u("dueDateLabel")})]}),l.jsx("input",{type:"date",value:E,onChange:ve,className:"w-full bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 p-2 text-xs text-slate-900 dark:text-slate-100 rounded-lg outline-none"})]}),l.jsxs("div",{className:"bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5 flex items-center gap-1.5",children:[l.jsx(to,{size:14,className:"text-rose-600 dark:text-rose-400"}),l.jsx("span",{children:u("blockedLabel")})]}),l.jsxs("button",{type:"button",onClick:_e,className:`w-full py-2 px-3 text-xs font-semibold rounded-lg border flex items-center justify-center gap-2 transition-all ${D?"bg-rose-50 dark:bg-rose-500/20 text-rose-700 dark:text-rose-300 border-rose-500":"bg-white dark:bg-slate-900 border-slate-300 dark:border-slate-800 text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200"}`,children:[l.jsx(to,{size:14}),l.jsx("span",{children:D?"🚩 Status: BLOCKED":"Normal (Tidak Macet)"})]}),D&&l.jsx("input",{type:"text",value:X,onChange:C=>we(C.target.value),onBlur:Ue,placeholder:u("blockedReasonPlaceholder"),className:"w-full mt-2 bg-white dark:bg-slate-900 border border-rose-400 dark:border-rose-500/50 p-2 text-xs text-rose-700 dark:text-rose-300 rounded-lg outline-none"})]})]}),l.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("tagsLabel")}),l.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2",children:w.map(C=>l.jsxs("span",{className:"bg-indigo-50 dark:bg-indigo-500/15 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/30 px-2.5 py-0.5 text-xs font-medium rounded-full flex items-center gap-1.5",children:["#",C,l.jsx("button",{onClick:()=>U(C),className:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-900 dark:hover:text-indigo-200",children:"×"})]},C))}),l.jsx("input",{type:"text",value:m,onChange:C=>p(C.target.value),onKeyDown:I,placeholder:u("tagsPlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 text-xs p-2 text-indigo-700 dark:text-indigo-300 rounded-lg outline-none focus:border-indigo-500"})]}),l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("assigneeLabel")}),l.jsx("input",{type:"text",value:me,onChange:C=>Re(C.target.value),onBlur:z,placeholder:u("assigneePlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 text-xs p-2 text-slate-900 dark:text-slate-200 rounded-lg outline-none focus:border-indigo-500"})]})]}),l.jsxs("div",{className:"mb-6 bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 rounded-xl p-3.5 sm:p-4",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2.5",children:[l.jsxs("label",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2",children:[l.jsx(Cu,{size:14,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:u("cardMovementHistory")})]}),l.jsxs("span",{className:"text-[10px] text-slate-400 font-mono",children:[ge.length," catatan"]})]}),l.jsx("div",{className:"space-y-2 max-h-44 overflow-y-auto pr-1",children:K?l.jsx("p",{className:"text-[11px] text-slate-400 text-center py-2",children:"Memuat riwayat..."}):ge.length===0?l.jsx("p",{className:"text-[11px] text-slate-400 text-center py-2",children:"Belum ada pergerakan kolom yang tercatat"}):ge.map(C=>l.jsx("div",{className:"bg-white dark:bg-slate-900/80 border border-slate-200 dark:border-slate-800/80 p-2.5 rounded-lg text-xs flex items-start justify-between gap-2",children:l.jsxs("div",{className:"space-y-0.5 flex-1 min-w-0",children:[C.action==="MOVED"&&C.fromColumnTitle&&C.toColumnTitle?l.jsxs("p",{className:"text-[11px] text-slate-700 dark:text-slate-300 flex items-center gap-1.5 flex-wrap",children:[l.jsx("span",{className:"font-semibold",children:C.fromColumnTitle}),l.jsx(vl,{size:11,className:"text-slate-400"}),l.jsx("span",{className:"font-semibold text-indigo-600 dark:text-indigo-400",children:C.toColumnTitle})]}):l.jsx("p",{className:"text-[11px] text-slate-700 dark:text-slate-300 font-medium",children:C.details||C.action}),l.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-slate-400",children:[l.jsxs("span",{className:"flex items-center gap-0.5",children:[l.jsx(Mo,{size:10}),l.jsx("span",{children:C.userName})]}),l.jsx("span",{children:"•"}),l.jsxs("span",{className:"flex items-center gap-0.5",children:[l.jsx(Ro,{size:10}),l.jsx("span",{children:Vv(C.createdAt)})]})]})]})},C.id))})]}),l.jsxs("div",{className:"flex items-center justify-between pt-4 border-t border-slate-200 dark:border-slate-800",children:[l.jsxs("button",{onClick:oe,className:"btn-modern-danger flex items-center gap-1.5 text-xs py-2 px-3.5",children:[l.jsx(Os,{size:14}),l.jsx("span",{children:u("deleteTask")})]}),l.jsx("button",{onClick:()=>{V.playClick(),i()},className:"btn-modern-primary py-2 px-6 font-bold",children:u("save")})]})]})})},Kv=({boardId:e,adminKey:t,onClose:n})=>{const{t:r}=Rt(),[s,i]=y.useState(!1),[o,a]=y.useState(null),[u,c]=y.useState(!1),[h,d]=y.useState(""),f=async()=>{V.playClick(),i(!0),d("");try{const N=await Qg(e,t),w=`${window.location.origin}${N.memberUrlFragment}`;a(w);const S=ye();S&&S.emit("member_key_rotated"),V.playVictory()}catch(N){d(N.message||"Failed to rotate key")}finally{i(!1)}},k=async()=>{o&&(V.playClick(),await navigator.clipboard.writeText(o),c(!0),setTimeout(()=>c(!1),2e3))};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-lg w-full p-4 sm:p-7 relative text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"absolute top-4 right-4 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 p-1 rounded-md",children:l.jsx(Ts,{size:18})}),l.jsxs("div",{className:"flex items-center gap-3 mb-4 sm:mb-5",children:[l.jsx("div",{className:"w-9 h-9 sm:w-10 sm:h-10 bg-amber-50 dark:bg-amber-500/10 border border-amber-200 dark:border-amber-500/30 rounded-xl flex items-center justify-center text-amber-600 dark:text-amber-400",children:l.jsx(no,{size:18})}),l.jsxs("div",{children:[l.jsx("h2",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-slate-100",children:r("keyRotationTitle")}),l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("keyRotationSubtitle")})]})]}),o?l.jsxs("div",{className:"space-y-3.5",children:[l.jsxs("div",{className:"bg-emerald-50 dark:bg-emerald-500/15 border border-emerald-200 dark:border-emerald-500/30 p-3.5 rounded-xl text-xs text-emerald-800 dark:text-emerald-200",children:[l.jsx("p",{className:"font-bold text-emerald-700 dark:text-emerald-400 mb-1 text-xs",children:r("newLinkActiveTitle")}),l.jsx("p",{className:"text-xs leading-relaxed opacity-90",children:r("newLinkActiveDesc")})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("input",{type:"text",readOnly:!0,value:o,className:"bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 text-slate-800 dark:text-slate-300 font-mono text-[11px] sm:text-xs p-2.5 rounded-lg flex-1 select-all outline-none"}),l.jsxs("button",{onClick:k,className:`btn-modern ${u?"bg-emerald-500 text-slate-950":"btn-modern-primary"} py-2.5 px-3 flex items-center gap-1.5`,children:[u?l.jsx(gl,{size:14}):l.jsx(yl,{size:14}),l.jsx("span",{children:r(u?"copied":"copy")})]})]}),l.jsx("div",{className:"flex justify-end pt-2",children:l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"btn-modern-primary py-2 px-6 font-bold",children:r("done")})})]}):l.jsxs("div",{className:"space-y-3.5",children:[l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-500/15 border border-rose-200 dark:border-rose-500/30 p-3.5 rounded-xl text-xs text-rose-800 dark:text-rose-200 flex items-start gap-2.5",children:[l.jsx(_o,{size:18,className:"text-rose-600 dark:text-rose-400 shrink-0 mt-0.5"}),l.jsxs("div",{children:[l.jsx("p",{className:"font-bold mb-1 text-rose-700 dark:text-rose-300",children:r("keyRotationWarningTitle")}),l.jsx("p",{className:"text-xs leading-relaxed opacity-90",children:r("keyRotationWarningDesc")})]})]}),h&&l.jsx("p",{className:"text-xs text-rose-600 dark:text-rose-400 font-bold",children:h}),l.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"btn-modern-secondary py-2 px-4",children:r("cancel")}),l.jsxs("button",{onClick:f,disabled:s,className:"btn-modern-danger py-2 px-4 font-bold flex items-center gap-2",children:[l.jsx(no,{size:14,className:s?"animate-spin":""}),l.jsx("span",{children:r(s?"rotatingBtn":"regenerateBtn")})]})]})]})]})})},Gv=({onKeyProvided:e})=>{const{t}=Rt(),[n,r]=y.useState(""),[s,i]=y.useState(""),o=a=>{var c,h;a.preventDefault(),V.playClick();const u=n.trim();if(!u){i(t("keyPromptError"));return}if(u.includes("#admin=")){const d=(c=u.split("#admin=")[1])==null?void 0:c.split("&")[0];if(d){window.location.hash=`admin=${d}`,e(d,"admin");return}}else if(u.includes("#member=")){const d=(h=u.split("#member=")[1])==null?void 0:h.split("&")[0];if(d){window.location.hash=`member=${d}`,e(d,"member");return}}window.location.hash=`member=${u}`,e(u)};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-md w-full p-4 sm:p-7 text-center text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-amber-50 dark:bg-amber-500/10 border border-amber-200 dark:border-amber-500/30 rounded-2xl mx-auto flex items-center justify-center mb-3 text-amber-600 dark:text-amber-400",children:l.jsx(Sg,{size:22})}),l.jsx("h2",{className:"text-sm sm:text-base md:text-lg font-bold text-slate-900 dark:text-slate-100 mb-1.5",children:t("keyPromptTitle")}),l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 mb-4 sm:mb-5 leading-relaxed",children:t("keyPromptDesc")}),s&&l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-500/15 border border-rose-200 dark:border-rose-500/30 text-rose-700 dark:text-rose-300 text-xs p-2.5 sm:p-3 rounded-lg mb-4 flex items-center gap-2 text-left",children:[l.jsx(_o,{size:15,className:"shrink-0 text-rose-600 dark:text-rose-400"}),l.jsx("span",{children:s})]}),l.jsxs("form",{onSubmit:o,className:"space-y-3.5",children:[l.jsx("input",{type:"text",value:n,onChange:a=>{r(a.target.value),i("")},placeholder:t("keyPromptPlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg text-indigo-600 dark:text-emerald-400 font-mono text-xs p-3 outline-none focus:border-indigo-500",autoFocus:!0}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{type:"button",onClick:()=>{V.playClick(),window.location.href="/"},className:"btn-modern-secondary flex-1 py-2.5 text-xs",children:t("backToHome")}),l.jsx("button",{type:"submit",className:"btn-modern-primary flex-1 py-2.5 font-bold text-xs",children:t("unlockBoardBtn")})]})]})]})})};function Qv(e){try{const t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`${Math.max(1,n)} detik lalu`;const r=Math.floor(n/60);if(r<60)return`${r} menit lalu`;const s=Math.floor(r/60);return s<24?`${s} jam lalu`:`${Math.floor(s/24)} hari lalu`}catch{return e}}const qv=({boardId:e,boardKey:t,onClose:n})=>{const{t:r}=Rt(),[s,i]=y.useState([]),[o,a]=y.useState(!0),[u,c]=y.useState(null),h=async()=>{a(!0),c(null);try{const f=await Kg(e,t,60);i(f)}catch(f){c(f.message||"Failed to load activity logs")}finally{a(!1)}};y.useEffect(()=>{h()},[e,t]);const d=f=>{switch(f.action){case"MOVED":return l.jsxs("span",{className:"bg-indigo-50 dark:bg-indigo-500/15 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(vl,{size:11,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:"Pindah Kolom"})]});case"CREATED":return l.jsxs("span",{className:"bg-emerald-50 dark:bg-emerald-500/15 text-emerald-700 dark:text-emerald-300 border border-emerald-200 dark:border-emerald-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(Pp,{size:11,className:"text-emerald-600 dark:text-emerald-400"}),l.jsx("span",{children:"Dibuat"})]});case"BLOCKED":return l.jsxs("span",{className:"bg-rose-50 dark:bg-rose-500/15 text-rose-700 dark:text-rose-300 border border-rose-200 dark:border-rose-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(to,{size:11,className:"text-rose-600 dark:text-rose-400"}),l.jsx("span",{children:"Blocked"})]});case"UNBLOCKED":return l.jsxs("span",{className:"bg-cyan-50 dark:bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 border border-cyan-200 dark:border-cyan-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(Ip,{size:11,className:"text-cyan-600 dark:text-cyan-400"}),l.jsx("span",{children:"Unblocked"})]});case"DELETED":return l.jsxs("span",{className:"bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-400 border border-slate-300 dark:border-slate-700 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(Os,{size:11}),l.jsx("span",{children:"Dihapus"})]});default:return null}};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-xl w-full p-4 sm:p-7 relative text-slate-900 dark:text-slate-100 max-h-[92vh] flex flex-col",children:[l.jsxs("div",{className:"flex items-center justify-between pb-3.5 border-b border-slate-200 dark:border-slate-800",children:[l.jsxs("div",{className:"flex items-center gap-2.5",children:[l.jsx("div",{className:"w-9 h-9 bg-indigo-50 dark:bg-indigo-500/10 border border-indigo-200 dark:border-indigo-500/30 rounded-xl flex items-center justify-center text-indigo-600 dark:text-indigo-400 shrink-0",children:l.jsx(Cu,{size:18})}),l.jsxs("div",{children:[l.jsx("h2",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-white tracking-tight",children:r("activityLogTitle")}),l.jsx("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:"Log pergerakan kartu & aktivitas real-time tersimpan di database"})]})]}),l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx("button",{onClick:()=>{V.playClick(),h()},className:"p-1.5 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 rounded-md transition-colors",title:"Refresh logs",children:l.jsx(no,{size:15,className:o?"animate-spin text-indigo-500":""})}),l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"p-1.5 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 rounded-md transition-colors",children:l.jsx(Ts,{size:18})})]})]}),l.jsx("div",{className:"flex-1 overflow-y-auto py-3.5 space-y-2.5 pr-1",children:o&&s.length===0?l.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center text-slate-400 text-xs gap-2",children:[l.jsx("div",{className:"w-6 h-6 border-2 border-indigo-500 border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:"Memuat riwayat database..."})]}):u?l.jsx("div",{className:"p-4 bg-rose-50 dark:bg-rose-500/10 border border-rose-200 dark:border-rose-500/30 text-rose-700 dark:text-rose-300 rounded-xl text-xs",children:u}):s.length===0?l.jsx("div",{className:"p-8 text-center text-slate-400 text-xs border border-dashed border-slate-200 dark:border-slate-800 rounded-xl",children:r("noActivityLogs")}):s.map(f=>l.jsx("div",{className:"bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800/80 p-3 rounded-xl flex items-start justify-between gap-3 text-xs",children:l.jsxs("div",{className:"space-y-1 min-w-0 flex-1",children:[l.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d(f),l.jsx("span",{className:"font-bold text-slate-900 dark:text-slate-100 truncate",children:f.ticketTitle||"Tugas"})]}),f.fromColumnTitle&&f.toColumnTitle&&f.action==="MOVED"?l.jsxs("p",{className:"text-[11px] text-slate-600 dark:text-slate-300 flex items-center gap-1.5 flex-wrap",children:[l.jsx("span",{className:"px-1.5 py-0.5 bg-slate-200/80 dark:bg-slate-800 rounded font-medium",children:f.fromColumnTitle}),l.jsx(vl,{size:12,className:"text-slate-400"}),l.jsx("span",{className:"px-1.5 py-0.5 bg-indigo-100 dark:bg-indigo-900/50 text-indigo-800 dark:text-indigo-300 rounded font-semibold",children:f.toColumnTitle})]}):f.details?l.jsx("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:f.details}):null,l.jsxs("div",{className:"flex items-center gap-3 pt-0.5 text-[10px] text-slate-400 dark:text-slate-500",children:[l.jsxs("span",{className:"flex items-center gap-1",children:[l.jsx(Mo,{size:11}),l.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-400",children:f.userName})]}),l.jsxs("span",{className:"flex items-center gap-1",children:[l.jsx(Ro,{size:11}),l.jsx("span",{children:Qv(f.createdAt)})]})]})]})},f.id))}),l.jsx("div",{className:"pt-3 border-t border-slate-200 dark:border-slate-800 flex justify-end",children:l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"btn-modern-primary py-2 px-5 text-xs font-bold",children:r("close")})})]})})};function ci(e){try{return decodeURIComponent(e)}catch{return e}}function Yv(e,t){try{let n=(t||window.location.hash||"").trim();if(n.startsWith("#")&&(n=n.substring(1)),n.includes("admin=")){const a=n.split("admin=")[1].split("&")[0];if(a)return{key:ci(a),role:"admin"}}if(n.includes("member=")){const a=n.split("member=")[1].split("&")[0];if(a)return{key:ci(a),role:"member"}}if(n&&!n.includes("="))return{key:ci(n),role:"member"};const r=new URLSearchParams(window.location.search),s=r.get("admin"),i=r.get("member");if(s)return{key:ci(s),role:"admin"};if(i)return{key:i,role:"member"};const o=Dg(e);if(o&&o.key)return{key:o.key,role:o.role}}catch(n){console.error("Error extracting key from sources:",n)}return null}const Xv=({boardId:e,hash:t,onBackHome:n})=>{const{t:r}=Rt(),[s,i]=y.useState(""),[o,a]=y.useState(null),[u,c]=y.useState(!0),[h,d]=y.useState(null),[f,k]=y.useState("member"),[N,w]=y.useState([]),[S,m]=y.useState([]),[p,g]=y.useState(ro()),[b,j]=y.useState(null),[R,E]=y.useState(null),[T,D]=y.useState(!1),[P,X]=y.useState(!1),[we,me]=y.useState(!1),[Re,et]=y.useState(!1),[Fe,ge]=y.useState(!1),[A,K]=y.useState(!1),[v,x]=y.useState(""),[_,B]=y.useState(0),[W,q]=y.useState(0);y.useEffect(()=>{const I=U=>{const z=U;z.detail&&g(z.detail)};return window.addEventListener("user_profile_updated",I),()=>window.removeEventListener("user_profile_updated",I)},[]),y.useEffect(()=>{let I=!0;c(!0),d(null);const U=Yv(e,t);if(!U||!U.key){c(!1),me(!0);return}const z=U.key,oe=U.role;i(z),k(oe),(!window.location.hash||!window.location.hash.includes(z))&&(window.location.hash=`${oe}=${z}`);const C=setTimeout(()=>{I&&u&&(c(!1),d("Waktu koneksi habis (Connection timeout). Silakan periksa kembali tautan Anda."))},1e4);return Wg(e,z).then(H=>{if(!I)return;clearTimeout(C),a(H),k(H.role),c(!1),$p({id:H.id,title:H.title,role:H.role,key:z});const Y=$v(e,z,p.userName,p.userId);Y.on("presence_update",M=>{m(M)}),Y.on("active_locks",M=>{w(M)}),Y.on("field_locked",M=>{w(G=>[...G.filter(ce=>!(ce.ticketId===M.ticketId&&ce.field===M.field)),M])}),Y.on("field_unlocked",M=>{w(G=>G.filter(te=>!(te.ticketId===M.ticketId&&te.field===M.field))),M.updatedTicket&&F(M.updatedTicket)}),Y.on("ticket_created",M=>{a(G=>G&&{...G,columns:G.columns.map(te=>te.id===M.ticket.columnId?te.tickets.some(ce=>ce.id===M.ticket.id)?te:{...te,tickets:[...te.tickets,M.ticket]}:te)}),V.playDrop()}),Y.on("ticket_updated",M=>{F(M.ticket)}),Y.on("ticket_deleted",M=>{a(G=>G&&{...G,columns:G.columns.map(te=>({...te,tickets:te.tickets.filter(ce=>ce.id!==M.ticketId)}))}),R&&R.id===M.ticketId&&E(null)}),Y.on("card_moved",M=>{a(G=>{if(!G)return G;let te=null;for(const ce of G.columns){const Z=ce.tickets.find(Se=>Se.id===M.ticketId);if(Z){te={...Z,columnId:M.targetColumnId,order:M.newOrder,movedAt:new Date().toISOString()};break}}return te?{...G,columns:G.columns.map(ce=>{if(ce.id===M.targetColumnId){const Se=[...ce.tickets.filter(de=>de.id!==M.ticketId)];return Se.splice(M.newOrder,0,te),{...ce,tickets:Se}}else return{...ce,tickets:ce.tickets.filter(Z=>Z.id!==M.ticketId)}})}:G}),V.playDrop()}),Y.on("card_move_failed",M=>{V.playLock(),alert(`${r("movementFailed")} ${M.error}`)}),Y.on("column_created",M=>{a(G=>!G||G.columns.some(te=>te.id===M.column.id)?G:{...G,columns:[...G.columns,M.column]})}),Y.on("column_updated",M=>{a(G=>G&&{...G,columns:G.columns.map(te=>te.id===M.column.id?M.column:te)})}),Y.on("column_deleted",M=>{a(G=>G&&{...G,columns:G.columns.filter(te=>te.id!==M.columnId)})}),Y.on("columns_reordered",M=>{a(G=>{if(!G)return G;const te=new Map(G.columns.map(Z=>[Z.id,Z])),ce=M.columnIdsInOrder.map(Z=>te.get(Z)).filter(Boolean);return{...G,columns:ce}})}),Y.on("board_settings_updated",M=>{a(G=>G&&{...G,autoMoveStale:M.autoMoveStale})}),Y.on("member_session_revoked",M=>{V.playLock(),alert(M.message||r("sessionRevokedMsg")),window.location.href="/"}),Y.on("board_refreshed",M=>{a(M)})}).catch(H=>{I&&(clearTimeout(C),d(H.message||"Failed to authenticate or load board"),c(!1))}),()=>{I=!1,clearTimeout(C),Hv()}},[e,t]);const F=y.useCallback(I=>{a(U=>U&&{...U,columns:U.columns.map(z=>({...z,tickets:z.tickets.map(oe=>oe.id===I.id?I:oe)}))}),E(U=>U&&U.id===I.id?I:U)},[]),$=fy(ed(Du,{activationConstraint:{distance:8}}),ed(Mu,{coordinateGetter:Wx})),J=y.useMemo(()=>(o==null?void 0:o.columns.map(I=>I.id))||[],[o]),ne=I=>{V.playClick();const{active:U}=I,z=U.data.current;(z==null?void 0:z.type)==="Ticket"?j({type:"Ticket",data:z.ticket}):(z==null?void 0:z.type)==="Column"&&j({type:"Column",data:z.column})},Q=I=>{var G,te,ce;const{active:U,over:z}=I;if(!z||!o)return;const oe=String(U.id),C=String(z.id);if(oe===C)return;const H=((G=U.data.current)==null?void 0:G.type)==="Ticket",Y=((te=z.data.current)==null?void 0:te.type)==="Ticket",M=((ce=z.data.current)==null?void 0:ce.type)==="Column";H&&(Y&&a(Z=>{if(!Z)return Z;const Se=Z.columns.find(De=>De.tickets.some(Dr=>Dr.id===oe)),de=Z.columns.find(De=>De.tickets.some(Dr=>Dr.id===C));if(!Se||!de||Se.id===de.id||de.maxWipLimit>0&&de.tickets.length>=de.maxWipLimit)return Z;const ln=Se.tickets.find(De=>De.id===oe),In=de.tickets.findIndex(De=>De.id===C),Ar=Se.tickets.filter(De=>De.id!==oe),Ae=[...de.tickets];return Ae.splice(In,0,{...ln,columnId:de.id,movedAt:new Date().toISOString()}),{...Z,columns:Z.columns.map(De=>De.id===Se.id?{...De,tickets:Ar}:De.id===de.id?{...De,tickets:Ae}:De)}}),M&&a(Z=>{if(!Z)return Z;const Se=Z.columns.find(Ae=>Ae.tickets.some(De=>De.id===oe)),de=Z.columns.find(Ae=>Ae.id===C);if(!Se||!de||Se.id===de.id||de.maxWipLimit>0&&de.tickets.length>=de.maxWipLimit)return Z;const ln=Se.tickets.find(Ae=>Ae.id===oe),In=Se.tickets.filter(Ae=>Ae.id!==oe),Ar=[...de.tickets,{...ln,columnId:de.id,movedAt:new Date().toISOString()}];return{...Z,columns:Z.columns.map(Ae=>Ae.id===Se.id?{...Ae,tickets:In}:Ae.id===de.id?{...Ae,tickets:Ar}:Ae)}}))},ae=I=>{var H,Y;j(null);const{active:U,over:z}=I;if(!z||!o)return;const oe=String(U.id),C=String(z.id);if(V.playDrop(),((H=U.data.current)==null?void 0:H.type)==="Column"&&f==="admin"){if(oe!==C){const M=o.columns.findIndex(Z=>Z.id===oe),G=o.columns.findIndex(Z=>Z.id===C),te=Pu(o.columns,M,G);a({...o,columns:te});const ce=ye();ce&&ce.emit("reorder_columns",{columnIdsInOrder:te.map(Z=>Z.id)})}return}if(((Y=U.data.current)==null?void 0:Y.type)==="Ticket"){const M=o.columns.find(Z=>Z.tickets.some(Se=>Se.id===oe));if(!M)return;const G=M.tickets.findIndex(Z=>Z.id===oe),te=M.tickets.map(Z=>Z.id),ce=ye();ce&&ce.emit("card_moved",{ticketId:oe,targetColumnId:M.id,newOrder:G,ticketIdsInTargetColumn:te})}},se=I=>{if(I.preventDefault(),!v.trim())return;V.playClick();const U=ye();U&&U.emit("create_column",{title:v.trim(),maxWipLimit:_,autoStaleHours:W}),x(""),B(0),q(0),K(!1)},he=(I,U)=>{const z=ye();z&&z.emit("update_column",{columnId:I,updates:U})},ee=I=>{const U=ye();U&&U.emit("delete_column",{columnId:I})},ve=(I,U)=>{const z=o==null?void 0:o.columns.find(C=>C.id===I);if(z&&z.maxWipLimit>0&&z.tickets.length>=z.maxWipLimit){V.playLock(),alert(r("wipWarningModal"));return}const oe=ye();oe&&oe.emit("create_ticket",{columnId:I,title:U,priority:"MEDIUM",tags:[],subtasks:[],dueDate:"",isBlocked:!1})},_e=()=>{if(f!=="admin"||!o)return;V.playClick();const I=!o.autoMoveStale;a({...o,autoMoveStale:I});const U=ye();U&&U.emit("update_board_settings",{autoMoveStale:I})},Ue=async()=>{if(f==="admin"&&(V.playClick(),confirm("🚨 Hapus papan Kanban ini secara permanen? Tindakan ini tidak dapat dibatalkan.")))try{await qg(e,s),window.location.href="/"}catch(I){alert(I.message||"Failed to delete board")}};return we?l.jsx(Gv,{boardId:e,onKeyProvided:(I,U)=>{me(!1),i(I),U&&k(U)}}):u?l.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[70vh] gap-4",children:[l.jsx("div",{className:"w-10 h-10 border-3 border-indigo-500 border-t-transparent rounded-full animate-spin"}),l.jsx("p",{className:"text-sm font-semibold text-indigo-600 dark:text-indigo-400 animate-pulse",children:r("connectingToRealm")})]}):h||!o?l.jsxs("div",{className:"max-w-md mx-auto my-12 sm:my-20 p-5 sm:p-8 card-kanban border-rose-500/50 text-center mx-4",children:[l.jsx(xg,{size:36,className:"text-rose-500 mx-auto mb-3"}),l.jsx("h2",{className:"text-base font-bold text-rose-600 dark:text-rose-400 mb-2",children:r("accessForbidden")}),l.jsx("p",{className:"text-xs text-slate-600 dark:text-slate-300 mb-5 leading-relaxed",children:h||r("accessForbiddenDesc")}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{onClick:n,className:"btn-modern-secondary flex-1 py-2",children:r("backToHome")}),l.jsx("button",{onClick:()=>{me(!0),d(null)},className:"btn-modern-primary flex-1 py-2",children:r("reEnterKey")})]})]}):l.jsxs("div",{className:"flex flex-col min-h-[calc(100vh-60px)]",children:[l.jsxs("div",{className:"bg-white/95 dark:bg-[#090d18]/90 border-b border-slate-200 dark:border-slate-800 px-3 sm:px-4 py-2.5 sm:py-3 shadow-sm transition-colors duration-200",children:[l.jsxs("div",{className:"max-w-7xl mx-auto flex flex-wrap items-center justify-between gap-2.5 sm:gap-3",children:[l.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 min-w-0",children:[l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"p-1.5 sm:p-2 bg-slate-100 dark:bg-slate-800/80 border border-slate-200 dark:border-slate-700/80 rounded-lg text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-100 transition-colors shrink-0",title:r("backToHome"),children:l.jsx(yg,{size:15})}),l.jsx("div",{className:"min-w-0",children:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("h2",{className:"text-sm sm:text-base md:text-lg font-bold text-slate-900 dark:text-white tracking-tight truncate max-w-[140px] sm:max-w-[280px] md:max-w-md",children:o.title}),l.jsxs("span",{className:`text-[10px] sm:text-[11px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 border shrink-0 ${f==="admin"?"bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-300 border-amber-200 dark:border-amber-500/30":"bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border-indigo-200 dark:border-indigo-500/30"}`,children:[f==="admin"?l.jsx(Op,{size:11,className:"text-amber-600 dark:text-amber-400"}):l.jsx(Cg,{size:11,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:r(f==="admin"?"superadmin":"member")})]})]})})]}),l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 ml-auto",children:[l.jsxs("div",{className:"flex items-center bg-slate-100 dark:bg-slate-950/70 border border-slate-200 dark:border-slate-800 px-2 sm:px-3 py-1 sm:py-1.5 rounded-lg gap-1.5",children:[l.jsx(Up,{size:13,className:"text-indigo-600 dark:text-indigo-400 shrink-0"}),l.jsx("div",{className:"flex -space-x-1 items-center",children:S.slice(0,4).map(I=>l.jsxs("div",{style:{backgroundColor:I.color},className:"w-4 h-4 sm:w-5 sm:h-5 rounded-full border border-white dark:border-slate-900 flex items-center justify-center text-[8px] sm:text-[9px] text-slate-950 font-bold uppercase relative group cursor-default shadow-sm",children:[I.userName.charAt(0),l.jsxs("span",{className:"absolute bottom-full mb-1 left-1/2 -translate-x-1/2 bg-slate-950 text-white text-[10px] px-2 py-1 rounded-md whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-30 border border-slate-800 shadow-md",children:[I.userName," (",I.role,")"]})]},I.socketId))}),l.jsx("span",{className:"text-[11px] sm:text-xs font-semibold text-slate-700 dark:text-slate-300",children:S.length})]}),l.jsxs("button",{onClick:()=>{V.playClick(),ge(!0)},className:"btn-modern-secondary text-[11px] sm:text-xs py-1.5 sm:py-2 px-2.5 sm:px-3",title:r("boardLogsBtn"),children:[l.jsx(Cu,{size:13,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{className:"hidden sm:inline",children:r("boardLogsBtn")})]}),l.jsxs("button",{onClick:()=>{V.playClick(),D(!0)},className:"btn-modern-primary text-[11px] sm:text-xs py-1.5 sm:py-2 px-2.5 sm:px-3.5",children:[l.jsx(Fp,{size:13}),l.jsx("span",{className:"hidden xs:inline",children:r("shareInviteBtn")})]}),f==="admin"&&l.jsxs("button",{onClick:()=>{V.playClick(),et(!Re)},className:`btn-modern text-[11px] sm:text-xs py-1.5 sm:py-2 px-2 sm:px-3 ${o.autoMoveStale?"bg-cyan-600 text-white font-bold":"btn-modern-secondary"}`,title:r("boardSettings"),children:[l.jsx(Jc,{size:13}),l.jsx("span",{className:"hidden sm:inline",children:r("boardSettings")})]}),f==="admin"&&l.jsxs("button",{onClick:()=>{V.playClick(),X(!0)},className:"btn-modern-gold text-[11px] sm:text-xs py-1.5 sm:py-2 px-2 sm:px-3",title:r("rotateKeyTooltip"),children:[l.jsx(no,{size:12}),l.jsx("span",{className:"hidden md:inline",children:r("rotateKeyBtn")})]}),f==="admin"&&l.jsx("button",{onClick:Ue,className:"btn-modern-danger p-1.5 sm:p-2 text-xs",title:r("deleteBoardTooltip"),children:l.jsx(Os,{size:13})})]})]}),Re&&f==="admin"&&l.jsxs("div",{className:"max-w-7xl mx-auto mt-3 p-3 bg-slate-50 dark:bg-slate-950/80 border border-cyan-500/40 rounded-xl flex flex-wrap items-center justify-between gap-2.5 text-xs animate-fade-in shadow-sm",children:[l.jsxs("div",{className:"flex items-center gap-2 text-cyan-800 dark:text-cyan-300 font-medium text-xs",children:[l.jsx(Jc,{size:14}),l.jsx("span",{children:r("autoMoveStaleSetting")})]}),l.jsx("button",{onClick:_e,className:`btn-modern text-xs py-1.5 px-3 font-semibold ${o.autoMoveStale?"bg-emerald-600 text-white":"btn-modern-secondary"}`,children:o.autoMoveStale?"✅ Aktif (Auto-Move ON)":"🚫 Nonaktif"})]})]}),l.jsx("div",{className:"flex-1 p-3 sm:p-4 md:p-6 overflow-x-auto snap-x snap-mandatory scroll-smooth",children:l.jsxs(cx,{sensors:$,collisionDetection:eh,onDragStart:ne,onDragOver:Q,onDragEnd:ae,children:[l.jsxs("div",{className:"flex items-start gap-3.5 sm:gap-5 pb-6",children:[l.jsx(pd,{items:J,strategy:Ax,children:o.columns.map(I=>l.jsx("div",{className:"snap-center",children:l.jsx(pd,{items:I.tickets.map(U=>U.id),strategy:Ix,children:l.jsx(Qx,{column:I,role:f,activeLocks:N,currentUserId:p.userId,onTicketClick:U=>E(U),onAddTicket:ve,onDeleteColumn:ee,onUpdateColumn:he})})},I.id))}),f==="admin"&&l.jsx("div",{className:"w-[82vw] max-w-[320px] sm:w-80 shrink-0 snap-center",children:A?l.jsxs("form",{onSubmit:se,className:"card-kanban border-indigo-500/50 p-4 space-y-3",children:[l.jsx("input",{type:"text",value:v,onChange:I=>x(I.target.value),placeholder:r("columnTitlePlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg text-slate-900 dark:text-slate-100 text-xs p-2.5 outline-none focus:border-indigo-500",autoFocus:!0}),l.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs text-slate-500 dark:text-slate-400",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-[11px] mb-1 font-medium",children:"WIP Limit:"}),l.jsx("input",{type:"number",min:0,value:_,onChange:I=>B(parseInt(I.target.value,10)||0),placeholder:"0 = unlim",className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-1.5 text-slate-900 dark:text-slate-100 text-center"})]}),l.jsxs("div",{children:[l.jsx("label",{className:"block text-[11px] mb-1 font-medium",children:"Stale (Jam):"}),l.jsx("input",{type:"number",min:0,value:W,onChange:I=>q(parseInt(I.target.value,10)||0),placeholder:"0 = off",className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-1.5 text-slate-900 dark:text-slate-100 text-center"})]})]}),l.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[l.jsx("button",{type:"button",onClick:()=>K(!1),className:"btn-modern-secondary text-xs py-1.5 px-3",children:r("cancel")}),l.jsx("button",{type:"submit",className:"btn-modern-primary text-xs py-1.5 px-3 font-bold",children:r("addColumn")})]})]}):l.jsxs("button",{onClick:()=>{V.playClick(),K(!0)},className:"w-full bg-slate-100 hover:bg-slate-200 dark:bg-slate-900/40 dark:hover:bg-slate-900/80 border border-dashed border-slate-300 dark:border-slate-800 hover:border-indigo-500 rounded-2xl p-5 text-xs font-semibold text-slate-600 dark:text-slate-400 hover:text-indigo-600 dark:hover:text-indigo-400 flex items-center justify-center gap-2 transition-all shadow-sm select-none",children:[l.jsx(Eu,{size:16}),l.jsx("span",{children:r("addColumn")})]})})]}),l.jsx(Rx,{children:(b==null?void 0:b.type)==="Ticket"&&l.jsx("div",{className:"w-[82vw] max-w-[320px] sm:w-72 opacity-95 rotate-1 scale-105 shadow-2xl pointer-events-none",children:l.jsx(Sh,{ticket:b.data,activeLocks:[],currentUserId:p.userId,onClick:()=>{}})})})]})}),R&&l.jsx(Wv,{ticket:R,boardId:o.id,boardKey:s,activeLocks:N,currentUserId:p.userId,onClose:()=>E(null),onUpdateTicket:(I,U)=>{F({...R,...U,id:I})},onDeleteTicket:(I,U)=>{a(z=>z&&{...z,columns:z.columns.map(oe=>oe.id===U?{...oe,tickets:oe.tickets.filter(C=>C.id!==I)}:oe)})}}),Fe&&l.jsx(qv,{boardId:o.id,boardKey:s,onClose:()=>ge(!1)}),T&&l.jsx(qp,{boardData:{id:o.id,title:o.title,adminKey:f==="admin"?s:"***",memberKey:f==="member"?s:"***",adminUrlFragment:`/b/${o.id}#admin=${f==="admin"?s:""}`,memberUrlFragment:`/b/${o.id}#member=${f==="member"?s:""}`,createdAt:o.createdAt},onEnterBoard:()=>D(!1)}),P&&f==="admin"&&l.jsx(Kv,{boardId:o.id,adminKey:s,onClose:()=>X(!1)})]})};function Jv(){const{t:e}=Rt(),[t,n]=y.useState(window.location.pathname),[r,s]=y.useState(window.location.hash),[,i]=y.useState("id"),[,o]=y.useState(so()),[,a]=y.useState(js());y.useEffect(()=>{Vp(so()),Kp(js());const f=()=>{n(window.location.pathname),s(window.location.hash)},k=()=>{s(window.location.hash)};return window.addEventListener("popstate",f),window.addEventListener("hashchange",k),()=>{window.removeEventListener("popstate",f),window.removeEventListener("hashchange",k)}},[]);const u=t.startsWith("/b/"),c=u?t.replace("/b/","").split("/")[0]:null,h=()=>{window.history.pushState({},"","/"),n("/"),s("")},d=(f,k)=>{window.history.pushState({},"",`/b/${f}${k}`),n(`/b/${f}`),s(k)};return l.jsxs("div",{className:"min-h-screen bg-slate-50 dark:bg-[#080c18] text-slate-900 dark:text-slate-100 flex flex-col selection:bg-indigo-500 selection:text-white transition-colors duration-200",children:[l.jsx(Hg,{onHomeClick:h,onLanguageChange:f=>i(f),onThemeChange:f=>o(f),onRetroModeChange:f=>a(f)}),l.jsx("main",{className:"flex-1",children:u&&c?l.jsx(Xv,{boardId:c,hash:r,onBackHome:h},`${c}_${r}`):l.jsx(Xg,{onOpenBoard:d})}),l.jsx("footer",{className:"border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950/80 py-4 px-4 text-center text-xs text-slate-500 dark:text-slate-400 transition-colors duration-200",children:l.jsxs("p",{children:["🔗 ",e("footerText")]})})]})}wa.createRoot(document.getElementById("root")).render(l.jsx(Ne.StrictMode,{children:l.jsx(Jv,{})})); + `},cy={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function dy(e){let{announcements:t=cy,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=uy}=e;const{announce:i,announcement:o}=oy(),a=Fs("DndLiveRegion"),[u,c]=y.useState(!1);if(y.useEffect(()=>{c(!0)},[]),ay(y.useMemo(()=>({onDragStart(d){let{active:f}=d;i(t.onDragStart({active:f}))},onDragMove(d){let{active:f,over:k}=d;t.onDragMove&&i(t.onDragMove({active:f,over:k}))},onDragOver(d){let{active:f,over:k}=d;i(t.onDragOver({active:f,over:k}))},onDragEnd(d){let{active:f,over:k}=d;i(t.onDragEnd({active:f,over:k}))},onDragCancel(d){let{active:f,over:k}=d;i(t.onDragCancel({active:f,over:k}))}}),[i,t])),!u)return null;const h=Ne.createElement(Ne.Fragment,null,Ne.createElement(sy,{id:r,value:s.draggable}),Ne.createElement(iy,{id:a,announcement:o}));return n?cr.createPortal(h,n):h}var Be;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(Be||(Be={}));function lo(){}function ed(e,t){return y.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function fy(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const zt=Object.freeze({x:0,y:0});function py(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function hy(e,t){const n=ao(e);if(!n)return"0 0";const r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}function my(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function gy(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function td(e){let{left:t,top:n,height:r,width:s}=e;return[{x:t,y:n},{x:t+s,y:n},{x:t,y:n+r},{x:t+s,y:n+r}]}function Zp(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}const eh=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=td(t),i=[];for(const o of r){const{id:a}=o,u=n.get(a);if(u){const c=td(u),h=s.reduce((f,k,N)=>f+py(c[N],k),0),d=Number((h/4).toFixed(4));i.push({id:a,data:{droppableContainer:o,value:d}})}}return i.sort(my)};function yy(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),o=s-r,a=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:o}=i,a=n.get(o);if(a){const u=yy(a,t);u>0&&s.push({id:o,data:{droppableContainer:i,value:u}})}}return s.sort(gy)};function vy(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function th(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:zt}function ky(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...o,top:o.top+e*a.y,bottom:o.bottom+e*a.y,left:o.left+e*a.x,right:o.right+e*a.x}),{...n})}}const by=ky(1);function nh(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function wy(e,t,n){const r=nh(t);if(!r)return e;const{scaleX:s,scaleY:i,x:o,y:a}=r,u=e.left-o-(1-s)*parseFloat(n),c=e.top-a-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),h=s?e.width/s:e.width,d=i?e.height/i:e.height;return{width:h,height:d,top:c,right:u+h,bottom:c+d,left:u}}const Sy={ignoreTransform:!1};function Lr(e,t){t===void 0&&(t=Sy);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:c,transformOrigin:h}=it(e).getComputedStyle(e);c&&(n=wy(n,c,h))}const{top:r,left:s,width:i,height:o,bottom:a,right:u}=n;return{top:r,left:s,width:i,height:o,bottom:a,right:u}}function nd(e){return Lr(e,{ignoreTransform:!0})}function Ny(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Cy(e,t){return t===void 0&&(t=it(e).getComputedStyle(e)),t.position==="fixed"}function Ey(e,t){t===void 0&&(t=it(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function Io(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(_u(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Bs(s)||Yp(s)||n.includes(s))return n;const i=it(e).getComputedStyle(s);return s!==e&&Ey(s,i)&&n.push(s),Cy(s,i)?n:r(s.parentNode)}return e?r(e):n}function rh(e){const[t]=Io(e,1);return t??null}function ma(e){return!Mo||!e?null:Rr(e)?e:Ru(e)?_u(e)||e===_r(e).scrollingElement?window:Bs(e)?e:null:null}function sh(e){return Rr(e)?e.scrollX:e.scrollLeft}function ih(e){return Rr(e)?e.scrollY:e.scrollTop}function wl(e){return{x:sh(e),y:ih(e)}}var He;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(He||(He={}));function oh(e){return!Mo||!e?!1:e===document.scrollingElement}function ah(e){const t={x:0,y:0},n=oh(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:o,isRight:a,maxScroll:r,minScroll:t}}const Ty={x:.2,y:.2};function jy(e,t,n,r,s){let{top:i,left:o,right:a,bottom:u}=n;r===void 0&&(r=10),s===void 0&&(s=Ty);const{isTop:c,isBottom:h,isLeft:d,isRight:f}=ah(e),k={x:0,y:0},N={x:0,y:0},w={height:t.height*s.y,width:t.width*s.x};return!c&&i<=t.top+w.height?(k.y=He.Backward,N.y=r*Math.abs((t.top+w.height-i)/w.height)):!h&&u>=t.bottom-w.height&&(k.y=He.Forward,N.y=r*Math.abs((t.bottom-w.height-u)/w.height)),!f&&a>=t.right-w.width?(k.x=He.Forward,N.x=r*Math.abs((t.right-w.width-a)/w.width)):!d&&o<=t.left+w.width&&(k.x=He.Backward,N.x=r*Math.abs((t.left+w.width-o)/w.width)),{direction:k,speed:N}}function Ry(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:o}=window;return{top:0,left:0,right:i,bottom:o,width:i,height:o}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function lh(e){return e.reduce((t,n)=>xr(t,wl(n)),zt)}function _y(e){return e.reduce((t,n)=>t+sh(n),0)}function Ly(e){return e.reduce((t,n)=>t+ih(n),0)}function uh(e,t){if(t===void 0&&(t=Lr),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);rh(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const My=[["x",["left","right"],_y],["y",["top","bottom"],Ly]];class Lu{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Io(n),s=lh(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,o,a]of My)for(const u of o)Object.defineProperty(this,u,{get:()=>{const c=a(r),h=s[i]-c;return this.rect[u]+h},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class as{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function Ay(e){const{EventTarget:t}=it(e);return e instanceof t?e:_r(e)}function ga(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var bt;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(bt||(bt={}));function rd(e){e.preventDefault()}function Dy(e){e.stopPropagation()}var le;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(le||(le={}));const ch={start:[le.Space,le.Enter],cancel:[le.Esc],end:[le.Space,le.Enter,le.Tab]},Iy=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case le.Right:return{...n,x:n.x+25};case le.Left:return{...n,x:n.x-25};case le.Down:return{...n,y:n.y+25};case le.Up:return{...n,y:n.y-25}}};class Mu{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new as(_r(n)),this.windowListeners=new as(it(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(bt.Resize,this.handleCancel),this.windowListeners.add(bt.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(bt.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&uh(r),n(zt)}handleKeyDown(t){if(Do(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=ch,coordinateGetter:o=Iy,scrollBehavior:a="smooth"}=s,{code:u}=t;if(i.end.includes(u)){this.handleEnd(t);return}if(i.cancel.includes(u)){this.handleCancel(t);return}const{collisionRect:c}=r.current,h=c?{x:c.left,y:c.top}:zt;this.referenceCoordinates||(this.referenceCoordinates=h);const d=o(t,{active:n,context:r.current,currentCoordinates:h});if(d){const f=_s(d,h),k={x:0,y:0},{scrollableAncestors:N}=r.current;for(const w of N){const S=t.code,{isTop:m,isRight:p,isLeft:g,isBottom:b,maxScroll:j,minScroll:R}=ah(w),E=Ry(w),T={x:Math.min(S===le.Right?E.right-E.width/2:E.right,Math.max(S===le.Right?E.left:E.left+E.width/2,d.x)),y:Math.min(S===le.Down?E.bottom-E.height/2:E.bottom,Math.max(S===le.Down?E.top:E.top+E.height/2,d.y))},D=S===le.Right&&!p||S===le.Left&&!g,I=S===le.Down&&!b||S===le.Up&&!m;if(D&&T.x!==d.x){const X=w.scrollLeft+f.x,we=S===le.Right&&X<=j.x||S===le.Left&&X>=R.x;if(we&&!f.y){w.scrollTo({left:X,behavior:a});return}we?k.x=w.scrollLeft-X:k.x=S===le.Right?w.scrollLeft-j.x:w.scrollLeft-R.x,k.x&&w.scrollBy({left:-k.x,behavior:a});break}else if(I&&T.y!==d.y){const X=w.scrollTop+f.y,we=S===le.Down&&X<=j.y||S===le.Up&&X>=R.y;if(we&&!f.x){w.scrollTo({top:X,behavior:a});return}we?k.y=w.scrollTop-X:k.y=S===le.Down?w.scrollTop-j.y:w.scrollTop-R.y,k.y&&w.scrollBy({top:-k.y,behavior:a});break}}this.handleMove(t,xr(_s(d,this.referenceCoordinates),k))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Mu.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=ch,onActivation:s}=t,{active:i}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const a=i.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function sd(e){return!!(e&&"distance"in e)}function id(e){return!!(e&&"delay"in e)}class Au{constructor(t,n,r){var s;r===void 0&&(r=Ay(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:o}=i;this.props=t,this.events=n,this.document=_r(o),this.documentListeners=new as(this.document),this.listeners=new as(r),this.windowListeners=new as(it(o)),this.initialCoordinates=(s=ao(i))!=null?s:zt,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(bt.Resize,this.handleCancel),this.windowListeners.add(bt.DragStart,rd),this.windowListeners.add(bt.VisibilityChange,this.handleCancel),this.windowListeners.add(bt.ContextMenu,rd),this.documentListeners.add(bt.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(id(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(sd(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(bt.Click,Dy,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(bt.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:o,options:{activationConstraint:a}}=i;if(!s)return;const u=(n=ao(t))!=null?n:zt,c=_s(s,u);if(!r&&a){if(sd(a)){if(a.tolerance!=null&&ga(c,a.tolerance))return this.handleCancel();if(ga(c,a.distance))return this.handleStart()}if(id(a)&&ga(c,a.tolerance))return this.handleCancel();this.handlePending(a,c);return}t.cancelable&&t.preventDefault(),o(u)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===le.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Py={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Du extends Au{constructor(t){const{event:n}=t,r=_r(n.target);super(t,Py,r)}}Du.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const Oy={move:{name:"mousemove"},end:{name:"mouseup"}};var Sl;(function(e){e[e.RightClick=2]="RightClick"})(Sl||(Sl={}));class By extends Au{constructor(t){super(t,Oy,_r(t.event.target))}}By.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Sl.RightClick?!1:(r==null||r({event:n}),!0)}}];const ya={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class zy extends Au{constructor(t){super(t,ya)}static setup(){return window.addEventListener(ya.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(ya.move.name,t)};function t(){}}}zy.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var ls;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(ls||(ls={}));var uo;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(uo||(uo={}));function Fy(e){let{acceleration:t,activator:n=ls.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:o=5,order:a=uo.TreeOrder,pointerCoordinates:u,scrollableAncestors:c,scrollableAncestorRects:h,delta:d,threshold:f}=e;const k=$y({delta:d,disabled:!i}),[N,w]=Zg(),S=y.useRef({x:0,y:0}),m=y.useRef({x:0,y:0}),p=y.useMemo(()=>{switch(n){case ls.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case ls.DraggableRect:return s}},[n,s,u]),g=y.useRef(null),b=y.useCallback(()=>{const R=g.current;if(!R)return;const E=S.current.x*m.current.x,T=S.current.y*m.current.y;R.scrollBy(E,T)},[]),j=y.useMemo(()=>a===uo.TreeOrder?[...c].reverse():c,[a,c]);y.useEffect(()=>{if(!i||!c.length||!p){w();return}for(const R of j){if((r==null?void 0:r(R))===!1)continue;const E=c.indexOf(R),T=h[E];if(!T)continue;const{direction:D,speed:I}=jy(R,T,p,t,f);for(const X of["x","y"])k[X][D[X]]||(I[X]=0,D[X]=0);if(I.x>0||I.y>0){w(),g.current=R,N(b,o),S.current=I,m.current=D;return}}S.current={x:0,y:0},m.current={x:0,y:0},w()},[t,b,r,w,i,o,JSON.stringify(p),JSON.stringify(k),N,c,j,h,JSON.stringify(f)])}const Uy={x:{[He.Backward]:!1,[He.Forward]:!1},y:{[He.Backward]:!1,[He.Forward]:!1}};function $y(e){let{delta:t,disabled:n}=e;const r=oo(t);return zs(s=>{if(n||!r||!s)return Uy;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[He.Backward]:s.x[He.Backward]||i.x===-1,[He.Forward]:s.x[He.Forward]||i.x===1},y:{[He.Backward]:s.y[He.Backward]||i.y===-1,[He.Forward]:s.y[He.Forward]||i.y===1}}},[n,t,r])}function Hy(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return zs(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function Vy(e,t){return y.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...i]},[]),[e,t])}var Ls;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ls||(Ls={}));var Nl;(function(e){e.Optimized="optimized"})(Nl||(Nl={}));const od=new Map;function Ky(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,o]=y.useState(null),{frequency:a,measure:u,strategy:c}=s,h=y.useRef(e),d=S(),f=Rs(d),k=y.useCallback(function(m){m===void 0&&(m=[]),!f.current&&o(p=>p===null?m:p.concat(m.filter(g=>!p.includes(g))))},[f]),N=y.useRef(null),w=zs(m=>{if(d&&!n)return od;if(!m||m===od||h.current!==e||i!=null){const p=new Map;for(let g of e){if(!g)continue;if(i&&i.length>0&&!i.includes(g.id)&&g.rect.current){p.set(g.id,g.rect.current);continue}const b=g.node.current,j=b?new Lu(u(b),b):null;g.rect.current=j,j&&p.set(g.id,j)}return p}return m},[e,i,n,d,u]);return y.useEffect(()=>{h.current=e},[e]),y.useEffect(()=>{d||k()},[n,d]),y.useEffect(()=>{i&&i.length>0&&o(null)},[JSON.stringify(i)]),y.useEffect(()=>{d||typeof a!="number"||N.current!==null||(N.current=setTimeout(()=>{k(),N.current=null},a))},[a,d,k,...r]),{droppableRects:w,measureDroppableContainers:k,measuringScheduled:i!=null};function S(){switch(c){case Ls.Always:return!1;case Ls.BeforeDragging:return n;default:return!n}}}function Iu(e,t){return zs(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Wy(e,t){return Iu(e,t)}function Gy(e){let{callback:t,disabled:n}=e;const r=Ao(t),s=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return y.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Po(e){let{callback:t,disabled:n}=e;const r=Ao(t),s=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return y.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Qy(e){return new Lu(Lr(e),e)}function ad(e,t,n){t===void 0&&(t=Qy);const[r,s]=y.useState(null);function i(){s(u=>{if(!e)return null;if(e.isConnected===!1){var c;return(c=u??n)!=null?c:null}const h=t(e);return JSON.stringify(u)===JSON.stringify(h)?u:h})}const o=Gy({callback(u){if(e)for(const c of u){const{type:h,target:d}=c;if(h==="childList"&&d instanceof HTMLElement&&d.contains(e)){i();break}}}}),a=Po({callback:i});return Bt(()=>{i(),e?(a==null||a.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(a==null||a.disconnect(),o==null||o.disconnect())},[e]),r}function qy(e){const t=Iu(e);return th(e,t)}const ld=[];function Yy(e){const t=y.useRef(e),n=zs(r=>e?r&&r!==ld&&e&&t.current&&e.parentNode===t.current.parentNode?r:Io(e):ld,[e]);return y.useEffect(()=>{t.current=e},[e]),n}function Xy(e){const[t,n]=y.useState(null),r=y.useRef(e),s=y.useCallback(i=>{const o=ma(i.target);o&&n(a=>a?(a.set(o,wl(o)),new Map(a)):null)},[]);return y.useEffect(()=>{const i=r.current;if(e!==i){o(i);const a=e.map(u=>{const c=ma(u);return c?(c.addEventListener("scroll",s,{passive:!0}),[c,wl(c)]):null}).filter(u=>u!=null);n(a.length?new Map(a):null),r.current=e}return()=>{o(e),o(i)};function o(a){a.forEach(u=>{const c=ma(u);c==null||c.removeEventListener("scroll",s)})}},[s,e]),y.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,o)=>xr(i,o),zt):lh(e):zt,[e,t])}function ud(e,t){t===void 0&&(t=[]);const n=y.useRef(null);return y.useEffect(()=>{n.current=null},t),y.useEffect(()=>{const r=e!==zt;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?_s(e,n.current):zt}function Jy(e){y.useEffect(()=>{if(!Mo)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Zy(e,t){return y.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=o=>{i(o,t)},n},{}),[e,t])}function dh(e){return y.useMemo(()=>e?Ny(e):null,[e])}const cd=[];function ex(e,t){t===void 0&&(t=Lr);const[n]=e,r=dh(n?it(n):null),[s,i]=y.useState(cd);function o(){i(()=>e.length?e.map(u=>oh(u)?r:new Lu(t(u),u)):cd)}const a=Po({callback:o});return Bt(()=>{a==null||a.disconnect(),o(),e.forEach(u=>a==null?void 0:a.observe(u))},[e]),s}function fh(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Bs(t)?t:e}function tx(e){let{measure:t}=e;const[n,r]=y.useState(null),s=y.useCallback(c=>{for(const{target:h}of c)if(Bs(h)){r(d=>{const f=t(h);return d?{...d,width:f.width,height:f.height}:f});break}},[t]),i=Po({callback:s}),o=y.useCallback(c=>{const h=fh(c);i==null||i.disconnect(),h&&(i==null||i.observe(h)),r(h?t(h):null)},[t,i]),[a,u]=io(o);return y.useMemo(()=>({nodeRef:a,rect:n,setRef:u}),[n,a,u])}const nx=[{sensor:Du,options:{}},{sensor:Mu,options:{}}],rx={current:{}},Ci={draggable:{measure:nd},droppable:{measure:nd,strategy:Ls.WhileDragging,frequency:Nl.Optimized},dragOverlay:{measure:Lr}};class us extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const sx={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new us,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:lo},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Ci,measureDroppableContainers:lo,windowRect:null,measuringScheduled:!1},ph={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:lo,draggableNodes:new Map,over:null,measureDroppableContainers:lo},Us=y.createContext(ph),hh=y.createContext(sx);function ix(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new us}}}function ox(e,t){switch(t.type){case Be.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Be.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Be.DragEnd:case Be.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Be.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new us(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case Be.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new us(e.droppable.containers);return o.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:o}}}case Be.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new us(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function ax(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=y.useContext(Us),i=oo(r),o=oo(n==null?void 0:n.id);return y.useEffect(()=>{if(!t&&!r&&i&&o!=null){if(!Do(i)||document.activeElement===i.target)return;const a=s.get(o);if(!a)return;const{activatorNode:u,node:c}=a;if(!u.current&&!c.current)return;requestAnimationFrame(()=>{for(const h of[u.current,c.current]){if(!h)continue;const d=ny(h);if(d){d.focus();break}}})}},[r,t,s,o,i]),null}function mh(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function lx(e){return y.useMemo(()=>({draggable:{...Ci.draggable,...e==null?void 0:e.draggable},droppable:{...Ci.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Ci.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function ux(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=y.useRef(!1),{x:o,y:a}=typeof s=="boolean"?{x:s,y:s}:s;Bt(()=>{if(!o&&!a||!t){i.current=!1;return}if(i.current||!r)return;const c=t==null?void 0:t.node.current;if(!c||c.isConnected===!1)return;const h=n(c),d=th(h,r);if(o||(d.x=0),a||(d.y=0),i.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const f=rh(c);f&&f.scrollBy({top:d.y,left:d.x})}},[t,o,a,r,n])}const Oo=y.createContext({...zt,scaleX:1,scaleY:1});var mn;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(mn||(mn={}));const cx=y.memo(function(t){var n,r,s,i;let{id:o,accessibility:a,autoScroll:u=!0,children:c,sensors:h=nx,collisionDetection:d=xy,measuring:f,modifiers:k,...N}=t;const w=y.useReducer(ox,void 0,ix),[S,m]=w,[p,g]=ly(),[b,j]=y.useState(mn.Uninitialized),R=b===mn.Initialized,{draggable:{active:E,nodes:T,translate:D},droppable:{containers:I}}=S,X=E!=null?T.get(E):null,we=y.useRef({initial:null,translated:null}),me=y.useMemo(()=>{var qe;return E!=null?{id:E,data:(qe=X==null?void 0:X.data)!=null?qe:rx,rect:we}:null},[E,X]),Re=y.useRef(null),[et,Fe]=y.useState(null),[ge,A]=y.useState(null),W=Rs(N,Object.values(N)),v=Fs("DndDescribedBy",o),x=y.useMemo(()=>I.getEnabled(),[I]),_=lx(f),{droppableRects:B,measureDroppableContainers:K,measuringScheduled:q}=Ky(x,{dragging:R,dependencies:[D.x,D.y],config:_.droppable}),F=Hy(T,E),$=y.useMemo(()=>ge?ao(ge):null,[ge]),J=zh(),ne=Wy(F,_.draggable.measure);ux({activeNode:E!=null?T.get(E):null,config:J.layoutShiftCompensation,initialRect:ne,measure:_.draggable.measure});const Q=ad(F,_.draggable.measure,ne),ae=ad(F?F.parentElement:null),se=y.useRef({activatorEvent:null,active:null,activeNode:F,collisionRect:null,collisions:null,droppableRects:B,draggableNodes:T,draggingNode:null,draggingNodeRect:null,droppableContainers:I,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),he=I.getNodeFor((n=se.current.over)==null?void 0:n.id),ee=tx({measure:_.dragOverlay.measure}),ve=(r=ee.nodeRef.current)!=null?r:F,_e=R?(s=ee.rect)!=null?s:Q:null,Ue=!!(ee.nodeRef.current&&ee.rect),P=qy(Ue?null:Q),U=dh(ve?it(ve):null),z=Yy(R?he??F:null),oe=ex(z),C=mh(k,{transform:{x:D.x-P.x,y:D.y-P.y,scaleX:1,scaleY:1},activatorEvent:ge,active:me,activeNodeRect:Q,containerNodeRect:ae,draggingNodeRect:_e,over:se.current.over,overlayNodeRect:ee.rect,scrollableAncestors:z,scrollableAncestorRects:oe,windowRect:U}),H=$?xr($,D):null,Y=Xy(z),M=ud(Y),G=ud(Y,[Q]),te=xr(C,M),ce=_e?by(_e,C):null,Z=me&&ce?d({active:me,collisionRect:ce,droppableRects:B,droppableContainers:x,pointerCoordinates:H}):null,Se=Zp(Z,"id"),[de,ln]=y.useState(null),In=Ue?C:xr(C,G),Ar=vy(In,(i=de==null?void 0:de.rect)!=null?i:null,Q),Ae=y.useRef(null),De=y.useCallback((qe,dt)=>{let{sensor:ft,options:un}=dt;if(Re.current==null)return;const kt=T.get(Re.current);if(!kt)return;const pt=qe.nativeEvent,Ft=new ft({active:Re.current,activeNode:kt,event:pt,options:un,context:se,onAbort(Ke){if(!T.get(Ke))return;const{onDragAbort:Ut}=W.current,qt={id:Ke};Ut==null||Ut(qt),p({type:"onDragAbort",event:qt})},onPending(Ke,cn,Ut,qt){if(!T.get(Ke))return;const{onDragPending:Pr}=W.current,dn={id:Ke,constraint:cn,initialCoordinates:Ut,offset:qt};Pr==null||Pr(dn),p({type:"onDragPending",event:dn})},onStart(Ke){const cn=Re.current;if(cn==null)return;const Ut=T.get(cn);if(!Ut)return;const{onDragStart:qt}=W.current,Ir={activatorEvent:pt,active:{id:cn,data:Ut.data,rect:we}};cr.unstable_batchedUpdates(()=>{qt==null||qt(Ir),j(mn.Initializing),m({type:Be.DragStart,initialCoordinates:Ke,active:cn}),p({type:"onDragStart",event:Ir}),Fe(Ae.current),A(pt)})},onMove(Ke){m({type:Be.DragMove,coordinates:Ke})},onEnd:Yn(Be.DragEnd),onCancel:Yn(Be.DragCancel)});Ae.current=Ft;function Yn(Ke){return async function(){const{active:Ut,collisions:qt,over:Ir,scrollAdjustedTranslate:Pr}=se.current;let dn=null;if(Ut&&Pr){const{cancelDrop:Or}=W.current;dn={activatorEvent:pt,active:Ut,collisions:qt,delta:Pr,over:Ir},Ke===Be.DragEnd&&typeof Or=="function"&&await Promise.resolve(Or(dn))&&(Ke=Be.DragCancel)}Re.current=null,cr.unstable_batchedUpdates(()=>{m({type:Ke}),j(mn.Uninitialized),ln(null),Fe(null),A(null),Ae.current=null;const Or=Ke===Be.DragEnd?"onDragEnd":"onDragCancel";if(dn){const Fo=W.current[Or];Fo==null||Fo(dn),p({type:Or,event:dn})}})}}},[T]),Dr=y.useCallback((qe,dt)=>(ft,un)=>{const kt=ft.nativeEvent,pt=T.get(un);if(Re.current!==null||!pt||kt.dndKit||kt.defaultPrevented)return;const Ft={active:pt};qe(ft,dt.options,Ft)===!0&&(kt.dndKit={capturedBy:dt.sensor},Re.current=un,De(ft,dt))},[T,De]),$u=Vy(h,Dr);Jy(h),Bt(()=>{Q&&b===mn.Initializing&&j(mn.Initialized)},[Q,b]),y.useEffect(()=>{const{onDragMove:qe}=W.current,{active:dt,activatorEvent:ft,collisions:un,over:kt}=se.current;if(!dt||!ft)return;const pt={active:dt,activatorEvent:ft,collisions:un,delta:{x:te.x,y:te.y},over:kt};cr.unstable_batchedUpdates(()=>{qe==null||qe(pt),p({type:"onDragMove",event:pt})})},[te.x,te.y]),y.useEffect(()=>{const{active:qe,activatorEvent:dt,collisions:ft,droppableContainers:un,scrollAdjustedTranslate:kt}=se.current;if(!qe||Re.current==null||!dt||!kt)return;const{onDragOver:pt}=W.current,Ft=un.get(Se),Yn=Ft&&Ft.rect.current?{id:Ft.id,rect:Ft.rect.current,data:Ft.data,disabled:Ft.disabled}:null,Ke={active:qe,activatorEvent:dt,collisions:ft,delta:{x:kt.x,y:kt.y},over:Yn};cr.unstable_batchedUpdates(()=>{ln(Yn),pt==null||pt(Ke),p({type:"onDragOver",event:Ke})})},[Se]),Bt(()=>{se.current={activatorEvent:ge,active:me,activeNode:F,collisionRect:ce,collisions:Z,droppableRects:B,draggableNodes:T,draggingNode:ve,draggingNodeRect:_e,droppableContainers:I,over:de,scrollableAncestors:z,scrollAdjustedTranslate:te},we.current={initial:_e,translated:ce}},[me,F,Z,ce,T,ve,_e,B,I,de,z,te]),Fy({...J,delta:D,draggingRect:ce,pointerCoordinates:H,scrollableAncestors:z,scrollableAncestorRects:oe});const Oh=y.useMemo(()=>({active:me,activeNode:F,activeNodeRect:Q,activatorEvent:ge,collisions:Z,containerNodeRect:ae,dragOverlay:ee,draggableNodes:T,droppableContainers:I,droppableRects:B,over:de,measureDroppableContainers:K,scrollableAncestors:z,scrollableAncestorRects:oe,measuringConfiguration:_,measuringScheduled:q,windowRect:U}),[me,F,Q,ge,Z,ae,ee,T,I,B,de,K,z,oe,_,q,U]),Bh=y.useMemo(()=>({activatorEvent:ge,activators:$u,active:me,activeNodeRect:Q,ariaDescribedById:{draggable:v},dispatch:m,draggableNodes:T,over:de,measureDroppableContainers:K}),[ge,$u,me,Q,m,v,T,de,K]);return Ne.createElement(Jp.Provider,{value:g},Ne.createElement(Us.Provider,{value:Bh},Ne.createElement(hh.Provider,{value:Oh},Ne.createElement(Oo.Provider,{value:Ar},c)),Ne.createElement(ax,{disabled:(a==null?void 0:a.restoreFocus)===!1})),Ne.createElement(dy,{...a,hiddenTextDescribedById:v}));function zh(){const qe=(et==null?void 0:et.autoScrollEnabled)===!1,dt=typeof u=="object"?u.enabled===!1:u===!1,ft=R&&!qe&&!dt;return typeof u=="object"?{...u,enabled:ft}:{enabled:ft}}}),dx=y.createContext(null),dd="button",fx="Draggable";function px(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Fs(fx),{activators:o,activatorEvent:a,active:u,activeNodeRect:c,ariaDescribedById:h,draggableNodes:d,over:f}=y.useContext(Us),{role:k=dd,roleDescription:N="draggable",tabIndex:w=0}=s??{},S=(u==null?void 0:u.id)===t,m=y.useContext(S?Oo:dx),[p,g]=io(),[b,j]=io(),R=Zy(o,t),E=Rs(n);Bt(()=>(d.set(t,{id:t,key:i,node:p,activatorNode:b,data:E}),()=>{const D=d.get(t);D&&D.key===i&&d.delete(t)}),[d,t]);const T=y.useMemo(()=>({role:k,tabIndex:w,"aria-disabled":r,"aria-pressed":S&&k===dd?!0:void 0,"aria-roledescription":N,"aria-describedby":h.draggable}),[r,k,w,S,N,h.draggable]);return{active:u,activatorEvent:a,activeNodeRect:c,attributes:T,isDragging:S,listeners:r?void 0:R,node:p,over:f,setNodeRef:g,setActivatorNodeRef:j,transform:m}}function gh(){return y.useContext(hh)}const hx="Droppable",mx={timeout:25};function gx(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Fs(hx),{active:o,dispatch:a,over:u,measureDroppableContainers:c}=y.useContext(Us),h=y.useRef({disabled:n}),d=y.useRef(!1),f=y.useRef(null),k=y.useRef(null),{disabled:N,updateMeasurementsFor:w,timeout:S}={...mx,...s},m=Rs(w??r),p=y.useCallback(()=>{if(!d.current){d.current=!0;return}k.current!=null&&clearTimeout(k.current),k.current=setTimeout(()=>{c(Array.isArray(m.current)?m.current:[m.current]),k.current=null},S)},[S]),g=Po({callback:p,disabled:N||!o}),b=y.useCallback((T,D)=>{g&&(D&&(g.unobserve(D),d.current=!1),T&&g.observe(T))},[g]),[j,R]=io(b),E=Rs(t);return y.useEffect(()=>{!g||!j.current||(g.disconnect(),d.current=!1,g.observe(j.current))},[j,g]),y.useEffect(()=>(a({type:Be.RegisterDroppable,element:{id:r,key:i,disabled:n,node:j,rect:f,data:E}}),()=>a({type:Be.UnregisterDroppable,key:i,id:r})),[r]),y.useEffect(()=>{n!==h.current.disabled&&(a({type:Be.SetDroppableDisabled,id:r,key:i,disabled:n}),h.current.disabled=n)},[r,i,n,a]),{active:o,rect:f,isOver:(u==null?void 0:u.id)===r,node:j,over:u,setNodeRef:R}}function yx(e){let{animation:t,children:n}=e;const[r,s]=y.useState(null),[i,o]=y.useState(null),a=oo(n);return!n&&!r&&a&&s(a),Bt(()=>{if(!i)return;const u=r==null?void 0:r.key,c=r==null?void 0:r.props.id;if(u==null||c==null){s(null);return}Promise.resolve(t(c,i)).then(()=>{s(null)})},[t,r,i]),Ne.createElement(Ne.Fragment,null,n,r?y.cloneElement(r,{ref:o}):null)}const xx={x:0,y:0,scaleX:1,scaleY:1};function vx(e){let{children:t}=e;return Ne.createElement(Us.Provider,{value:ph},Ne.createElement(Oo.Provider,{value:xx},t))}const kx={position:"fixed",touchAction:"none"},bx=e=>Do(e)?"transform 250ms ease":void 0,wx=y.forwardRef((e,t)=>{let{as:n,activatorEvent:r,adjustScale:s,children:i,className:o,rect:a,style:u,transform:c,transition:h=bx}=e;if(!a)return null;const d=s?c:{...c,scaleX:1,scaleY:1},f={...kx,width:a.width,height:a.height,top:a.top,left:a.left,transform:on.Transform.toString(d),transformOrigin:s&&r?hy(r,a):void 0,transition:typeof h=="function"?h(r):h,...u};return Ne.createElement(n,{className:o,style:f,ref:t},i)}),Sx=e=>t=>{let{active:n,dragOverlay:r}=t;const s={},{styles:i,className:o}=e;if(i!=null&&i.active)for(const[a,u]of Object.entries(i.active))u!==void 0&&(s[a]=n.node.style.getPropertyValue(a),n.node.style.setProperty(a,u));if(i!=null&&i.dragOverlay)for(const[a,u]of Object.entries(i.dragOverlay))u!==void 0&&r.node.style.setProperty(a,u);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(const[u,c]of Object.entries(s))n.node.style.setProperty(u,c);o!=null&&o.active&&n.node.classList.remove(o.active)}},Nx=e=>{let{transform:{initial:t,final:n}}=e;return[{transform:on.Transform.toString(t)},{transform:on.Transform.toString(n)}]},Cx={duration:250,easing:"ease",keyframes:Nx,sideEffects:Sx({styles:{active:{opacity:"0"}}})};function Ex(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:s}=e;return Ao((i,o)=>{if(t===null)return;const a=n.get(i);if(!a)return;const u=a.node.current;if(!u)return;const c=fh(o);if(!c)return;const{transform:h}=it(o).getComputedStyle(o),d=nh(h);if(!d)return;const f=typeof t=="function"?t:Tx(t);return uh(u,s.draggable.measure),f({active:{id:i,data:a.data,node:u,rect:s.draggable.measure(u)},draggableNodes:n,dragOverlay:{node:o,rect:s.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:s,transform:d})})}function Tx(e){const{duration:t,easing:n,sideEffects:r,keyframes:s}={...Cx,...e};return i=>{let{active:o,dragOverlay:a,transform:u,...c}=i;if(!t)return;const h={x:a.rect.left-o.rect.left,y:a.rect.top-o.rect.top},d={scaleX:u.scaleX!==1?o.rect.width*u.scaleX/a.rect.width:1,scaleY:u.scaleY!==1?o.rect.height*u.scaleY/a.rect.height:1},f={x:u.x-h.x,y:u.y-h.y,...d},k=s({...c,active:o,dragOverlay:a,transform:{initial:u,final:f}}),[N]=k,w=k[k.length-1];if(JSON.stringify(N)===JSON.stringify(w))return;const S=r==null?void 0:r({active:o,dragOverlay:a,...c}),m=a.node.animate(k,{duration:t,easing:n,fill:"forwards"});return new Promise(p=>{m.onfinish=()=>{S==null||S(),p()}})}}let fd=0;function jx(e){return y.useMemo(()=>{if(e!=null)return fd++,fd},[e])}const Rx=Ne.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:s,transition:i,modifiers:o,wrapperElement:a="div",className:u,zIndex:c=999}=e;const{activatorEvent:h,active:d,activeNodeRect:f,containerNodeRect:k,draggableNodes:N,droppableContainers:w,dragOverlay:S,over:m,measuringConfiguration:p,scrollableAncestors:g,scrollableAncestorRects:b,windowRect:j}=gh(),R=y.useContext(Oo),E=jx(d==null?void 0:d.id),T=mh(o,{activatorEvent:h,active:d,activeNodeRect:f,containerNodeRect:k,draggingNodeRect:S.rect,over:m,overlayNodeRect:S.rect,scrollableAncestors:g,scrollableAncestorRects:b,transform:R,windowRect:j}),D=Iu(f),I=Ex({config:r,draggableNodes:N,droppableContainers:w,measuringConfiguration:p}),X=D?S.setRef:void 0;return Ne.createElement(vx,null,Ne.createElement(yx,{animation:I},d&&E?Ne.createElement(wx,{key:E,id:d.id,ref:X,as:a,activatorEvent:h,adjustScale:t,className:u,transition:i,rect:D,style:{zIndex:c,...s},transform:T},n):null))});function Pu(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function _x(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function ii(e){return e!==null&&e>=0}function Lx(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{var t;let{rects:n,activeNodeRect:r,activeIndex:s,overIndex:i,index:o}=e;const a=(t=n[s])!=null?t:r;if(!a)return null;const u=Dx(n,o,s);if(o===s){const c=n[i];return c?{x:ss&&o<=i?{x:-a.width-u,y:0,...oi}:o=i?{x:a.width+u,y:0,...oi}:{x:0,y:0,...oi}};function Dx(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return!r||!s&&!i?0:n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=Pu(t,r,n),o=t[s],a=i[s];return!a||!o?null:{x:a.left-o.left,y:a.top-o.top,scaleX:a.width/o.width,scaleY:a.height/o.height}},ai={scaleX:1,scaleY:1},Ix=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:o}=e;const a=(t=i[n])!=null?t:r;if(!a)return null;if(s===n){const c=i[o];return c?{x:0,y:nn&&s<=o?{x:0,y:-a.height-u,...ai}:s=o?{x:0,y:a.height+u,...ai}:{x:0,y:0,...ai}};function Px(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(R=>typeof R=="object"&&"id"in R?R.id:R),[r]),N=o!=null,w=o?k.indexOf(o.id):-1,S=c?k.indexOf(c.id):-1,m=y.useRef(k),p=!Lx(k,m.current),g=S!==-1&&w===-1||p,b=Mx(i);Bt(()=>{p&&N&&h(k)},[p,k,N,h]),y.useEffect(()=>{m.current=k},[k]);const j=y.useMemo(()=>({activeIndex:w,containerId:d,disabled:b,disableTransforms:g,items:k,overIndex:S,useDragOverlay:f,sortedRects:_x(k,u),strategy:s}),[w,d,b.draggable,b.droppable,g,k,S,u,f,s]);return Ne.createElement(vh.Provider,{value:j},t)}const Ox=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return Pu(n,r,s).indexOf(t)},Bx=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:o,previousItems:a,previousContainerId:u,transition:c}=e;return!c||!r||a!==i&&s===o?!1:n?!0:o!==s&&t===u},zx={duration:200,easing:"ease"},kh="transform",Fx=on.Transition.toString({property:kh,duration:0,easing:"linear"}),Ux={roleDescription:"sortable"};function $x(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,o]=y.useState(null),a=y.useRef(n);return Bt(()=>{if(!t&&n!==a.current&&r.current){const u=s.current;if(u){const c=Lr(r.current,{ignoreTransform:!0}),h={x:u.left-c.left,y:u.top-c.top,scaleX:u.width/c.width,scaleY:u.height/c.height};(h.x||h.y)&&o(h)}}n!==a.current&&(a.current=n)},[t,n,r,s]),y.useEffect(()=>{i&&o(null)},[i]),i}function bh(e){let{animateLayoutChanges:t=Bx,attributes:n,disabled:r,data:s,getNewIndex:i=Ox,id:o,strategy:a,resizeObserverConfig:u,transition:c=zx}=e;const{items:h,containerId:d,activeIndex:f,disabled:k,disableTransforms:N,sortedRects:w,overIndex:S,useDragOverlay:m,strategy:p}=y.useContext(vh),g=Hx(r,k),b=h.indexOf(o),j=y.useMemo(()=>({sortable:{containerId:d,index:b,items:h},...s}),[d,s,b,h]),R=y.useMemo(()=>h.slice(h.indexOf(o)),[h,o]),{rect:E,node:T,isOver:D,setNodeRef:I}=gx({id:o,data:j,disabled:g.droppable,resizeObserverConfig:{updateMeasurementsFor:R,...u}}),{active:X,activatorEvent:we,activeNodeRect:me,attributes:Re,setNodeRef:et,listeners:Fe,isDragging:ge,over:A,setActivatorNodeRef:W,transform:v}=px({id:o,data:j,attributes:{...Ux,...n},disabled:g.draggable}),x=Jg(I,et),_=!!X,B=_&&!N&&ii(f)&&ii(S),K=!m&&ge,q=K&&B?v:null,$=B?q??(a??p)({rects:w,activeNodeRect:me,activeIndex:f,overIndex:S,index:b}):null,J=ii(f)&&ii(S)?i({id:o,items:h,activeIndex:f,overIndex:S}):b,ne=X==null?void 0:X.id,Q=y.useRef({activeId:ne,items:h,newIndex:J,containerId:d}),ae=h!==Q.current.items,se=t({active:X,containerId:d,isDragging:ge,isSorting:_,id:o,index:b,items:h,newIndex:Q.current.newIndex,previousItems:Q.current.items,previousContainerId:Q.current.containerId,transition:c,wasDragging:Q.current.activeId!=null}),he=$x({disabled:!se,index:b,node:T,rect:E});return y.useEffect(()=>{_&&Q.current.newIndex!==J&&(Q.current.newIndex=J),d!==Q.current.containerId&&(Q.current.containerId=d),h!==Q.current.items&&(Q.current.items=h)},[_,J,d,h]),y.useEffect(()=>{if(ne===Q.current.activeId)return;if(ne&&!Q.current.activeId){Q.current.activeId=ne;return}const ve=setTimeout(()=>{Q.current.activeId=ne},50);return()=>clearTimeout(ve)},[ne]),{active:X,activeIndex:f,attributes:Re,data:j,rect:E,index:b,newIndex:J,items:h,isOver:D,isSorting:_,isDragging:ge,listeners:Fe,node:T,overIndex:S,over:A,setNodeRef:x,setActivatorNodeRef:W,setDroppableNodeRef:I,setDraggableNodeRef:et,transform:he??$,transition:ee()};function ee(){if(he||ae&&Q.current.newIndex===b)return Fx;if(!(K&&!Do(we)||!c)&&(_||se))return on.Transition.toString({...c,property:kh})}}function Hx(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}function co(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const Vx=[le.Down,le.Right,le.Up,le.Left],Kx=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:s,droppableContainers:i,over:o,scrollableAncestors:a}}=t;if(Vx.includes(e.code)){if(e.preventDefault(),!n||!r)return;const u=[];i.getEnabled().forEach(d=>{if(!d||d!=null&&d.disabled)return;const f=s.get(d.id);if(f)switch(e.code){case le.Down:r.topf.top&&u.push(d);break;case le.Left:r.left>f.left&&u.push(d);break;case le.Right:r.left1&&(h=c[1].id),h!=null){const d=i.get(n.id),f=i.get(h),k=f?s.get(f.id):null,N=f==null?void 0:f.node.current;if(N&&k&&d&&f){const S=Io(N).some((R,E)=>a[E]!==R),m=wh(d,f),p=Wx(d,f),g=S||!m?{x:0,y:0}:{x:p?r.width-k.width:0,y:p?r.height-k.height:0},b={x:k.left,y:k.top};return g.x&&g.y?b:_s(b,g)}}}};function wh(e,t){return!co(e)||!co(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Wx(e,t){return!co(e)||!co(t)||!wh(e,t)?!1:e.data.current.sortable.index{const{t:i,isRetro:o}=Rt(),a={LOW:{label:i("prioLow"),badge:"bg-emerald-50 text-emerald-700 border-emerald-200 dark:bg-emerald-950/60 dark:text-emerald-300 dark:border-emerald-500/20"},MEDIUM:{label:i("prioMedium"),badge:"bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/60 dark:text-blue-300 dark:border-blue-500/20"},HIGH:{label:i("prioHigh"),badge:"bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950/60 dark:text-amber-300 dark:border-amber-500/20"},URGENT:{label:i("prioUrgent"),badge:"bg-rose-50 text-rose-700 border-rose-200 dark:bg-rose-950/60 dark:text-rose-300 dark:border-rose-500/20"}},{attributes:u,listeners:c,setNodeRef:h,transform:d,transition:f,isDragging:k}=bh({id:e.id,data:{type:"Ticket",ticket:e}}),N={transform:on.Translate.toString(d),transition:f,opacity:k?.35:1},w=n.some(E=>E.ticketId===e.id&&E.userId!==r),S=n.find(E=>E.ticketId===e.id&&E.userId!==r);let m=null;if(e.dueDate){const E=new Date().toISOString().split("T")[0];e.dueDateE.completed).length:0;let b=!1,j=0;if(t>0&&e.movedAt){const E=new Date(e.movedAt).getTime(),T=(Date.now()-E)/(1e3*60*60);j=Math.floor(T),T>=t&&(b=!0)}const R=a[e.priority]||a.MEDIUM;return l.jsxs("div",{ref:h,style:N,className:`ticket-kanban group relative p-3.5 mb-2.5 transition-all select-none ${e.isBlocked?"border-rose-300 dark:border-rose-500/60 bg-rose-50/70 dark:bg-rose-950/20":""} ${w?"border-amber-500/80 ring-1 ring-amber-500":""}`,children:[w&&S&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300 border border-amber-200 dark:border-amber-500/30 px-2.5 py-1 text-xs rounded-md flex items-center gap-1.5 mb-2 animate-pulse",children:[l.jsx(yl,{size:12,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsxs("span",{className:"truncate",children:[S.userName," ",i("isEditingGeneral")]})]}),e.isBlocked&&l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-500/15 text-rose-800 dark:text-rose-300 border border-rose-200 dark:border-rose-500/30 px-2.5 py-1 text-xs rounded-md flex items-start gap-1.5 mb-2",children:[l.jsx(to,{size:13,className:"text-rose-600 dark:text-rose-400 shrink-0 mt-0.5"}),l.jsxs("div",{className:"truncate",children:[l.jsx("span",{className:"font-semibold text-rose-700 dark:text-rose-400 mr-1",children:o?"🚩 TRAP:":"🚩 BLOCKED:"}),l.jsx("span",{children:e.blockedReason||"Ada kendala"})]})]}),b&&!e.isBlocked&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300 border border-amber-200 dark:border-amber-500/30 px-2.5 py-0.5 text-xs rounded-md flex items-center gap-1.5 mb-2",children:[l.jsx(jo,{size:12,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsxs("span",{className:"truncate text-[11px]",children:["⏳ ",j,"j tanpa pergerakan"]})]}),l.jsxs("div",{className:"flex items-start justify-between gap-2",children:[l.jsxs("div",{onClick:()=>{V.playClick(),s()},className:"flex-1 cursor-pointer",children:[l.jsx("h4",{className:"text-sm font-semibold text-slate-900 dark:text-slate-100 group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors leading-snug line-clamp-2",children:e.title}),e.description&&l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 line-clamp-2 mt-1.5 leading-relaxed",children:e.description})]}),l.jsx("button",{...u,...c,className:"text-slate-400 dark:text-slate-500 hover:text-slate-600 dark:hover:text-slate-300 cursor-grab active:cursor-grabbing p-1 rounded-md touch-none",title:"Drag card",children:l.jsx(wg,{size:15})})]}),p>0&&l.jsxs("div",{className:"mt-3 pt-2 border-t border-slate-100 dark:border-slate-800/80",children:[l.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-slate-400 mb-1.5",children:[l.jsxs("span",{className:"flex items-center gap-1.5 font-medium text-[11px]",children:[l.jsx(vl,{size:12,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:"Subtasks"})]}),l.jsxs("span",{className:"text-[11px] font-semibold",children:[g,"/",p]})]}),l.jsx("div",{className:"w-full bg-slate-100 dark:bg-slate-950/60 h-1.5 rounded-full overflow-hidden",children:l.jsx("div",{className:`h-full rounded-full transition-all duration-300 ${g===p?"bg-emerald-500":"bg-indigo-500"}`,style:{width:`${g/p*100}%`}})})]}),l.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 mt-3 pt-2.5 border-t border-slate-100 dark:border-slate-800/80",children:[l.jsx("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full border ${R.badge}`,children:R.label}),e.dueDate&&l.jsxs("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full border flex items-center gap-1 ${m==="overdue"?"bg-rose-50 text-rose-700 border-rose-200 dark:bg-rose-950/70 dark:text-rose-300 dark:border-rose-500/30":m==="today"?"bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950/70 dark:text-amber-300 dark:border-amber-500/30":"bg-slate-100 text-slate-700 border-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:border-slate-700/80"}`,children:[l.jsx(Dp,{size:10}),l.jsx("span",{children:m==="overdue"?`⚠️ ${e.dueDate}`:e.dueDate})]}),l.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[e.tags&&e.tags.slice(0,2).map(E=>l.jsxs("span",{className:"bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/20 px-2 py-0.5 text-[10px] font-medium rounded-full",children:["#",E]},E)),e.tags&&e.tags.length>2&&l.jsxs("span",{className:"text-[10px] text-slate-400",children:["+",e.tags.length-2]})]}),e.assignee&&l.jsxs("div",{className:"flex items-center gap-1.5 bg-slate-100 dark:bg-slate-800/80 border border-slate-200 dark:border-slate-700/60 px-2 py-0.5 rounded-full text-[11px] text-slate-700 dark:text-slate-300",children:[l.jsx(Lo,{size:11,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{className:"max-w-[70px] truncate font-medium",children:e.assignee})]})]})]})},Gx=({column:e,onClose:t,onSave:n})=>{const{t:r}=Rt(),[s,i]=y.useState(e.title),[o,a]=y.useState(e.maxWipLimit||0),[u,c]=y.useState(e.autoStaleHours||0),h=d=>{d.preventDefault(),V.playClick(),n(e.id,{title:s.trim()||e.title,maxWipLimit:Number(o)||0,autoStaleHours:Number(u)||0}),t()};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-md w-full p-4 sm:p-6 relative text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsx("button",{onClick:()=>{V.playClick(),t()},className:"absolute top-4 right-4 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 p-1 rounded-md",children:l.jsx(Ts,{size:18})}),l.jsxs("div",{className:"flex items-center gap-3 mb-4 sm:mb-5",children:[l.jsx("div",{className:"w-9 h-9 sm:w-10 sm:h-10 bg-indigo-50 dark:bg-emerald-500/10 border border-indigo-200 dark:border-emerald-500/30 rounded-xl flex items-center justify-center text-indigo-600 dark:text-emerald-400",children:l.jsx(zp,{size:18})}),l.jsxs("div",{children:[l.jsx("h2",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-slate-100",children:r("editColSettings")}),l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 truncate max-w-[200px]",children:e.title})]})]}),l.jsxs("form",{onSubmit:h,className:"space-y-3.5 text-xs",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:r("taskTitle")}),l.jsx("input",{type:"text",value:s,onChange:d=>i(d.target.value),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-2.5 text-slate-900 dark:text-slate-100 text-xs outline-none focus:border-indigo-500",required:!0})]}),l.jsxs("div",{className:"bg-amber-50/70 dark:bg-slate-950/70 border border-amber-200 dark:border-amber-500/30 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-semibold text-amber-800 dark:text-amber-400 mb-1",children:[l.jsx(kl,{size:14,className:"text-amber-600 dark:text-amber-400 shrink-0"}),l.jsx("span",{children:r("wipLimitLabel")})]}),l.jsx("p",{className:"text-[11px] text-slate-600 dark:text-slate-400 mb-2 leading-relaxed",children:"Membatasi jumlah kartu aktif di kolom ini agar tim fokus menyelesaikan tugas sebelum mengambil yang baru."}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("input",{type:"number",min:0,max:50,value:o,onChange:d=>a(parseInt(d.target.value,10)||0),className:"w-20 sm:w-24 bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 rounded-lg p-2 text-slate-900 dark:text-slate-100 text-xs text-center outline-none"}),l.jsx("span",{className:"text-[11px] sm:text-xs text-amber-800 dark:text-amber-300 font-medium",children:o===0?`(${r("wipUnlimited")})`:`(Maks. ${o} kartu)`})]})]}),l.jsxs("div",{className:"bg-cyan-50/70 dark:bg-slate-950/70 border border-cyan-200 dark:border-cyan-500/30 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-semibold text-cyan-800 dark:text-cyan-400 mb-1",children:[l.jsx(jo,{size:14,className:"text-cyan-600 dark:text-cyan-400 shrink-0"}),l.jsx("span",{children:r("autoStaleHoursLabel")})]}),l.jsx("p",{className:"text-[11px] text-slate-600 dark:text-slate-400 mb-2 leading-relaxed",children:"Memberikan tanda peringatan jika kartu tidak bergerak di kolom ini melebihi durasi yang ditentukan."}),l.jsx("div",{className:"flex items-center gap-2",children:l.jsxs("select",{value:u,onChange:d=>c(parseInt(d.target.value,10)||0),className:"bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 rounded-lg p-2 text-slate-900 dark:text-slate-100 text-xs outline-none flex-1",children:[l.jsx("option",{value:0,children:"🚫 Nonaktif (0 Jam)"}),l.jsx("option",{value:12,children:"⏳ 12 Jam"}),l.jsx("option",{value:24,children:"⏳ 24 Jam (1 Hari) [Standar]"}),l.jsx("option",{value:48,children:"⏳ 48 Jam (2 Hari)"}),l.jsx("option",{value:72,children:"⏳ 72 Jam (3 Hari)"}),l.jsx("option",{value:168,children:"⏳ 7 Hari"})]})})]}),l.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[l.jsx("button",{type:"button",onClick:()=>{V.playClick(),t()},className:"btn-modern-secondary py-2 px-4",children:r("cancel")}),l.jsx("button",{type:"submit",className:"btn-modern-primary py-2 px-5 font-bold",children:r("save")})]})]})]})})},Qx=({column:e,role:t,activeLocks:n,currentUserId:r,onTicketClick:s,onAddTicket:i,onDeleteColumn:o,onUpdateColumn:a})=>{const{t:u}=Rt(),[c,h]=y.useState(!1),[d,f]=y.useState(""),[k,N]=y.useState(!1),{attributes:w,listeners:S,setNodeRef:m,transform:p,transition:g,isDragging:b}=bh({id:e.id,data:{type:"Column",column:e}}),j={transform:on.Translate.toString(p),transition:g,opacity:b?.4:1},R=e.maxWipLimit>0&&e.tickets.length>=e.maxWipLimit,E=D=>{D.preventDefault(),d.trim()&&(V.playClick(),i(e.id,d.trim()),f(""),h(!1))},T=()=>{V.playClick(),confirm(u("deleteColConfirm"))&&o(e.id)};return l.jsxs("div",{ref:m,style:j,className:`column-kanban w-[82vw] max-w-[320px] sm:w-80 shrink-0 flex flex-col max-h-[calc(100vh-170px)] sm:max-h-[calc(100vh-140px)] select-none ${R?"border-amber-500/60 ring-1 ring-amber-500/30":""}`,children:[l.jsxs("div",{className:"p-3 sm:p-3.5 flex items-center justify-between border-b border-slate-200 dark:border-slate-800/80",children:[l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 flex-1 min-w-0",children:[t==="admin"&&l.jsx("button",{...w,...S,className:"text-slate-400 dark:text-slate-500 hover:text-slate-600 dark:hover:text-slate-300 cursor-grab active:cursor-grabbing p-1 rounded touch-none",title:u("dragColTooltip"),children:l.jsx(bg,{size:14})}),l.jsx("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:l.jsx("h3",{className:"text-xs md:text-sm font-bold text-slate-800 dark:text-slate-200 truncate",children:e.title})})]}),l.jsxs("div",{className:"flex items-center gap-1 sm:gap-1.5 ml-1.5",children:[l.jsxs("span",{className:`text-[11px] sm:text-xs font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 border ${R?"bg-amber-100 dark:bg-amber-500/20 text-amber-800 dark:text-amber-300 border-amber-300 dark:border-amber-500/40 animate-pulse":"bg-white dark:bg-slate-800/90 text-slate-700 dark:text-slate-300 border-slate-200 dark:border-slate-700/80"}`,title:e.maxWipLimit>0?`WIP Limit: Maks ${e.maxWipLimit} kartu`:"Jumlah tugas",children:[R&&l.jsx(kl,{size:10,className:"text-amber-600 dark:text-amber-400"}),l.jsxs("span",{children:[e.tickets.length,e.maxWipLimit>0?`/${e.maxWipLimit}`:""]})]}),t==="admin"&&l.jsx("button",{onClick:()=>{V.playClick(),N(!0)},className:"text-slate-400 hover:text-indigo-600 dark:hover:text-indigo-400 p-1 rounded-md transition-colors",title:u("editColSettings"),children:l.jsx(zp,{size:13})}),t==="admin"&&l.jsx("button",{onClick:T,className:"text-slate-400 hover:text-rose-600 dark:hover:text-rose-400 p-1 rounded-md transition-colors",title:"Delete Column",children:l.jsx(Os,{size:13})})]})]}),R&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 border-b border-amber-200 dark:border-amber-500/30 text-amber-800 dark:text-amber-300 px-3 py-1 text-xs font-medium flex items-center justify-between",children:[l.jsxs("span",{className:"flex items-center gap-1.5 text-[11px]",children:[l.jsx(kl,{size:12,className:"text-amber-600 dark:text-amber-400"}),l.jsx("span",{children:u("wipLimitReached")})]}),l.jsxs("span",{className:"text-[10px] font-semibold",children:["(",e.tickets.length,"/",e.maxWipLimit,")"]})]}),l.jsxs("div",{className:"p-2.5 sm:p-3 flex-1 overflow-y-auto min-h-[100px]",children:[e.tickets.map(D=>l.jsx(Sh,{ticket:D,autoStaleHours:e.autoStaleHours||0,activeLocks:n,currentUserId:r,onClick:()=>s(D)},D.id)),e.tickets.length===0&&!c&&l.jsx("div",{className:"border border-dashed border-slate-300 dark:border-slate-800 rounded-xl p-5 sm:p-6 text-center text-slate-400 dark:text-slate-500 text-xs select-none",children:u("noTasksInCol")}),c&&l.jsxs("form",{onSubmit:E,className:"bg-white dark:bg-slate-900 border border-indigo-500/60 rounded-xl p-3 mb-2.5 shadow-sm",children:[l.jsx("textarea",{value:d,onChange:D=>f(D.target.value),placeholder:u("taskTitlePlaceholder"),rows:2,className:"w-full bg-slate-50 dark:bg-slate-950/80 border border-slate-200 dark:border-slate-800 rounded-lg text-slate-900 dark:text-slate-100 text-xs p-2.5 outline-none resize-none mb-2 focus:border-indigo-500",autoFocus:!0,onKeyDown:D=>{D.key==="Enter"&&!D.shiftKey&&(D.preventDefault(),E(D))}}),l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsx("span",{className:"text-[10px] text-slate-400",children:u("enterToAdd")}),l.jsxs("div",{className:"flex gap-1.5",children:[l.jsx("button",{type:"button",onClick:()=>h(!1),className:"px-2.5 py-1 bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-300 text-xs rounded-md hover:bg-slate-200 dark:hover:bg-slate-700 transition-colors",children:u("cancel")}),l.jsx("button",{type:"submit",className:"px-3 py-1 bg-indigo-600 text-white text-xs font-bold rounded-md hover:bg-indigo-500 transition-colors",children:u("add")})]})]})]})]}),!c&&l.jsx("div",{className:"p-2 sm:p-2.5 border-t border-slate-200 dark:border-slate-800/80 bg-slate-50/50 dark:bg-slate-900/30 rounded-b-2xl",children:l.jsxs("button",{onClick:()=>{V.playClick(),h(!0)},className:"w-full py-2 bg-white dark:bg-slate-800/60 hover:bg-slate-100 dark:hover:bg-slate-800 text-slate-700 dark:text-slate-300 text-xs font-medium rounded-lg border border-slate-200 dark:border-slate-700/60 flex items-center justify-center gap-1.5 transition-all shadow-sm",children:[l.jsx(Cu,{size:14,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:u("addNewTask")})]})}),k&&l.jsx(Gx,{column:e,onClose:()=>N(!1),onSave:(D,I)=>a(D,I)})]})},Qt=Object.create(null);Qt.open="0";Qt.close="1";Qt.ping="2";Qt.pong="3";Qt.message="4";Qt.upgrade="5";Qt.noop="6";const Ei=Object.create(null);Object.keys(Qt).forEach(e=>{Ei[Qt[e]]=e});const Cl={type:"error",data:"parser error"},Nh=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Ch=typeof ArrayBuffer=="function",Eh=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Ou=({type:e,data:t},n,r)=>Nh&&t instanceof Blob?n?r(t):hd(t,r):Ch&&(t instanceof ArrayBuffer||Eh(t))?n?r(t):hd(new Blob([t]),r):r(Qt[e]+(t||"")),hd=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function md(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let xa;function qx(e,t){if(Nh&&e.data instanceof Blob)return e.data.arrayBuffer().then(md).then(t);if(Ch&&(e.data instanceof ArrayBuffer||Eh(e.data)))return t(md(e.data));Ou(e,!1,n=>{xa||(xa=new TextEncoder),t(xa.encode(n))})}const gd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xr=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,n=e.length,r,s=0,i,o,a,u;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const c=new ArrayBuffer(t),h=new Uint8Array(c);for(r=0;r>4,h[s++]=(o&15)<<4|a>>2,h[s++]=(a&3)<<6|u&63;return c},Xx=typeof ArrayBuffer=="function",Bu=(e,t)=>{if(typeof e!="string")return{type:"message",data:Th(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:Jx(e.substring(1),t)}:Ei[n]?e.length>1?{type:Ei[n],data:e.substring(1)}:{type:Ei[n]}:Cl},Jx=(e,t)=>{if(Xx){const n=Yx(e);return Th(n,t)}else return{base64:!0,data:e}},Th=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},jh="",Zx=(e,t)=>{const n=e.length,r=new Array(n);let s=0;e.forEach((i,o)=>{Ou(i,!1,a=>{r[o]=a,++s===n&&t(r.join(jh))})})},ev=(e,t)=>{const n=e.split(jh),r=[];for(let s=0;s{const r=n.length;let s;if(r<126)s=new Uint8Array(1),new DataView(s.buffer).setUint8(0,r);else if(r<65536){s=new Uint8Array(3);const i=new DataView(s.buffer);i.setUint8(0,126),i.setUint16(1,r)}else{s=new Uint8Array(9);const i=new DataView(s.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(s[0]|=128),t.enqueue(s),t.enqueue(n)})}})}let va;function li(e){return e.reduce((t,n)=>t+n.length,0)}function ui(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let s=0;sMath.pow(2,21)-1){a.enqueue(Cl);break}s=h*Math.pow(2,32)+c.getUint32(4),r=3}else{if(li(n)e){a.enqueue(Cl);break}}}})}const Rh=4;function Pe(e){if(e)return rv(e)}function rv(e){for(var t in Pe.prototype)e[t]=Pe.prototype[t];return e}Pe.prototype.on=Pe.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Pe.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};Pe.prototype.off=Pe.prototype.removeListener=Pe.prototype.removeAllListeners=Pe.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,s=0;sPromise.resolve().then(t):(t,n)=>n(t,0),Nt=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),sv="arraybuffer";function _h(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const iv=Nt.setTimeout,ov=Nt.clearTimeout;function zo(e,t){t.useNativeTimers?(e.setTimeoutFn=iv.bind(Nt),e.clearTimeoutFn=ov.bind(Nt)):(e.setTimeoutFn=Nt.setTimeout.bind(Nt),e.clearTimeoutFn=Nt.clearTimeout.bind(Nt))}const av=1.33;function lv(e){return typeof e=="string"?uv(e):Math.ceil((e.byteLength||e.size)*av)}function uv(e){let t=0,n=0;for(let r=0,s=e.length;r=57344?n+=3:(r++,n+=4);return n}function Lh(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function cv(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function dv(e){let t={},n=e.split("&");for(let r=0,s=n.length;r{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};ev(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,Zx(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=Lh()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let Mh=!1;try{Mh=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const hv=Mh;function mv(){}class gv extends pv{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(s,i)=>{this.onError("xhr post error",s,i)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class Gt extends Pe{constructor(t,n,r){super(),this.createRequest=t,zo(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=_h(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let s in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(s)&&r.setRequestHeader(s,this._opts.extraHeaders[s])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var s;r.readyState===3&&((s=this._opts.cookieJar)===null||s===void 0||s.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(s){this.setTimeoutFn(()=>{this._onError(s)},0);return}typeof document<"u"&&(this._index=Gt.requestsCount++,Gt.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=mv,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete Gt.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}Gt.requestsCount=0;Gt.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",yd);else if(typeof addEventListener=="function"){const e="onpagehide"in Nt?"pagehide":"unload";addEventListener(e,yd,!1)}}function yd(){for(let e in Gt.requests)Gt.requests.hasOwnProperty(e)&&Gt.requests[e].abort()}const yv=function(){const e=Ah({xdomain:!1});return e&&e.responseType!==null}();class xv extends gv{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=yv&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Gt(Ah,this.uri(),t)}}function Ah(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||hv))return new XMLHttpRequest}catch{}if(!t)try{return new Nt[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Dh=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class vv extends zu{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=Dh?{}:_h(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(s){return this.emitReserved("error",s)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n{try{this.doWrite(r,i)}catch{}s&&Bo(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=Lh()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const ka=Nt.WebSocket||Nt.MozWebSocket;class kv extends vv{createSocket(t,n,r){return Dh?new ka(t,n,r):n?new ka(t,n):new ka(t)}doWrite(t,n){this.ws.send(n)}}class bv extends zu{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=nv(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),s=tv();s.readable.pipeTo(t.writable),this._writer=s.writable.getWriter();const i=()=>{r.read().then(({done:a,value:u})=>{a||(this.onPacket(u),i())}).catch(a=>{})};i();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n{s&&Bo(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const wv={websocket:kv,webtransport:bv,polling:xv},Sv=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Nv=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function El(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let s=Sv.exec(e||""),i={},o=14;for(;o--;)i[Nv[o]]=s[o]||"";return n!=-1&&r!=-1&&(i.source=t,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=Cv(i,i.path),i.queryKey=Ev(i,i.query),i}function Cv(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function Ev(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,s,i){s&&(n[s]=i)}),n}const Tl=typeof addEventListener=="function"&&typeof removeEventListener=="function",Ti=[];Tl&&addEventListener("offline",()=>{Ti.forEach(e=>e())},!1);class Rn extends Pe{constructor(t,n){if(super(),this.binaryType=sv,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=El(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=El(n.host).host);zo(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const s=r.prototype.name;this.transports.push(s),this._transportsByName[s]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=dv(this.opts.query)),Tl&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Ti.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=Rh,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&Rn.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",Rn.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,Bo(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,s){if(typeof n=="function"&&(s=n,n=void 0),typeof r=="function"&&(s=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const i={type:t,data:n,options:r};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),s&&this.once("flush",s),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(Rn.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Tl&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Ti.indexOf(this._offlineEventListener);r!==-1&&Ti.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}Rn.protocol=Rh;class Tv extends Rn{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",d=>{if(!r)if(d.type==="pong"&&d.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Rn.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(h(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=n.name,this.emitReserved("upgradeError",f)}}))};function i(){r||(r=!0,h(),n.close(),n=null)}const o=d=>{const f=new Error("probe error: "+d);f.transport=n.name,i(),this.emitReserved("upgradeError",f)};function a(){o("transport closed")}function u(){o("socket closed")}function c(d){n&&d.name!==n.name&&i()}const h=()=>{n.removeListener("open",s),n.removeListener("error",o),n.removeListener("close",a),this.off("close",u),this.off("upgrading",c)};n.once("open",s),n.once("error",o),n.once("close",a),this.once("close",u),this.once("upgrading",c),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;rwv[i]).filter(i=>!!i)),super(r?s:t,s)}};function Rv(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=El(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+t,r.href=r.protocol+"://"+i+(n&&n.port===r.port?"":":"+r.port),r}const _v=typeof ArrayBuffer=="function",Lv=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,Ih=Object.prototype.toString,Mv=typeof Blob=="function"||typeof Blob<"u"&&Ih.call(Blob)==="[object BlobConstructor]",Av=typeof File=="function"||typeof File<"u"&&Ih.call(File)==="[object FileConstructor]";function Fu(e){return _v&&(e instanceof ArrayBuffer||Lv(e))||Mv&&e instanceof Blob||Av&&e instanceof File}function ji(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n=0&&e.numthis.opts.maxAttachments)throw new Error("too many attachments");r.attachments=a}if(t.charAt(n+1)==="/"){const i=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(i,n)}else r.nsp="/";const s=t.charAt(n+1);if(s!==""&&Number(s)==s){const i=n+1;for(;++n;){const o=t.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===t.length)break}r.id=Number(t.substring(i,n+1))}if(t.charAt(++n)){const i=this.tryParse(t.substr(n));if(Uu.isPayloadValid(r.type,i))r.data=i;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.opts.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case ue.CONNECT:return xd(n);case ue.DISCONNECT:return n===void 0;case ue.CONNECT_ERROR:return typeof n=="string"||xd(n);case ue.EVENT:case ue.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&Pv.indexOf(n[0])===-1);case ue.ACK:case ue.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Bv{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=Iv(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const zv=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};function xd(e){return Object.prototype.toString.call(e)==="[object Object]"}const Fv=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Uu,Encoder:Ov,get PacketType(){return ue}},Symbol.toStringTag,{value:"Module"}));function At(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const Uv=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Ph extends Pe{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[At(t,"open",this.onopen.bind(this)),At(t,"packet",this.onpacket.bind(this)),At(t,"error",this.onerror.bind(this)),At(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,s,i;if(Uv.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const o={type:ue.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const h=this.ids++,d=n.pop();this._registerAckCallback(h,d),o.id=h}const a=(s=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||s===void 0?void 0:s.writable,u=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!a||(u?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,n){var r;const s=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(s===void 0){this.acks[t]=n;return}const i=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a{this.io.clearTimeoutFn(i),n.apply(this,a)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...n){return new Promise((r,s)=>{const i=(o,a)=>o?s(o):r(a);i.withError=!0,n.push(i),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((s,...i)=>(this._queue[0],s!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(s)):(this._queue.shift(),n&&n(null,...i)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:ue.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case ue.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case ue.EVENT:case ue.BINARY_EVENT:this.onevent(t);break;case ue.ACK:case ue.BINARY_ACK:this.onack(t);break;case ue.DISCONNECT:this.ondisconnect();break;case ue.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...s){r||(r=!0,n.packet({type:ue.ACK,id:t,data:s}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:ue.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}Mr.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};Mr.prototype.reset=function(){this.attempts=0};Mr.prototype.setMin=function(e){this.ms=e};Mr.prototype.setMax=function(e){this.max=e};Mr.prototype.setJitter=function(e){this.jitter=e};class Rl extends Pe{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,zo(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new Mr({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const s=n.parser||Fv;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new jv(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const s=At(n,"open",function(){r.onopen(),t&&t()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},o=At(n,"error",i);if(this._timeout!==!1){const a=this._timeout,u=this.setTimeoutFn(()=>{s(),i(new Error("timeout")),n.close()},a);this.opts.autoUnref&&u.unref(),this.subs.push(()=>{this.clearTimeoutFn(u)})}return this.subs.push(s),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(At(t,"ping",this.onping.bind(this)),At(t,"data",this.ondata.bind(this)),At(t,"error",this.onerror.bind(this)),At(t,"close",this.onclose.bind(this)),At(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){Bo(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new Ph(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;rt()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(s=>{s?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",s)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const Wr={};function _i(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=Rv(e,t.path||"/socket.io"),r=n.source,s=n.id,i=n.path,o=Wr[s]&&i in Wr[s].nsps,a=t.forceNew||t["force new connection"]||t.multiplex===!1||o;let u;return a?u=new Rl(r,t):(Wr[s]||(Wr[s]=new Rl(r,t)),u=Wr[s]),n.query&&!t.query&&(t.query=n.queryKey),u.socket(n.path,t)}Object.assign(_i,{Manager:Rl,Socket:Ph,io:_i,connect:_i});let kn=null;function $v(e,t,n,r){return kn&&kn.disconnect(),kn=_i({auth:{boardId:e,key:t,userName:n,userId:r},transports:["websocket","polling"]}),kn}function ye(){return kn}function Hv(){kn&&(kn.disconnect(),kn=null)}function vd(e,t=500){const n=y.useRef(null),r=y.useRef(e);r.current=e;const s=y.useCallback((...o)=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r.current(...o)},t)},[t]),i=y.useCallback(()=>{n.current&&(clearTimeout(n.current),n.current=null)},[]);return y.useEffect(()=>i,[i]),[s,i]}function Vv(e){try{const t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`${Math.max(1,n)} detik lalu`;const r=Math.floor(n/60);if(r<60)return`${r} menit lalu`;const s=Math.floor(r/60);return s<24?`${s} jam lalu`:`${Math.floor(s/24)} hari lalu`}catch{return e}}const Kv=({ticket:e,boardId:t,boardKey:n,activeLocks:r,currentUserId:s,onClose:i,onUpdateTicket:o,onDeleteTicket:a})=>{const{t:u}=Rt(),[c,h]=y.useState(e.title),[d,f]=y.useState(e.description),[k,N]=y.useState(e.priority),[w,S]=y.useState(e.tags||[]),[m,p]=y.useState(""),[g,b]=y.useState(e.subtasks||[]),[j,R]=y.useState(""),[E,T]=y.useState(e.dueDate||""),[D,I]=y.useState(e.isBlocked||!1),[X,we]=y.useState(e.blockedReason||""),[me,Re]=y.useState(e.assignee||""),[et,Fe]=y.useState(!1),[ge,A]=y.useState([]),[W,v]=y.useState(!1);y.useEffect(()=>{h(e.title),f(e.description),N(e.priority),S(e.tags||[]),b(e.subtasks||[]),T(e.dueDate||""),I(e.isBlocked||!1),we(e.blockedReason||""),Re(e.assignee||"")},[e]),y.useEffect(()=>{t&&n&&e.id&&(v(!0),Gg(t,e.id,n).then(H=>A(H)).catch(()=>{}).finally(()=>v(!1)));const C=ye();if(C){const H=Y=>{Y.activity&&Y.activity.ticketId===e.id&&A(M=>[Y.activity,...M])};return C.on("activity_logged",H),()=>{C.off("activity_logged",H)}}},[t,n,e.id]);const x=r.find(C=>C.ticketId===e.id&&C.field==="title"&&C.userId!==s),_=r.find(C=>C.ticketId===e.id&&C.field==="description"&&C.userId!==s),[B]=vd(C=>{Fe(!0);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{title:C}}),o(e.id,{title:C}),setTimeout(()=>Fe(!1),300)},500),[K]=vd(C=>{Fe(!0);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{description:C}}),o(e.id,{description:C}),setTimeout(()=>Fe(!1),300)},600),q=C=>{const H=C.target.value;h(H),B(H)},F=()=>{const C=ye();C&&C.emit("lock_field",{ticketId:e.id,field:"title"})},$=()=>{const C=ye();C&&C.emit("unlock_field",{ticketId:e.id,field:"title"})},J=C=>{const H=C.target.value;f(H),K(H)},ne=()=>{const C=ye();C&&C.emit("lock_field",{ticketId:e.id,field:"description"})},Q=()=>{const C=ye();C&&C.emit("unlock_field",{ticketId:e.id,field:"description"})},ae=C=>{V.playClick(),N(C);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{priority:C}}),o(e.id,{priority:C})},se=C=>{if(C.preventDefault(),!j.trim())return;V.playClick();const H={id:"st_"+Math.random().toString(36).substring(2,9),title:j.trim(),completed:!1},Y=[...g,H];b(Y),R("");const M=ye();M&&M.emit("update_ticket",{ticketId:e.id,updates:{subtasks:Y}}),o(e.id,{subtasks:Y})},he=C=>{V.playClick();const H=g.map(M=>M.id===C?{...M,completed:!M.completed}:M);b(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{subtasks:H}}),o(e.id,{subtasks:H})},ee=C=>{V.playClick();const H=g.filter(M=>M.id!==C);b(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{subtasks:H}}),o(e.id,{subtasks:H})},ve=C=>{const H=C.target.value;T(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{dueDate:H||null}}),o(e.id,{dueDate:H||null})},_e=()=>{V.playLock();const C=!D;I(C);const H=ye();H&&H.emit("update_ticket",{ticketId:e.id,updates:{isBlocked:C,blockedReason:C?X:null}}),o(e.id,{isBlocked:C,blockedReason:C?X:null})},Ue=()=>{const C=ye();C&&C.emit("update_ticket",{ticketId:e.id,updates:{blockedReason:X.trim()||null}}),o(e.id,{blockedReason:X.trim()||null})},P=C=>{if(C.key==="Enter"&&m.trim()){C.preventDefault(),V.playClick();const H=m.trim().replace(/^#/,"");if(!w.includes(H)){const Y=[...w,H];S(Y),p("");const M=ye();M&&M.emit("update_ticket",{ticketId:e.id,updates:{tags:Y}}),o(e.id,{tags:Y})}}},U=C=>{V.playClick();const H=w.filter(M=>M!==C);S(H);const Y=ye();Y&&Y.emit("update_ticket",{ticketId:e.id,updates:{tags:H}}),o(e.id,{tags:H})},z=()=>{const C=ye();C&&C.emit("update_ticket",{ticketId:e.id,updates:{assignee:me.trim()||null}}),o(e.id,{assignee:me.trim()||null})},oe=()=>{if(V.playClick(),confirm(u("deleteTaskConfirm"))){const C=ye();C&&C.emit("delete_ticket",{ticketId:e.id,columnId:e.columnId}),a(e.id,e.columnId),i()}};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-2xl w-full p-4 sm:p-7 relative max-h-[92vh] overflow-y-auto text-slate-900 dark:text-slate-100",children:[l.jsx("button",{onClick:()=>{V.playClick(),i()},className:"absolute top-4 right-4 sm:top-5 sm:right-5 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 p-1 rounded-md transition-colors",children:l.jsx(Ts,{size:20})}),l.jsx("div",{className:"flex items-center gap-2 mb-4",children:l.jsxs("span",{className:"text-xs font-medium bg-emerald-50 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-400 border border-emerald-200 dark:border-emerald-500/20 px-2.5 py-1 rounded-full flex items-center gap-1.5",children:[l.jsx(_o,{size:13,className:"text-emerald-600 dark:text-emerald-400"}),l.jsx("span",{children:u(et?"autoSaving":"synced")})]})}),l.jsxs("div",{className:"mb-4",children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("taskTitle")}),x&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 border border-amber-200 dark:border-amber-500/30 text-amber-800 dark:text-amber-300 text-xs px-3 py-1.5 mb-2 rounded-lg flex items-center gap-2 animate-pulse",children:[l.jsx(yl,{size:14,className:"shrink-0 text-amber-600 dark:text-amber-400"}),l.jsxs("span",{children:[x.userName," ",u("isTypingTitle")]})]}),l.jsx("input",{type:"text",value:c,disabled:!!x,onChange:q,onFocus:F,onBlur:$,placeholder:"Judul tugas...",className:`w-full bg-slate-50 dark:bg-slate-950/70 border ${x?"border-amber-500/40 opacity-60 cursor-not-allowed":"border-slate-300 dark:border-slate-800 focus:border-indigo-500"} text-slate-900 dark:text-slate-100 text-sm font-semibold p-3 rounded-lg outline-none transition-colors`})]}),l.jsxs("div",{className:"mb-5",children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("taskDesc")}),_&&l.jsxs("div",{className:"bg-amber-50 dark:bg-amber-500/15 border border-amber-200 dark:border-amber-500/30 text-amber-800 dark:text-amber-300 text-xs px-3 py-1.5 mb-2 rounded-lg flex items-center gap-2 animate-pulse",children:[l.jsx(yl,{size:14,className:"shrink-0 text-amber-600 dark:text-amber-400"}),l.jsxs("span",{children:[_.userName," ",u("isTypingDesc")]})]}),l.jsx("textarea",{rows:4,value:d,disabled:!!_,onChange:J,onFocus:ne,onBlur:Q,placeholder:u("taskDescPlaceholder"),className:`w-full bg-slate-50 dark:bg-slate-950/70 border ${_?"border-amber-500/40 opacity-60 cursor-not-allowed":"border-slate-300 dark:border-slate-800 focus:border-indigo-500"} text-slate-800 dark:text-slate-200 text-xs p-3 rounded-lg outline-none leading-relaxed transition-colors`})]}),l.jsxs("div",{className:"mb-5",children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-2",children:u("priorityLabel")}),l.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2",children:[{id:"LOW",label:`🟢 ${u("prioLow")}`,activeClass:"bg-emerald-50 dark:bg-emerald-500/20 text-emerald-700 dark:text-emerald-300 border-emerald-500 font-bold"},{id:"MEDIUM",label:`🔵 ${u("prioMedium")}`,activeClass:"bg-blue-50 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300 border-blue-500 font-bold"},{id:"HIGH",label:`🟡 ${u("prioHigh")}`,activeClass:"bg-amber-50 dark:bg-amber-500/20 text-amber-700 dark:text-amber-300 border-amber-500 font-bold"},{id:"URGENT",label:`🔴 ${u("prioUrgent")}`,activeClass:"bg-rose-50 dark:bg-rose-500/20 text-rose-700 dark:text-rose-300 border-rose-500 font-bold"}].map(C=>l.jsx("button",{type:"button",onClick:()=>ae(C.id),className:`py-2 px-3 text-xs font-medium rounded-lg border transition-all ${k===C.id?C.activeClass:"bg-slate-50 dark:bg-slate-950/60 border-slate-300 dark:border-slate-800 text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200"}`,children:C.label},C.id))})]}),l.jsxs("div",{className:"mb-5 bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 rounded-xl p-4",children:[l.jsx("div",{className:"flex items-center justify-between mb-3",children:l.jsxs("label",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2",children:[l.jsx(vl,{size:15,className:"text-indigo-600 dark:text-emerald-400"}),l.jsxs("span",{children:[u("subtasksLabel")," (",g.filter(C=>C.completed).length,"/",g.length,")"]})]})}),l.jsx("div",{className:"space-y-2 mb-3",children:g.map(C=>l.jsxs("div",{className:"flex items-center justify-between gap-2 bg-white dark:bg-slate-900/80 border border-slate-200 dark:border-slate-800 p-2.5 rounded-lg group",children:[l.jsxs("div",{onClick:()=>he(C.id),className:"flex items-center gap-2.5 cursor-pointer flex-1",children:[l.jsx("button",{type:"button",className:"text-indigo-600 dark:text-emerald-400",children:C.completed?l.jsx(vl,{size:16}):l.jsx(Eg,{size:16})}),l.jsx("span",{className:`text-xs ${C.completed?"line-through text-slate-400 dark:text-slate-500":"text-slate-800 dark:text-slate-200"}`,children:C.title})]}),l.jsx("button",{type:"button",onClick:()=>ee(C.id),className:"text-slate-400 hover:text-rose-600 dark:hover:text-rose-400 p-1 opacity-0 group-hover:opacity-100 transition-opacity",children:l.jsx(Ts,{size:14})})]},C.id))}),l.jsxs("form",{onSubmit:se,className:"flex items-center gap-2",children:[l.jsx("input",{type:"text",value:j,onChange:C=>R(C.target.value),placeholder:u("addSubtaskPlaceholder"),className:"flex-1 bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 p-2 text-xs text-slate-900 dark:text-slate-100 rounded-lg outline-none focus:border-indigo-500"}),l.jsxs("button",{type:"submit",className:"btn-modern-primary py-2 px-3 text-xs flex items-center gap-1 font-semibold",children:[l.jsx(Cu,{size:14}),l.jsx("span",{children:u("add")})]})]})]}),l.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5",children:[l.jsxs("div",{className:"bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5 flex items-center gap-1.5",children:[l.jsx(Dp,{size:14,className:"text-indigo-600 dark:text-emerald-400"}),l.jsx("span",{children:u("dueDateLabel")})]}),l.jsx("input",{type:"date",value:E,onChange:ve,className:"w-full bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 p-2 text-xs text-slate-900 dark:text-slate-100 rounded-lg outline-none"})]}),l.jsxs("div",{className:"bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 p-3.5 rounded-xl",children:[l.jsxs("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5 flex items-center gap-1.5",children:[l.jsx(to,{size:14,className:"text-rose-600 dark:text-rose-400"}),l.jsx("span",{children:u("blockedLabel")})]}),l.jsxs("button",{type:"button",onClick:_e,className:`w-full py-2 px-3 text-xs font-semibold rounded-lg border flex items-center justify-center gap-2 transition-all ${D?"bg-rose-50 dark:bg-rose-500/20 text-rose-700 dark:text-rose-300 border-rose-500":"bg-white dark:bg-slate-900 border-slate-300 dark:border-slate-800 text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200"}`,children:[l.jsx(to,{size:14}),l.jsx("span",{children:D?"🚩 Status: BLOCKED":"Normal (Tidak Macet)"})]}),D&&l.jsx("input",{type:"text",value:X,onChange:C=>we(C.target.value),onBlur:Ue,placeholder:u("blockedReasonPlaceholder"),className:"w-full mt-2 bg-white dark:bg-slate-900 border border-rose-400 dark:border-rose-500/50 p-2 text-xs text-rose-700 dark:text-rose-300 rounded-lg outline-none"})]})]}),l.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("tagsLabel")}),l.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2",children:w.map(C=>l.jsxs("span",{className:"bg-indigo-50 dark:bg-indigo-500/15 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/30 px-2.5 py-0.5 text-xs font-medium rounded-full flex items-center gap-1.5",children:["#",C,l.jsx("button",{onClick:()=>U(C),className:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-900 dark:hover:text-indigo-200",children:"×"})]},C))}),l.jsx("input",{type:"text",value:m,onChange:C=>p(C.target.value),onKeyDown:P,placeholder:u("tagsPlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 text-xs p-2 text-indigo-700 dark:text-indigo-300 rounded-lg outline-none focus:border-indigo-500"})]}),l.jsxs("div",{children:[l.jsx("label",{className:"block text-xs font-semibold text-slate-700 dark:text-slate-300 mb-1.5",children:u("assigneeLabel")}),l.jsx("input",{type:"text",value:me,onChange:C=>Re(C.target.value),onBlur:z,placeholder:u("assigneePlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 text-xs p-2 text-slate-900 dark:text-slate-200 rounded-lg outline-none focus:border-indigo-500"})]})]}),l.jsxs("div",{className:"mb-6 bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800 rounded-xl p-3.5 sm:p-4",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2.5",children:[l.jsxs("label",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2",children:[l.jsx(Nu,{size:14,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:u("cardMovementHistory")})]}),l.jsxs("span",{className:"text-[10px] text-slate-400 font-mono",children:[ge.length," catatan"]})]}),l.jsx("div",{className:"space-y-2 max-h-44 overflow-y-auto pr-1",children:W?l.jsx("p",{className:"text-[11px] text-slate-400 text-center py-2",children:"Memuat riwayat..."}):ge.length===0?l.jsx("p",{className:"text-[11px] text-slate-400 text-center py-2",children:"Belum ada pergerakan kolom yang tercatat"}):ge.map(C=>l.jsx("div",{className:"bg-white dark:bg-slate-900/80 border border-slate-200 dark:border-slate-800/80 p-2.5 rounded-lg text-xs flex items-start justify-between gap-2",children:l.jsxs("div",{className:"space-y-0.5 flex-1 min-w-0",children:[C.action==="MOVED"&&C.fromColumnTitle&&C.toColumnTitle?l.jsxs("p",{className:"text-[11px] text-slate-700 dark:text-slate-300 flex items-center gap-1.5 flex-wrap",children:[l.jsx("span",{className:"font-semibold",children:C.fromColumnTitle}),l.jsx(xl,{size:11,className:"text-slate-400"}),l.jsx("span",{className:"font-semibold text-indigo-600 dark:text-indigo-400",children:C.toColumnTitle})]}):l.jsx("p",{className:"text-[11px] text-slate-700 dark:text-slate-300 font-medium",children:C.details||C.action}),l.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-slate-400",children:[l.jsxs("span",{className:"flex items-center gap-0.5",children:[l.jsx(Lo,{size:10}),l.jsx("span",{children:C.userName})]}),l.jsx("span",{children:"•"}),l.jsxs("span",{className:"flex items-center gap-0.5",children:[l.jsx(jo,{size:10}),l.jsx("span",{children:Vv(C.createdAt)})]})]})]})},C.id))})]}),l.jsxs("div",{className:"flex items-center justify-between pt-4 border-t border-slate-200 dark:border-slate-800",children:[l.jsxs("button",{onClick:oe,className:"btn-modern-danger flex items-center gap-1.5 text-xs py-2 px-3.5",children:[l.jsx(Os,{size:14}),l.jsx("span",{children:u("deleteTask")})]}),l.jsx("button",{onClick:()=>{V.playClick(),i()},className:"btn-modern-primary py-2 px-6 font-bold",children:u("save")})]})]})})},Wv=({boardId:e,adminKey:t,onClose:n})=>{const{t:r}=Rt(),[s,i]=y.useState(!1),[o,a]=y.useState(null),[u,c]=y.useState(!1),[h,d]=y.useState(""),f=async()=>{V.playClick(),i(!0),d("");try{const N=await Qg(e,t),w=`${window.location.origin}${N.memberUrlFragment}`;a(w);const S=ye();S&&S.emit("member_key_rotated"),V.playVictory()}catch(N){d(N.message||"Failed to rotate key")}finally{i(!1)}},k=async()=>{o&&(V.playClick(),await navigator.clipboard.writeText(o),c(!0),setTimeout(()=>c(!1),2e3))};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-lg w-full p-4 sm:p-7 relative text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"absolute top-4 right-4 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 p-1 rounded-md",children:l.jsx(Ts,{size:18})}),l.jsxs("div",{className:"flex items-center gap-3 mb-4 sm:mb-5",children:[l.jsx("div",{className:"w-9 h-9 sm:w-10 sm:h-10 bg-amber-50 dark:bg-amber-500/10 border border-amber-200 dark:border-amber-500/30 rounded-xl flex items-center justify-center text-amber-600 dark:text-amber-400",children:l.jsx(no,{size:18})}),l.jsxs("div",{children:[l.jsx("h2",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-slate-100",children:r("keyRotationTitle")}),l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("keyRotationSubtitle")})]})]}),o?l.jsxs("div",{className:"space-y-3.5",children:[l.jsxs("div",{className:"bg-emerald-50 dark:bg-emerald-500/15 border border-emerald-200 dark:border-emerald-500/30 p-3.5 rounded-xl text-xs text-emerald-800 dark:text-emerald-200",children:[l.jsx("p",{className:"font-bold text-emerald-700 dark:text-emerald-400 mb-1 text-xs",children:r("newLinkActiveTitle")}),l.jsx("p",{className:"text-xs leading-relaxed opacity-90",children:r("newLinkActiveDesc")})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("input",{type:"text",readOnly:!0,value:o,className:"bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 text-slate-800 dark:text-slate-300 font-mono text-[11px] sm:text-xs p-2.5 rounded-lg flex-1 select-all outline-none"}),l.jsxs("button",{onClick:k,className:`btn-modern ${u?"bg-emerald-500 text-slate-950":"btn-modern-primary"} py-2.5 px-3 flex items-center gap-1.5`,children:[u?l.jsx(ml,{size:14}):l.jsx(gl,{size:14}),l.jsx("span",{children:r(u?"copied":"copy")})]})]}),l.jsx("div",{className:"flex justify-end pt-2",children:l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"btn-modern-primary py-2 px-6 font-bold",children:r("done")})})]}):l.jsxs("div",{className:"space-y-3.5",children:[l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-500/15 border border-rose-200 dark:border-rose-500/30 p-3.5 rounded-xl text-xs text-rose-800 dark:text-rose-200 flex items-start gap-2.5",children:[l.jsx(Ro,{size:18,className:"text-rose-600 dark:text-rose-400 shrink-0 mt-0.5"}),l.jsxs("div",{children:[l.jsx("p",{className:"font-bold mb-1 text-rose-700 dark:text-rose-300",children:r("keyRotationWarningTitle")}),l.jsx("p",{className:"text-xs leading-relaxed opacity-90",children:r("keyRotationWarningDesc")})]})]}),h&&l.jsx("p",{className:"text-xs text-rose-600 dark:text-rose-400 font-bold",children:h}),l.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"btn-modern-secondary py-2 px-4",children:r("cancel")}),l.jsxs("button",{onClick:f,disabled:s,className:"btn-modern-danger py-2 px-4 font-bold flex items-center gap-2",children:[l.jsx(no,{size:14,className:s?"animate-spin":""}),l.jsx("span",{children:r(s?"rotatingBtn":"regenerateBtn")})]})]})]})]})})},Gv=({onKeyProvided:e})=>{const{t}=Rt(),[n,r]=y.useState(""),[s,i]=y.useState(""),o=a=>{var c,h;a.preventDefault(),V.playClick();const u=n.trim();if(!u){i(t("keyPromptError"));return}if(u.includes("#admin=")){const d=(c=u.split("#admin=")[1])==null?void 0:c.split("&")[0];if(d){window.location.hash=`admin=${d}`,e(d,"admin");return}}else if(u.includes("#member=")){const d=(h=u.split("#member=")[1])==null?void 0:h.split("&")[0];if(d){window.location.hash=`member=${d}`,e(d,"member");return}}window.location.hash=`member=${u}`,e(u)};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-md w-full p-4 sm:p-7 text-center text-slate-900 dark:text-slate-100 max-h-[92vh] overflow-y-auto",children:[l.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-amber-50 dark:bg-amber-500/10 border border-amber-200 dark:border-amber-500/30 rounded-2xl mx-auto flex items-center justify-center mb-3 text-amber-600 dark:text-amber-400",children:l.jsx(Sg,{size:22})}),l.jsx("h2",{className:"text-sm sm:text-base md:text-lg font-bold text-slate-900 dark:text-slate-100 mb-1.5",children:t("keyPromptTitle")}),l.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 mb-4 sm:mb-5 leading-relaxed",children:t("keyPromptDesc")}),s&&l.jsxs("div",{className:"bg-rose-50 dark:bg-rose-500/15 border border-rose-200 dark:border-rose-500/30 text-rose-700 dark:text-rose-300 text-xs p-2.5 sm:p-3 rounded-lg mb-4 flex items-center gap-2 text-left",children:[l.jsx(Ro,{size:15,className:"shrink-0 text-rose-600 dark:text-rose-400"}),l.jsx("span",{children:s})]}),l.jsxs("form",{onSubmit:o,className:"space-y-3.5",children:[l.jsx("input",{type:"text",value:n,onChange:a=>{r(a.target.value),i("")},placeholder:t("keyPromptPlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg text-indigo-600 dark:text-emerald-400 font-mono text-xs p-3 outline-none focus:border-indigo-500",autoFocus:!0}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{type:"button",onClick:()=>{V.playClick(),window.location.href="/"},className:"btn-modern-secondary flex-1 py-2.5 text-xs",children:t("backToHome")}),l.jsx("button",{type:"submit",className:"btn-modern-primary flex-1 py-2.5 font-bold text-xs",children:t("unlockBoardBtn")})]})]})]})})};function Qv(e){try{const t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`${Math.max(1,n)} detik lalu`;const r=Math.floor(n/60);if(r<60)return`${r} menit lalu`;const s=Math.floor(r/60);return s<24?`${s} jam lalu`:`${Math.floor(s/24)} hari lalu`}catch{return e}}const qv=({boardId:e,boardKey:t,onClose:n})=>{const{t:r}=Rt(),[s,i]=y.useState([]),[o,a]=y.useState(!0),[u,c]=y.useState(null),h=async()=>{a(!0),c(null);try{const f=await Wg(e,t,60);i(f)}catch(f){c(f.message||"Failed to load activity logs")}finally{a(!1)}};y.useEffect(()=>{h()},[e,t]);const d=f=>{switch(f.action){case"MOVED":return l.jsxs("span",{className:"bg-indigo-50 dark:bg-indigo-500/15 text-indigo-700 dark:text-indigo-300 border border-indigo-200 dark:border-indigo-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(xl,{size:11,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:"Pindah Kolom"})]});case"CREATED":return l.jsxs("span",{className:"bg-emerald-50 dark:bg-emerald-500/15 text-emerald-700 dark:text-emerald-300 border border-emerald-200 dark:border-emerald-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(Pp,{size:11,className:"text-emerald-600 dark:text-emerald-400"}),l.jsx("span",{children:"Dibuat"})]});case"BLOCKED":return l.jsxs("span",{className:"bg-rose-50 dark:bg-rose-500/15 text-rose-700 dark:text-rose-300 border border-rose-200 dark:border-rose-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(to,{size:11,className:"text-rose-600 dark:text-rose-400"}),l.jsx("span",{children:"Blocked"})]});case"UNBLOCKED":return l.jsxs("span",{className:"bg-cyan-50 dark:bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 border border-cyan-200 dark:border-cyan-500/30 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(Ip,{size:11,className:"text-cyan-600 dark:text-cyan-400"}),l.jsx("span",{children:"Unblocked"})]});case"DELETED":return l.jsxs("span",{className:"bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-400 border border-slate-300 dark:border-slate-700 text-[10px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 shrink-0",children:[l.jsx(Os,{size:11}),l.jsx("span",{children:"Dihapus"})]});default:return null}};return l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-950/70 backdrop-blur-md animate-fade-in",children:l.jsxs("div",{className:"bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-2xl shadow-2xl max-w-xl w-full p-4 sm:p-7 relative text-slate-900 dark:text-slate-100 max-h-[92vh] flex flex-col",children:[l.jsxs("div",{className:"flex items-center justify-between pb-3.5 border-b border-slate-200 dark:border-slate-800",children:[l.jsxs("div",{className:"flex items-center gap-2.5",children:[l.jsx("div",{className:"w-9 h-9 bg-indigo-50 dark:bg-indigo-500/10 border border-indigo-200 dark:border-indigo-500/30 rounded-xl flex items-center justify-center text-indigo-600 dark:text-indigo-400 shrink-0",children:l.jsx(Nu,{size:18})}),l.jsxs("div",{children:[l.jsx("h2",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-white tracking-tight",children:r("activityLogTitle")}),l.jsx("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:"Log pergerakan kartu & aktivitas real-time tersimpan di database"})]})]}),l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx("button",{onClick:()=>{V.playClick(),h()},className:"p-1.5 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 rounded-md transition-colors",title:"Refresh logs",children:l.jsx(no,{size:15,className:o?"animate-spin text-indigo-500":""})}),l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"p-1.5 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 rounded-md transition-colors",children:l.jsx(Ts,{size:18})})]})]}),l.jsx("div",{className:"flex-1 overflow-y-auto py-3.5 space-y-2.5 pr-1",children:o&&s.length===0?l.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center text-slate-400 text-xs gap-2",children:[l.jsx("div",{className:"w-6 h-6 border-2 border-indigo-500 border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:"Memuat riwayat database..."})]}):u?l.jsx("div",{className:"p-4 bg-rose-50 dark:bg-rose-500/10 border border-rose-200 dark:border-rose-500/30 text-rose-700 dark:text-rose-300 rounded-xl text-xs",children:u}):s.length===0?l.jsx("div",{className:"p-8 text-center text-slate-400 text-xs border border-dashed border-slate-200 dark:border-slate-800 rounded-xl",children:r("noActivityLogs")}):s.map(f=>l.jsx("div",{className:"bg-slate-50 dark:bg-slate-950/60 border border-slate-200 dark:border-slate-800/80 p-3 rounded-xl flex items-start justify-between gap-3 text-xs",children:l.jsxs("div",{className:"space-y-1 min-w-0 flex-1",children:[l.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d(f),l.jsx("span",{className:"font-bold text-slate-900 dark:text-slate-100 truncate",children:f.ticketTitle||"Tugas"})]}),f.fromColumnTitle&&f.toColumnTitle&&f.action==="MOVED"?l.jsxs("p",{className:"text-[11px] text-slate-600 dark:text-slate-300 flex items-center gap-1.5 flex-wrap",children:[l.jsx("span",{className:"px-1.5 py-0.5 bg-slate-200/80 dark:bg-slate-800 rounded font-medium",children:f.fromColumnTitle}),l.jsx(xl,{size:12,className:"text-slate-400"}),l.jsx("span",{className:"px-1.5 py-0.5 bg-indigo-100 dark:bg-indigo-900/50 text-indigo-800 dark:text-indigo-300 rounded font-semibold",children:f.toColumnTitle})]}):f.details?l.jsx("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:f.details}):null,l.jsxs("div",{className:"flex items-center gap-3 pt-0.5 text-[10px] text-slate-400 dark:text-slate-500",children:[l.jsxs("span",{className:"flex items-center gap-1",children:[l.jsx(Lo,{size:11}),l.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-400",children:f.userName})]}),l.jsxs("span",{className:"flex items-center gap-1",children:[l.jsx(jo,{size:11}),l.jsx("span",{children:Qv(f.createdAt)})]})]})]})},f.id))}),l.jsx("div",{className:"pt-3 border-t border-slate-200 dark:border-slate-800 flex justify-end",children:l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"btn-modern-primary py-2 px-5 text-xs font-bold",children:r("close")})})]})})};function ci(e){try{return decodeURIComponent(e)}catch{return e}}function Yv(e,t){try{let n=(t||window.location.hash||"").trim();if(n.startsWith("#")&&(n=n.substring(1)),n.includes("admin=")){const a=n.split("admin=")[1].split("&")[0];if(a)return{key:ci(a),role:"admin"}}if(n.includes("member=")){const a=n.split("member=")[1].split("&")[0];if(a)return{key:ci(a),role:"member"}}if(n&&!n.includes("="))return{key:ci(n),role:"member"};const r=new URLSearchParams(window.location.search),s=r.get("admin"),i=r.get("member");if(s)return{key:ci(s),role:"admin"};if(i)return{key:i,role:"member"};const o=Dg(e);if(o&&o.key)return{key:o.key,role:o.role}}catch(n){console.error("Error extracting key from sources:",n)}return null}const Xv=({boardId:e,hash:t,onBackHome:n})=>{const{t:r}=Rt(),[s,i]=y.useState(""),[o,a]=y.useState(null),[u,c]=y.useState(!0),[h,d]=y.useState(null),[f,k]=y.useState("member"),[N,w]=y.useState([]),[S,m]=y.useState([]),[p,g]=y.useState(Tu()),[b,j]=y.useState(null),[R,E]=y.useState(null),[T,D]=y.useState(!1),[I,X]=y.useState(!1),[we,me]=y.useState(!1),[Re,et]=y.useState(!1),[Fe,ge]=y.useState(!1),[A,W]=y.useState(!1),[v,x]=y.useState(""),[_,B]=y.useState(0),[K,q]=y.useState(0);y.useEffect(()=>{const P=U=>{const z=U;z.detail&&g(z.detail)};return window.addEventListener("user_profile_updated",P),()=>window.removeEventListener("user_profile_updated",P)},[]),y.useEffect(()=>{let P=!0;c(!0),d(null);const U=Yv(e,t);if(!U||!U.key){c(!1),me(!0);return}const z=U.key,oe=U.role;i(z),k(oe),(!window.location.hash||!window.location.hash.includes(z))&&(window.location.hash=`${oe}=${z}`);const C=setTimeout(()=>{P&&u&&(c(!1),d("Waktu koneksi habis (Connection timeout). Silakan periksa kembali tautan Anda."))},1e4);return Kg(e,z).then(H=>{if(!P)return;clearTimeout(C),a(H),k(H.role),c(!1),$p({id:H.id,title:H.title,role:H.role,key:z});const Y=$v(e,z,p.userName,p.userId);Y.on("presence_update",M=>{m(M)}),Y.on("active_locks",M=>{w(M)}),Y.on("field_locked",M=>{w(G=>[...G.filter(ce=>!(ce.ticketId===M.ticketId&&ce.field===M.field)),M])}),Y.on("field_unlocked",M=>{w(G=>G.filter(te=>!(te.ticketId===M.ticketId&&te.field===M.field))),M.updatedTicket&&F(M.updatedTicket)}),Y.on("ticket_created",M=>{a(G=>G&&{...G,columns:G.columns.map(te=>te.id===M.ticket.columnId?te.tickets.some(ce=>ce.id===M.ticket.id)?te:{...te,tickets:[...te.tickets,M.ticket]}:te)}),V.playDrop()}),Y.on("ticket_updated",M=>{F(M.ticket)}),Y.on("ticket_deleted",M=>{a(G=>G&&{...G,columns:G.columns.map(te=>({...te,tickets:te.tickets.filter(ce=>ce.id!==M.ticketId)}))}),R&&R.id===M.ticketId&&E(null)}),Y.on("card_moved",M=>{a(G=>{if(!G)return G;let te=null;for(const ce of G.columns){const Z=ce.tickets.find(Se=>Se.id===M.ticketId);if(Z){te={...Z,columnId:M.targetColumnId,order:M.newOrder,movedAt:new Date().toISOString()};break}}return te?{...G,columns:G.columns.map(ce=>{if(ce.id===M.targetColumnId){const Se=[...ce.tickets.filter(de=>de.id!==M.ticketId)];return Se.splice(M.newOrder,0,te),{...ce,tickets:Se}}else return{...ce,tickets:ce.tickets.filter(Z=>Z.id!==M.ticketId)}})}:G}),V.playDrop()}),Y.on("card_move_failed",M=>{V.playLock(),alert(`${r("movementFailed")} ${M.error}`)}),Y.on("column_created",M=>{a(G=>!G||G.columns.some(te=>te.id===M.column.id)?G:{...G,columns:[...G.columns,M.column]})}),Y.on("column_updated",M=>{a(G=>G&&{...G,columns:G.columns.map(te=>te.id===M.column.id?M.column:te)})}),Y.on("column_deleted",M=>{a(G=>G&&{...G,columns:G.columns.filter(te=>te.id!==M.columnId)})}),Y.on("columns_reordered",M=>{a(G=>{if(!G)return G;const te=new Map(G.columns.map(Z=>[Z.id,Z])),ce=M.columnIdsInOrder.map(Z=>te.get(Z)).filter(Boolean);return{...G,columns:ce}})}),Y.on("board_settings_updated",M=>{a(G=>G&&{...G,autoMoveStale:M.autoMoveStale})}),Y.on("member_session_revoked",M=>{V.playLock(),alert(M.message||r("sessionRevokedMsg")),window.location.href="/"}),Y.on("board_refreshed",M=>{a(M)})}).catch(H=>{P&&(clearTimeout(C),d(H.message||"Failed to authenticate or load board"),c(!1))}),()=>{P=!1,clearTimeout(C),Hv()}},[e,t]);const F=y.useCallback(P=>{a(U=>U&&{...U,columns:U.columns.map(z=>({...z,tickets:z.tickets.map(oe=>oe.id===P.id?P:oe)}))}),E(U=>U&&U.id===P.id?P:U)},[]),$=fy(ed(Du,{activationConstraint:{distance:8}}),ed(Mu,{coordinateGetter:Kx})),J=y.useMemo(()=>(o==null?void 0:o.columns.map(P=>P.id))||[],[o]),ne=P=>{V.playClick();const{active:U}=P,z=U.data.current;(z==null?void 0:z.type)==="Ticket"?j({type:"Ticket",data:z.ticket}):(z==null?void 0:z.type)==="Column"&&j({type:"Column",data:z.column})},Q=P=>{var G,te,ce;const{active:U,over:z}=P;if(!z||!o)return;const oe=String(U.id),C=String(z.id);if(oe===C)return;const H=((G=U.data.current)==null?void 0:G.type)==="Ticket",Y=((te=z.data.current)==null?void 0:te.type)==="Ticket",M=((ce=z.data.current)==null?void 0:ce.type)==="Column";H&&(Y&&a(Z=>{if(!Z)return Z;const Se=Z.columns.find(De=>De.tickets.some(Dr=>Dr.id===oe)),de=Z.columns.find(De=>De.tickets.some(Dr=>Dr.id===C));if(!Se||!de||Se.id===de.id||de.maxWipLimit>0&&de.tickets.length>=de.maxWipLimit)return Z;const ln=Se.tickets.find(De=>De.id===oe),In=de.tickets.findIndex(De=>De.id===C),Ar=Se.tickets.filter(De=>De.id!==oe),Ae=[...de.tickets];return Ae.splice(In,0,{...ln,columnId:de.id,movedAt:new Date().toISOString()}),{...Z,columns:Z.columns.map(De=>De.id===Se.id?{...De,tickets:Ar}:De.id===de.id?{...De,tickets:Ae}:De)}}),M&&a(Z=>{if(!Z)return Z;const Se=Z.columns.find(Ae=>Ae.tickets.some(De=>De.id===oe)),de=Z.columns.find(Ae=>Ae.id===C);if(!Se||!de||Se.id===de.id||de.maxWipLimit>0&&de.tickets.length>=de.maxWipLimit)return Z;const ln=Se.tickets.find(Ae=>Ae.id===oe),In=Se.tickets.filter(Ae=>Ae.id!==oe),Ar=[...de.tickets,{...ln,columnId:de.id,movedAt:new Date().toISOString()}];return{...Z,columns:Z.columns.map(Ae=>Ae.id===Se.id?{...Ae,tickets:In}:Ae.id===de.id?{...Ae,tickets:Ar}:Ae)}}))},ae=P=>{var H,Y;j(null);const{active:U,over:z}=P;if(!z||!o)return;const oe=String(U.id),C=String(z.id);if(V.playDrop(),((H=U.data.current)==null?void 0:H.type)==="Column"&&f==="admin"){if(oe!==C){const M=o.columns.findIndex(Z=>Z.id===oe),G=o.columns.findIndex(Z=>Z.id===C),te=Pu(o.columns,M,G);a({...o,columns:te});const ce=ye();ce&&ce.emit("reorder_columns",{columnIdsInOrder:te.map(Z=>Z.id)})}return}if(((Y=U.data.current)==null?void 0:Y.type)==="Ticket"){const M=o.columns.find(Z=>Z.tickets.some(Se=>Se.id===oe));if(!M)return;const G=M.tickets.findIndex(Z=>Z.id===oe),te=M.tickets.map(Z=>Z.id),ce=ye();ce&&ce.emit("card_moved",{ticketId:oe,targetColumnId:M.id,newOrder:G,ticketIdsInTargetColumn:te})}},se=P=>{if(P.preventDefault(),!v.trim())return;V.playClick();const U=ye();U&&U.emit("create_column",{title:v.trim(),maxWipLimit:_,autoStaleHours:K}),x(""),B(0),q(0),W(!1)},he=(P,U)=>{const z=ye();z&&z.emit("update_column",{columnId:P,updates:U})},ee=P=>{const U=ye();U&&U.emit("delete_column",{columnId:P})},ve=(P,U)=>{const z=o==null?void 0:o.columns.find(C=>C.id===P);if(z&&z.maxWipLimit>0&&z.tickets.length>=z.maxWipLimit){V.playLock(),alert(r("wipWarningModal"));return}const oe=ye();oe&&oe.emit("create_ticket",{columnId:P,title:U,priority:"MEDIUM",tags:[],subtasks:[],dueDate:"",isBlocked:!1})},_e=()=>{if(f!=="admin"||!o)return;V.playClick();const P=!o.autoMoveStale;a({...o,autoMoveStale:P});const U=ye();U&&U.emit("update_board_settings",{autoMoveStale:P})},Ue=async()=>{if(f==="admin"&&(V.playClick(),confirm("🚨 Hapus papan Kanban ini secara permanen? Tindakan ini tidak dapat dibatalkan.")))try{await qg(e,s),window.location.href="/"}catch(P){alert(P.message||"Failed to delete board")}};return we?l.jsx(Gv,{boardId:e,onKeyProvided:(P,U)=>{me(!1),i(P),U&&k(U)}}):u?l.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[70vh] gap-4",children:[l.jsx("div",{className:"w-10 h-10 border-3 border-indigo-500 border-t-transparent rounded-full animate-spin"}),l.jsx("p",{className:"text-sm font-semibold text-indigo-600 dark:text-indigo-400 animate-pulse",children:r("connectingToRealm")})]}):h||!o?l.jsxs("div",{className:"max-w-md mx-auto my-12 sm:my-20 p-5 sm:p-8 card-kanban border-rose-500/50 text-center mx-4",children:[l.jsx(xg,{size:36,className:"text-rose-500 mx-auto mb-3"}),l.jsx("h2",{className:"text-base font-bold text-rose-600 dark:text-rose-400 mb-2",children:r("accessForbidden")}),l.jsx("p",{className:"text-xs text-slate-600 dark:text-slate-300 mb-5 leading-relaxed",children:h||r("accessForbiddenDesc")}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{onClick:n,className:"btn-modern-secondary flex-1 py-2",children:r("backToHome")}),l.jsx("button",{onClick:()=>{me(!0),d(null)},className:"btn-modern-primary flex-1 py-2",children:r("reEnterKey")})]})]}):l.jsxs("div",{className:"flex flex-col min-h-[calc(100vh-60px)]",children:[l.jsxs("div",{className:"bg-white/95 dark:bg-[#090d18]/90 border-b border-slate-200 dark:border-slate-800 px-3 sm:px-4 py-2.5 sm:py-3 shadow-sm transition-colors duration-200",children:[l.jsxs("div",{className:"max-w-7xl mx-auto flex flex-wrap items-center justify-between gap-2.5 sm:gap-3",children:[l.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 min-w-0",children:[l.jsx("button",{onClick:()=>{V.playClick(),n()},className:"p-1.5 sm:p-2 bg-slate-100 dark:bg-slate-800/80 border border-slate-200 dark:border-slate-700/80 rounded-lg text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-100 transition-colors shrink-0",title:r("backToHome"),children:l.jsx(yg,{size:15})}),l.jsx("div",{className:"min-w-0",children:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("h2",{className:"text-sm sm:text-base md:text-lg font-bold text-slate-900 dark:text-white tracking-tight truncate max-w-[140px] sm:max-w-[280px] md:max-w-md",children:o.title}),l.jsxs("span",{className:`text-[10px] sm:text-[11px] font-semibold px-2 py-0.5 rounded-full flex items-center gap-1 border shrink-0 ${f==="admin"?"bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-300 border-amber-200 dark:border-amber-500/30":"bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-300 border-indigo-200 dark:border-indigo-500/30"}`,children:[f==="admin"?l.jsx(Op,{size:11,className:"text-amber-600 dark:text-amber-400"}):l.jsx(Cg,{size:11,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{children:r(f==="admin"?"superadmin":"member")})]})]})})]}),l.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 ml-auto",children:[l.jsxs("div",{className:"flex items-center bg-slate-100 dark:bg-slate-950/70 border border-slate-200 dark:border-slate-800 px-2 sm:px-3 py-1 sm:py-1.5 rounded-lg gap-1.5",children:[l.jsx(Up,{size:13,className:"text-indigo-600 dark:text-indigo-400 shrink-0"}),l.jsx("div",{className:"flex -space-x-1 items-center",children:S.slice(0,4).map(P=>l.jsxs("div",{style:{backgroundColor:P.color},className:"w-4 h-4 sm:w-5 sm:h-5 rounded-full border border-white dark:border-slate-900 flex items-center justify-center text-[8px] sm:text-[9px] text-slate-950 font-bold uppercase relative group cursor-default shadow-sm",children:[P.userName.charAt(0),l.jsxs("span",{className:"absolute bottom-full mb-1 left-1/2 -translate-x-1/2 bg-slate-950 text-white text-[10px] px-2 py-1 rounded-md whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-30 border border-slate-800 shadow-md",children:[P.userName," (",P.role,")"]})]},P.socketId))}),l.jsx("span",{className:"text-[11px] sm:text-xs font-semibold text-slate-700 dark:text-slate-300",children:S.length})]}),l.jsxs("button",{onClick:()=>{V.playClick(),ge(!0)},className:"btn-modern-secondary text-[11px] sm:text-xs py-1.5 sm:py-2 px-2.5 sm:px-3",title:r("boardLogsBtn"),children:[l.jsx(Nu,{size:13,className:"text-indigo-600 dark:text-indigo-400"}),l.jsx("span",{className:"hidden sm:inline",children:r("boardLogsBtn")})]}),l.jsxs("button",{onClick:()=>{V.playClick(),D(!0)},className:"btn-modern-primary text-[11px] sm:text-xs py-1.5 sm:py-2 px-2.5 sm:px-3.5",children:[l.jsx(Fp,{size:13}),l.jsx("span",{className:"hidden xs:inline",children:r("shareInviteBtn")})]}),f==="admin"&&l.jsxs("button",{onClick:()=>{V.playClick(),et(!Re)},className:`btn-modern text-[11px] sm:text-xs py-1.5 sm:py-2 px-2 sm:px-3 ${o.autoMoveStale?"bg-cyan-600 text-white font-bold":"btn-modern-secondary"}`,title:r("boardSettings"),children:[l.jsx(Jc,{size:13}),l.jsx("span",{className:"hidden sm:inline",children:r("boardSettings")})]}),f==="admin"&&l.jsxs("button",{onClick:()=>{V.playClick(),X(!0)},className:"btn-modern-gold text-[11px] sm:text-xs py-1.5 sm:py-2 px-2 sm:px-3",title:r("rotateKeyTooltip"),children:[l.jsx(no,{size:12}),l.jsx("span",{className:"hidden md:inline",children:r("rotateKeyBtn")})]}),f==="admin"&&l.jsx("button",{onClick:Ue,className:"btn-modern-danger p-1.5 sm:p-2 text-xs",title:r("deleteBoardTooltip"),children:l.jsx(Os,{size:13})})]})]}),Re&&f==="admin"&&l.jsxs("div",{className:"max-w-7xl mx-auto mt-3 p-3 bg-slate-50 dark:bg-slate-950/80 border border-cyan-500/40 rounded-xl flex flex-wrap items-center justify-between gap-2.5 text-xs animate-fade-in shadow-sm",children:[l.jsxs("div",{className:"flex items-center gap-2 text-cyan-800 dark:text-cyan-300 font-medium text-xs",children:[l.jsx(Jc,{size:14}),l.jsx("span",{children:r("autoMoveStaleSetting")})]}),l.jsx("button",{onClick:_e,className:`btn-modern text-xs py-1.5 px-3 font-semibold ${o.autoMoveStale?"bg-emerald-600 text-white":"btn-modern-secondary"}`,children:o.autoMoveStale?"✅ Aktif (Auto-Move ON)":"🚫 Nonaktif"})]})]}),l.jsx("div",{className:"flex-1 p-3 sm:p-4 md:p-6 overflow-x-auto snap-x snap-mandatory scroll-smooth",children:l.jsxs(cx,{sensors:$,collisionDetection:eh,onDragStart:ne,onDragOver:Q,onDragEnd:ae,children:[l.jsxs("div",{className:"flex items-start gap-3.5 sm:gap-5 pb-6",children:[l.jsx(pd,{items:J,strategy:Ax,children:o.columns.map(P=>l.jsx("div",{className:"snap-center",children:l.jsx(pd,{items:P.tickets.map(U=>U.id),strategy:Ix,children:l.jsx(Qx,{column:P,role:f,activeLocks:N,currentUserId:p.userId,onTicketClick:U=>E(U),onAddTicket:ve,onDeleteColumn:ee,onUpdateColumn:he})})},P.id))}),f==="admin"&&l.jsx("div",{className:"w-[82vw] max-w-[320px] sm:w-80 shrink-0 snap-center",children:A?l.jsxs("form",{onSubmit:se,className:"card-kanban border-indigo-500/50 p-4 space-y-3",children:[l.jsx("input",{type:"text",value:v,onChange:P=>x(P.target.value),placeholder:r("columnTitlePlaceholder"),className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg text-slate-900 dark:text-slate-100 text-xs p-2.5 outline-none focus:border-indigo-500",autoFocus:!0}),l.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs text-slate-500 dark:text-slate-400",children:[l.jsxs("div",{children:[l.jsx("label",{className:"block text-[11px] mb-1 font-medium",children:"WIP Limit:"}),l.jsx("input",{type:"number",min:0,value:_,onChange:P=>B(parseInt(P.target.value,10)||0),placeholder:"0 = unlim",className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-1.5 text-slate-900 dark:text-slate-100 text-center"})]}),l.jsxs("div",{children:[l.jsx("label",{className:"block text-[11px] mb-1 font-medium",children:"Stale (Jam):"}),l.jsx("input",{type:"number",min:0,value:K,onChange:P=>q(parseInt(P.target.value,10)||0),placeholder:"0 = off",className:"w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-1.5 text-slate-900 dark:text-slate-100 text-center"})]})]}),l.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[l.jsx("button",{type:"button",onClick:()=>W(!1),className:"btn-modern-secondary text-xs py-1.5 px-3",children:r("cancel")}),l.jsx("button",{type:"submit",className:"btn-modern-primary text-xs py-1.5 px-3 font-bold",children:r("addColumn")})]})]}):l.jsxs("button",{onClick:()=>{V.playClick(),W(!0)},className:"w-full bg-slate-100 hover:bg-slate-200 dark:bg-slate-900/40 dark:hover:bg-slate-900/80 border border-dashed border-slate-300 dark:border-slate-800 hover:border-indigo-500 rounded-2xl p-5 text-xs font-semibold text-slate-600 dark:text-slate-400 hover:text-indigo-600 dark:hover:text-indigo-400 flex items-center justify-center gap-2 transition-all shadow-sm select-none",children:[l.jsx(Cu,{size:16}),l.jsx("span",{children:r("addColumn")})]})})]}),l.jsx(Rx,{children:(b==null?void 0:b.type)==="Ticket"&&l.jsx("div",{className:"w-[82vw] max-w-[320px] sm:w-72 opacity-95 rotate-1 scale-105 shadow-2xl pointer-events-none",children:l.jsx(Sh,{ticket:b.data,activeLocks:[],currentUserId:p.userId,onClick:()=>{}})})})]})}),R&&l.jsx(Kv,{ticket:R,boardId:o.id,boardKey:s,activeLocks:N,currentUserId:p.userId,onClose:()=>E(null),onUpdateTicket:(P,U)=>{F({...R,...U,id:P})},onDeleteTicket:(P,U)=>{a(z=>z&&{...z,columns:z.columns.map(oe=>oe.id===U?{...oe,tickets:oe.tickets.filter(C=>C.id!==P)}:oe)})}}),Fe&&l.jsx(qv,{boardId:o.id,boardKey:s,onClose:()=>ge(!1)}),T&&l.jsx(qp,{boardData:{id:o.id,title:o.title,adminKey:f==="admin"?s:"***",memberKey:f==="admin"?o.memberKey||"":f==="member"?s:"***",adminUrlFragment:f==="admin"?`/b/${o.id}#admin=${s}`:"",memberUrlFragment:f==="admin"?o.memberKey?`/b/${o.id}#member=${o.memberKey}`:`/b/${o.id}#member=`:`/b/${o.id}#member=${s}`,createdAt:o.createdAt},onEnterBoard:()=>D(!1)}),I&&f==="admin"&&l.jsx(Wv,{boardId:o.id,adminKey:s,onClose:()=>X(!1)})]})};function Jv(){const{t:e}=Rt(),[t,n]=y.useState(window.location.pathname),[r,s]=y.useState(window.location.hash),[,i]=y.useState("id"),[,o]=y.useState(ro()),[,a]=y.useState(js());y.useEffect(()=>{Vp(ro()),Wp(js());const f=()=>{n(window.location.pathname),s(window.location.hash)},k=()=>{s(window.location.hash)};return window.addEventListener("popstate",f),window.addEventListener("hashchange",k),()=>{window.removeEventListener("popstate",f),window.removeEventListener("hashchange",k)}},[]);const u=t.startsWith("/b/"),c=u?t.replace("/b/","").split("/")[0]:null,h=()=>{window.history.pushState({},"","/"),n("/"),s("")},d=(f,k)=>{window.history.pushState({},"",`/b/${f}${k}`),n(`/b/${f}`),s(k)};return l.jsxs("div",{className:"min-h-screen bg-slate-50 dark:bg-[#080c18] text-slate-900 dark:text-slate-100 flex flex-col selection:bg-indigo-500 selection:text-white transition-colors duration-200",children:[l.jsx(Hg,{onHomeClick:h,onLanguageChange:f=>i(f),onThemeChange:f=>o(f),onRetroModeChange:f=>a(f)}),l.jsx("main",{className:"flex-1",children:u&&c?l.jsx(Xv,{boardId:c,hash:r,onBackHome:h},`${c}_${r}`):l.jsx(Xg,{onOpenBoard:d})}),l.jsx("footer",{className:"border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950/80 py-4 px-4 text-center text-xs text-slate-500 dark:text-slate-400 transition-colors duration-200",children:l.jsxs("p",{children:["🔗 ",e("footerText")]})})]})}ba.createRoot(document.getElementById("root")).render(l.jsx(Ne.StrictMode,{children:l.jsx(Jv,{})})); diff --git a/client/dist/index.html b/client/dist/index.html index 7b2db49..61c71dd 100644 --- a/client/dist/index.html +++ b/client/dist/index.html @@ -10,8 +10,8 @@ - - + +
diff --git a/client/src/components/BoardView.tsx b/client/src/components/BoardView.tsx index fb6d72c..f1f6e08 100644 --- a/client/src/components/BoardView.tsx +++ b/client/src/components/BoardView.tsx @@ -960,9 +960,11 @@ export const BoardView: React.FC = ({ boardId, hash: propHash, o id: board.id, title: board.title, adminKey: role === 'admin' ? key : '***', - memberKey: role === 'member' ? key : '***', - adminUrlFragment: `/b/${board.id}#admin=${role === 'admin' ? key : ''}`, - memberUrlFragment: `/b/${board.id}#member=${role === 'member' ? key : ''}`, + memberKey: role === 'admin' ? (board.memberKey || '') : (role === 'member' ? key : '***'), + adminUrlFragment: role === 'admin' ? `/b/${board.id}#admin=${key}` : '', + memberUrlFragment: role === 'admin' + ? (board.memberKey ? `/b/${board.id}#member=${board.memberKey}` : `/b/${board.id}#member=`) + : `/b/${board.id}#member=${key}`, createdAt: board.createdAt, }} onEnterBoard={() => setShowShareModal(false)} diff --git a/client/src/components/Navbar.tsx b/client/src/components/Navbar.tsx index 60863aa..db7313b 100644 --- a/client/src/components/Navbar.tsx +++ b/client/src/components/Navbar.tsx @@ -67,14 +67,15 @@ export const Navbar: React.FC = ({ if (onLanguageChange) onLanguageChange(next); }; - const handleSaveName = (e: React.FormEvent) => { - e.preventDefault(); - if (tempName.trim()) { - setUserName(tempName.trim()); - setProfileState(getUserProfile()); - setIsEditingName(false); + const handleSaveName = (e?: React.FormEvent) => { + if (e) e.preventDefault(); + const trimmed = tempName.trim(); + if (trimmed) { + const updated = setUserName(trimmed); + setProfileState(updated); soundFx.playClick(); } + setIsEditingName(false); }; return ( @@ -118,11 +119,19 @@ export const Navbar: React.FC = ({ maxLength={18} value={tempName} onChange={(e) => setTempName(e.target.value)} - className="bg-white dark:bg-slate-900 border border-indigo-500 text-slate-900 dark:text-indigo-300 text-xs px-2 py-1 rounded-md outline-none w-20 sm:w-32" + onKeyDown={(e) => { + if (e.key === 'Escape') { + setTempName(profile.userName); + setIsEditingName(false); + } + }} + className="bg-white dark:bg-slate-900 border border-indigo-500 text-slate-900 dark:text-indigo-300 text-xs px-2 py-1 rounded-md outline-none w-24 sm:w-36" autoFocus - onBlur={() => setIsEditingName(false)} /> - @@ -130,13 +139,16 @@ export const Navbar: React.FC = ({ )} diff --git a/client/src/types/index.ts b/client/src/types/index.ts index c756ae5..4e509bf 100644 --- a/client/src/types/index.ts +++ b/client/src/types/index.ts @@ -55,6 +55,8 @@ export interface Board { id: string; title: string; role: Role; + memberKey?: string; + memberUrlFragment?: string; autoMoveStale: boolean; columns: Column[]; createdAt: string; diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma index a1be3b9..dd1f6dc 100644 --- a/server/prisma/schema.prisma +++ b/server/prisma/schema.prisma @@ -21,6 +21,7 @@ model Board { title String @default("Agile Kanban Board") adminKeyHash String memberKeyHash String + memberKey String? @default("") autoMoveStale Boolean @default(false) // Auto move stale cards to Backlog createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/server/prisma/schema.sqlite.prisma b/server/prisma/schema.sqlite.prisma index 72c42d5..c8ac927 100644 --- a/server/prisma/schema.sqlite.prisma +++ b/server/prisma/schema.sqlite.prisma @@ -14,6 +14,7 @@ model Board { title String @default("Agile Kanban Board") adminKeyHash String memberKeyHash String + memberKey String? @default("") autoMoveStale Boolean @default(false) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/server/src/services/boardService.ts b/server/src/services/boardService.ts index aedf95c..e4b5fbb 100644 --- a/server/src/services/boardService.ts +++ b/server/src/services/boardService.ts @@ -13,11 +13,12 @@ export class BoardService { const adminKeyHash = hashKey(adminKey); const memberKeyHash = hashKey(memberKey); - const board = await prisma.board.create({ + const board = await (prisma.board as any).create({ data: { title: title.trim() || 'Agile Kanban Board', adminKeyHash, memberKeyHash, + memberKey, autoMoveStale: false, columns: { create: [ @@ -90,22 +91,20 @@ export class BoardService { boardId: col.boardId, title: col.title, order: col.order, - maxWipLimit: col.maxWipLimit || 0, - autoStaleHours: col.autoStaleHours || 0, - createdAt: col.createdAt.toISOString(), - updatedAt: col.updatedAt.toISOString(), + maxWipLimit: col.maxWipLimit, + autoStaleHours: col.autoStaleHours, tickets: col.tickets.map((t) => { - let parsedTags: string[] = []; - let parsedSubtasks: Subtask[] = []; + let tags: string[] = []; + let subtasks: Subtask[] = []; try { - parsedTags = JSON.parse(t.tags || '[]'); + tags = JSON.parse(t.tags || '[]'); } catch { - parsedTags = []; + tags = []; } try { - parsedSubtasks = JSON.parse(t.subtasks || '[]'); + subtasks = JSON.parse(t.subtasks || '[]'); } catch { - parsedSubtasks = []; + subtasks = []; } return { @@ -115,8 +114,8 @@ export class BoardService { description: t.description, order: t.order, priority: t.priority as Priority, - tags: parsedTags, - subtasks: parsedSubtasks, + tags, + subtasks, dueDate: t.dueDate || null, isBlocked: t.isBlocked || false, blockedReason: t.blockedReason || null, @@ -128,10 +127,26 @@ export class BoardService { }), })); + let memberKeyVal = (board as any).memberKey || ''; + if (!memberKeyVal && role === 'admin') { + const newMemberKey = generateSecureKey(32); + const newMemberKeyHash = hashKey(newMemberKey); + await (prisma.board as any).update({ + where: { id: boardId }, + data: { + memberKey: newMemberKey, + memberKeyHash: newMemberKeyHash, + }, + }); + memberKeyVal = newMemberKey; + } + return { id: board.id, title: board.title, role, + memberKey: memberKeyVal, + memberUrlFragment: memberKeyVal ? `/b/${board.id}#member=${memberKeyVal}` : '', autoMoveStale: board.autoMoveStale || false, columns, createdAt: board.createdAt.toISOString(), @@ -146,10 +161,11 @@ export class BoardService { const newMemberKey = generateSecureKey(32); const newMemberKeyHash = hashKey(newMemberKey); - await prisma.board.update({ + await (prisma.board as any).update({ where: { id: boardId }, data: { memberKeyHash: newMemberKeyHash, + memberKey: newMemberKey, }, }); diff --git a/server/src/types/index.ts b/server/src/types/index.ts index f5d430f..cb1d901 100644 --- a/server/src/types/index.ts +++ b/server/src/types/index.ts @@ -35,6 +35,8 @@ export interface BoardPayload { id: string; title: string; role: Role; + memberKey?: string; + memberUrlFragment?: string; autoMoveStale: boolean; columns: ColumnPayload[]; createdAt: string;